Merge remote-tracking branch 'Upstream/develop' into develop-loan
This commit is contained in:
commit
c256243bf7
@ -180,8 +180,38 @@ tools:
|
|||||||
- 'htdocs/includes/*'
|
- 'htdocs/includes/*'
|
||||||
paths: { }
|
paths: { }
|
||||||
|
|
||||||
|
php_changetracking:
|
||||||
|
enabled: false
|
||||||
|
bug_patterns:
|
||||||
|
- '\bfix(?:es|ed)?\b'
|
||||||
|
feature_patterns:
|
||||||
|
- '\badd(?:s|ed)?\b'
|
||||||
|
- '\bimplement(?:s|ed)?\b'
|
||||||
|
filter:
|
||||||
|
excluded_paths:
|
||||||
|
- 'build/*'
|
||||||
|
- 'dev/*'
|
||||||
|
- 'doc/*'
|
||||||
|
- 'test/*'
|
||||||
|
- 'htdocs/includes/*'
|
||||||
|
paths: { }
|
||||||
|
|
||||||
# Coding-Style / Bug Detection
|
# Coding-Style / Bug Detection
|
||||||
js_hint: false
|
js_hint:
|
||||||
|
enabled: false
|
||||||
|
use_native_config: true
|
||||||
|
extensions:
|
||||||
|
- js
|
||||||
|
filter:
|
||||||
|
excluded_paths:
|
||||||
|
- 'build/*'
|
||||||
|
- 'dev/*'
|
||||||
|
- 'doc/*'
|
||||||
|
- 'test/*'
|
||||||
|
- 'htdocs/includes/*'
|
||||||
|
paths: { }
|
||||||
|
config: { }
|
||||||
|
path_configs: { }
|
||||||
|
|
||||||
|
|
||||||
before_commands: { }
|
before_commands: { }
|
||||||
|
|||||||
@ -26,7 +26,7 @@ TCPDF 6.0.093 LGPL-3+ Yes
|
|||||||
JS libraries:
|
JS libraries:
|
||||||
jQuery 1.8.2 MIT License Yes JS library
|
jQuery 1.8.2 MIT License Yes JS library
|
||||||
jQuery UI 1.9.1 GPL and MIT License Yes JS library plugin UI
|
jQuery UI 1.9.1 GPL and MIT License Yes JS library plugin UI
|
||||||
jQuery multiple-select 1.1.0 MIT License Yes JS library plugin for sexier multiselect
|
jQuery select2 3.5.2 GPL and Apache License Yes JS library plugin for sexier multiselect
|
||||||
jQuery blockUI 2.43 GPL and MIT License Yes JS library plugin blockUI (to use ajax popups)
|
jQuery blockUI 2.43 GPL and MIT License Yes JS library plugin blockUI (to use ajax popups)
|
||||||
jQuery Colorpicker 1.1 MIT License Yes JS library for color picker for a defined list of colors
|
jQuery Colorpicker 1.1 MIT License Yes JS library for color picker for a defined list of colors
|
||||||
jQuery DataTables 1.9.4 BSD Yes JS library for tables output
|
jQuery DataTables 1.9.4 BSD Yes JS library for tables output
|
||||||
|
|||||||
@ -5,6 +5,8 @@ English Dolibarr ChangeLog
|
|||||||
|
|
||||||
***** ChangeLog for 3.7 compared to 3.6.* *****
|
***** ChangeLog for 3.7 compared to 3.6.* *****
|
||||||
For users:
|
For users:
|
||||||
|
- New: Match other auth system: Login can be done entering login or user
|
||||||
|
email (this open the road for SSO).
|
||||||
- New: Agenda export by project #1967.
|
- New: Agenda export by project #1967.
|
||||||
- New: Increase length of thirdparty to 128 chars.
|
- New: Increase length of thirdparty to 128 chars.
|
||||||
- New: "Is Order shippable" icon #1975.
|
- New: "Is Order shippable" icon #1975.
|
||||||
|
|||||||
@ -182,7 +182,7 @@ class Skeleton_Class extends CommonObject
|
|||||||
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function update($user=0, $notrigger=0)
|
function update($user, $notrigger=0)
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
$error=0;
|
$error=0;
|
||||||
|
|||||||
@ -26,7 +26,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
require '../../main.inc.php';
|
require '../../main.inc.php';
|
||||||
|
|
||||||
// Class
|
// Class
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
|
||||||
@ -44,7 +44,7 @@ $action = GETPOST('action', 'alpha');
|
|||||||
|
|
||||||
// Other parameters ACCOUNTING_*
|
// Other parameters ACCOUNTING_*
|
||||||
$list = array (
|
$list = array (
|
||||||
'ACCOUNTING_SEPARATORCSV'
|
'ACCOUNTING_SEPARATORCSV'
|
||||||
);
|
);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -52,26 +52,26 @@ $list = array (
|
|||||||
*/
|
*/
|
||||||
if ($action == 'update') {
|
if ($action == 'update') {
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
$modelcsv = GETPOST('modelcsv', 'int');
|
$modelcsv = GETPOST('modelcsv', 'int');
|
||||||
|
|
||||||
if (! empty($modelcsv)) {
|
if (! empty($modelcsv)) {
|
||||||
|
|
||||||
if (! dolibarr_set_const($db, 'ACCOUNTING_MODELCSV', $modelcsv, 'chaine', 0, '', $conf->entity)) {
|
if (! dolibarr_set_const($db, 'ACCOUNTING_MODELCSV', $modelcsv, 'chaine', 0, '', $conf->entity)) {
|
||||||
$error ++;
|
$error ++;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$error ++;
|
$error ++;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ( $list as $constname ) {
|
foreach ( $list as $constname ) {
|
||||||
$constvalue = GETPOST($constname, 'alpha');
|
$constvalue = GETPOST($constname, 'alpha');
|
||||||
|
|
||||||
if (! dolibarr_set_const($db, $constname, $constvalue, 'chaine', 0, '', $conf->entity)) {
|
if (! dolibarr_set_const($db, $constname, $constvalue, 'chaine', 0, '', $conf->entity)) {
|
||||||
$error ++;
|
$error ++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $error) {
|
if (! $error) {
|
||||||
setEventMessage($langs->trans("SetupSaved"));
|
setEventMessage($langs->trans("SetupSaved"));
|
||||||
} else {
|
} else {
|
||||||
@ -90,7 +90,7 @@ $form = new Form($db);
|
|||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print_fiche_titre($langs->trans('ConfigAccountingExpert'),$linkback,'setup');
|
print_fiche_titre($langs->trans('ConfigAccountingExpert'),$linkback,'setup');
|
||||||
|
|
||||||
$head = admin_accounting_prepare_head(null);
|
$head = admin_accounting_prepare_head();
|
||||||
|
|
||||||
dol_fiche_head($head, 'export', $langs->trans("Configuration"), 0, 'cron');
|
dol_fiche_head($head, 'export', $langs->trans("Configuration"), 0, 'cron');
|
||||||
|
|
||||||
@ -142,13 +142,13 @@ if ($num) {
|
|||||||
|
|
||||||
foreach ( $list as $key ) {
|
foreach ( $list as $key ) {
|
||||||
$var = ! $var;
|
$var = ! $var;
|
||||||
|
|
||||||
print '<tr ' . $bc[$var] . ' class="value">';
|
print '<tr ' . $bc[$var] . ' class="value">';
|
||||||
|
|
||||||
// Param
|
// Param
|
||||||
$label = $langs->trans($key);
|
$label = $langs->trans($key);
|
||||||
print '<td>' . $label . '</td>';
|
print '<td>' . $label . '</td>';
|
||||||
|
|
||||||
// Value
|
// Value
|
||||||
print '<td>';
|
print '<td>';
|
||||||
print '<input type="text" size="20" name="' . $key . '" value="' . $conf->global->$key . '">';
|
print '<input type="text" size="20" name="' . $key . '" value="' . $conf->global->$key . '">';
|
||||||
|
|||||||
@ -59,10 +59,10 @@ $max=100;
|
|||||||
|
|
||||||
$form = new Form($db);
|
$form = new Form($db);
|
||||||
|
|
||||||
llxHeader('',$title);
|
|
||||||
|
|
||||||
$title = $langs->trans('FiscalYears');
|
$title = $langs->trans('FiscalYears');
|
||||||
|
|
||||||
|
llxHeader('',$title,LOG_ERR);
|
||||||
|
|
||||||
print_fiche_titre($langs->trans('FiscalYears'));
|
print_fiche_titre($langs->trans('FiscalYears'));
|
||||||
|
|
||||||
$sql = "SELECT f.rowid, f.label, f.date_start, f.date_end, f.statut, f.entity";
|
$sql = "SELECT f.rowid, f.label, f.date_start, f.date_end, f.statut, f.entity";
|
||||||
|
|||||||
@ -70,7 +70,7 @@ $extralabels=$extrafields->fetch_name_optionals_label($object->table_element);
|
|||||||
// Get object canvas (By default, this is not defined, so standard usage of dolibarr)
|
// Get object canvas (By default, this is not defined, so standard usage of dolibarr)
|
||||||
$object->getCanvas($rowid);
|
$object->getCanvas($rowid);
|
||||||
$canvas = $object->canvas?$object->canvas:GETPOST("canvas");
|
$canvas = $object->canvas?$object->canvas:GETPOST("canvas");
|
||||||
$objcanvas='';
|
$objcanvas=null;
|
||||||
if (! empty($canvas))
|
if (! empty($canvas))
|
||||||
{
|
{
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/canvas.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/canvas.class.php';
|
||||||
@ -79,7 +79,7 @@ if (! empty($canvas))
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
$result=restrictedArea($user,'adherent',$rowid,'','','fk_soc', 'rowid', $objcanvas);
|
$result=restrictedArea($user, 'adherent', $rowid, '', '', 'fk_soc', 'rowid', $objcanvas);
|
||||||
|
|
||||||
if ($rowid > 0)
|
if ($rowid > 0)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -465,8 +465,11 @@ class Adherent extends CommonObject
|
|||||||
|
|
||||||
$nbrowsaffected+=$this->db->affected_rows($resql);
|
$nbrowsaffected+=$this->db->affected_rows($resql);
|
||||||
|
|
||||||
|
$action='update';
|
||||||
|
|
||||||
// Actions on extra fields (by external module)
|
// Actions on extra fields (by external module)
|
||||||
$hookmanager->initHooks(array('memberdao'));
|
// FIXME le hook fait double emploi avec le trigger !!
|
||||||
|
$hookmanager->initHooks(array('memberdao'));
|
||||||
$parameters=array('id'=>$this->id);
|
$parameters=array('id'=>$this->id);
|
||||||
$action='';
|
$action='';
|
||||||
$reshook=$hookmanager->executeHooks('insertExtraFields',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks
|
$reshook=$hookmanager->executeHooks('insertExtraFields',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
/* Copyright (C) 2005-2010 Laurent Destailleur <eldy@users.sourceforge.net>
|
/* Copyright (C) 2005-2010 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2012-2013 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2012-2013 Juanjo Menent <jmenent@2byte.es>
|
||||||
* Copyright (C) 2013 Philippe Grand <philippe.grand@atoo-net.com>
|
* Copyright (C) 2013 Philippe Grand <philippe.grand@atoo-net.com>
|
||||||
* Copyright (C) 2014 Alexandre Spangaro <alexandre.spangaro@gmail.com>
|
* Copyright (C) 2014 Alexandre Spangaro <alexandre.spangaro@gmail.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -37,6 +37,8 @@ $typeconst=array('yesno','texte','chaine');
|
|||||||
|
|
||||||
$action = GETPOST('action','alpha');
|
$action = GETPOST('action','alpha');
|
||||||
|
|
||||||
|
$type='donation';
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Action
|
* Action
|
||||||
@ -135,7 +137,7 @@ else if ($action == 'setart200') {
|
|||||||
$res = dolibarr_set_const($db, "DONATION_ART200", $setart200, 'yesno', 0, '', $conf->entity);
|
$res = dolibarr_set_const($db, "DONATION_ART200", $setart200, 'yesno', 0, '', $conf->entity);
|
||||||
if (! $res > 0)
|
if (! $res > 0)
|
||||||
$error ++;
|
$error ++;
|
||||||
|
|
||||||
if (! $error) {
|
if (! $error) {
|
||||||
setEventMessage($langs->trans("SetupSaved"), 'mesgs');
|
setEventMessage($langs->trans("SetupSaved"), 'mesgs');
|
||||||
} else {
|
} else {
|
||||||
@ -147,7 +149,7 @@ else if ($action == 'setart238') {
|
|||||||
$res = dolibarr_set_const($db, "DONATION_ART238", $setart238, 'yesno', 0, '', $conf->entity);
|
$res = dolibarr_set_const($db, "DONATION_ART238", $setart238, 'yesno', 0, '', $conf->entity);
|
||||||
if (! $res > 0)
|
if (! $res > 0)
|
||||||
$error ++;
|
$error ++;
|
||||||
|
|
||||||
if (! $error) {
|
if (! $error) {
|
||||||
setEventMessage($langs->trans("SetupSaved"), 'mesgs');
|
setEventMessage($langs->trans("SetupSaved"), 'mesgs');
|
||||||
} else {
|
} else {
|
||||||
@ -159,7 +161,7 @@ else if ($action == 'setart885') {
|
|||||||
$res = dolibarr_set_const($db, "DONATION_ART885", $setart885, 'yesno', 0, '', $conf->entity);
|
$res = dolibarr_set_const($db, "DONATION_ART885", $setart885, 'yesno', 0, '', $conf->entity);
|
||||||
if (! $res > 0)
|
if (! $res > 0)
|
||||||
$error ++;
|
$error ++;
|
||||||
|
|
||||||
if (! $error) {
|
if (! $error) {
|
||||||
setEventMessage($langs->trans("SetupSaved"), 'mesgs');
|
setEventMessage($langs->trans("SetupSaved"), 'mesgs');
|
||||||
} else {
|
} else {
|
||||||
@ -183,7 +185,7 @@ print_fiche_titre($langs->trans("DonationsSetup"),$linkback,'setup');
|
|||||||
* Params
|
* Params
|
||||||
*/
|
*/
|
||||||
print_titre($langs->trans("Options"));
|
print_titre($langs->trans("Options"));
|
||||||
|
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td>'.$langs->trans("Parameter").'</td>';
|
print '<td>'.$langs->trans("Parameter").'</td>';
|
||||||
@ -207,11 +209,11 @@ print '</form>';
|
|||||||
/*
|
/*
|
||||||
* French params
|
* French params
|
||||||
*/
|
*/
|
||||||
if ($conf->global->MAIN_LANG_DEFAULT == "fr_FR")
|
if ($conf->global->MAIN_LANG_DEFAULT == "fr_FR")
|
||||||
{
|
{
|
||||||
print '<br>';
|
print '<br>';
|
||||||
print_titre($langs->trans("FrenchOptions"));
|
print_titre($langs->trans("FrenchOptions"));
|
||||||
|
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td colspan="3">' . $langs->trans('Parameters') . '</td>';
|
print '<td colspan="3">' . $langs->trans('Parameters') . '</td>';
|
||||||
@ -377,7 +379,7 @@ if (is_resource($handle))
|
|||||||
print '<td align="center">';
|
print '<td align="center">';
|
||||||
print $form->textwithpicto('',$htmltooltip,-1,0);
|
print $form->textwithpicto('',$htmltooltip,-1,0);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
// Preview
|
// Preview
|
||||||
print '<td align="center">';
|
print '<td align="center">';
|
||||||
print '<a href="'.$_SERVER["PHP_SELF"].'?action=specimen&module='.$name.'" target="specimen">'.img_object($langs->trans("Preview"),'generic').'</a>';
|
print '<a href="'.$_SERVER["PHP_SELF"].'?action=specimen&module='.$name.'" target="specimen">'.img_object($langs->trans("Preview"),'generic').'</a>';
|
||||||
|
|||||||
@ -26,7 +26,6 @@
|
|||||||
require '../main.inc.php';
|
require '../main.inc.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
|
||||||
|
|
||||||
$action=GETPOST('action');
|
$action=GETPOST('action');
|
||||||
|
|
||||||
|
|||||||
@ -326,6 +326,7 @@ if ($conf->use_javascript_ajax)
|
|||||||
'<a href="edit.php?menu_handler='.$menu_handler_to_search.'&action=edit&menuId='.$menu['rowid'].'">'.img_edit('default',0,'class="menuEdit" id="edit'.$menu['rowid'].'"').'</a> '.
|
'<a href="edit.php?menu_handler='.$menu_handler_to_search.'&action=edit&menuId='.$menu['rowid'].'">'.img_edit('default',0,'class="menuEdit" id="edit'.$menu['rowid'].'"').'</a> '.
|
||||||
'<a href="edit.php?menu_handler='.$menu_handler_to_search.'&action=create&menuId='.$menu['rowid'].'">'.img_edit_add('default').'</a> '.
|
'<a href="edit.php?menu_handler='.$menu_handler_to_search.'&action=create&menuId='.$menu['rowid'].'">'.img_edit_add('default').'</a> '.
|
||||||
'<a href="index.php?menu_handler='.$menu_handler_to_search.'&action=delete&menuId='.$menu['rowid'].'">'.img_delete('default').'</a> '.
|
'<a href="index.php?menu_handler='.$menu_handler_to_search.'&action=delete&menuId='.$menu['rowid'].'">'.img_delete('default').'</a> '.
|
||||||
|
' '.
|
||||||
'<a href="index.php?menu_handler='.$menu_handler_to_search.'&action=up&menuId='.$menu['rowid'].'">'.img_picto("Monter","1uparrow").'</a><a href="index.php?menu_handler='.$menu_handler_to_search.'&action=down&menuId='.$menu['rowid'].'">'.img_picto("Descendre","1downarrow").'</a>'.
|
'<a href="index.php?menu_handler='.$menu_handler_to_search.'&action=up&menuId='.$menu['rowid'].'">'.img_picto("Monter","1uparrow").'</a><a href="index.php?menu_handler='.$menu_handler_to_search.'&action=down&menuId='.$menu['rowid'].'">'.img_picto("Descendre","1downarrow").'</a>'.
|
||||||
'</td></tr></table>'
|
'</td></tr></table>'
|
||||||
);
|
);
|
||||||
|
|||||||
@ -183,8 +183,9 @@ foreach ($syslogModules as $moduleName)
|
|||||||
{
|
{
|
||||||
$module = new $moduleName;
|
$module = new $moduleName;
|
||||||
|
|
||||||
$moduleactive=$module->isActive();
|
$moduleactive=(int) $module->isActive();
|
||||||
if ($moduleactive == -1 && empty($conf->global->MAIN_FEATURES_LEVEL)) continue; // Some modules are hidden if not activable and not into debug mode (end user must not see them)
|
//print $moduleName." = ".$moduleactive." - ".$module->getName()." ".($moduleactive == -1)."<br>\n";
|
||||||
|
if (($moduleactive == -1) && empty($conf->global->MAIN_FEATURES_LEVEL)) continue; // Some modules are hidden if not activable and not into debug mode (end user must not see them)
|
||||||
|
|
||||||
$var=!$var;
|
$var=!$var;
|
||||||
print '<tr '.$bc[$var].'>';
|
print '<tr '.$bc[$var].'>';
|
||||||
@ -199,7 +200,7 @@ foreach ($syslogModules as $moduleName)
|
|||||||
{
|
{
|
||||||
foreach ($setuparray as $option)
|
foreach ($setuparray as $option)
|
||||||
{
|
{
|
||||||
if (isset($_POST[$option['constant']])) $value=$_POST[$option['constant']];
|
if (isset($_POST[$option['constant']])) $value=$_POST[$option['constant']];
|
||||||
else if (defined($option['constant'])) $value = constant($option['constant']);
|
else if (defined($option['constant'])) $value = constant($option['constant']);
|
||||||
else $value = (isset($option['default']) ? $option['default'] : '');
|
else $value = (isset($option['default']) ? $option['default'] : '');
|
||||||
|
|
||||||
@ -220,7 +221,7 @@ foreach ($syslogModules as $moduleName)
|
|||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
print "</form>\n";
|
print "</form>\n";
|
||||||
|
|
||||||
print '<br>';
|
print '<br>'."\n\n";
|
||||||
|
|
||||||
print_titre($langs->trans("SyslogLevel"));
|
print_titre($langs->trans("SyslogLevel"));
|
||||||
|
|
||||||
|
|||||||
@ -107,7 +107,7 @@ class Categorie extends CommonObject
|
|||||||
$this->type = $res['type'];
|
$this->type = $res['type'];
|
||||||
$this->entity = $res['entity'];
|
$this->entity = $res['entity'];
|
||||||
|
|
||||||
$this->fetch_optionals($this->id,$extralabels);
|
$this->fetch_optionals($this->id,null);
|
||||||
|
|
||||||
$this->db->free($resql);
|
$this->db->free($resql);
|
||||||
|
|
||||||
@ -198,6 +198,8 @@ class Categorie extends CommonObject
|
|||||||
{
|
{
|
||||||
$this->id = $id;
|
$this->id = $id;
|
||||||
|
|
||||||
|
$action='create';
|
||||||
|
|
||||||
// Actions on extra fields (by external module or standard code)
|
// Actions on extra fields (by external module or standard code)
|
||||||
// FIXME le hook fait double emploi avec le trigger !!
|
// FIXME le hook fait double emploi avec le trigger !!
|
||||||
$hookmanager->initHooks(array('HookModuleNamedao'));
|
$hookmanager->initHooks(array('HookModuleNamedao'));
|
||||||
@ -289,11 +291,13 @@ class Categorie extends CommonObject
|
|||||||
dol_syslog(get_class($this)."::update", LOG_DEBUG);
|
dol_syslog(get_class($this)."::update", LOG_DEBUG);
|
||||||
if ($this->db->query($sql))
|
if ($this->db->query($sql))
|
||||||
{
|
{
|
||||||
|
$action='update';
|
||||||
|
|
||||||
// Actions on extra fields (by external module or standard code)
|
// Actions on extra fields (by external module or standard code)
|
||||||
// FIXME le hook fait double emploi avec le trigger !!
|
// FIXME le hook fait double emploi avec le trigger !!
|
||||||
$hookmanager->initHooks(array('HookCategorydao'));
|
$hookmanager->initHooks(array('HookCategorydao'));
|
||||||
$parameters=array();
|
$parameters=array();
|
||||||
|
$action='update';
|
||||||
$reshook=$hookmanager->executeHooks('insertExtraFields',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks
|
$reshook=$hookmanager->executeHooks('insertExtraFields',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks
|
||||||
if (empty($reshook))
|
if (empty($reshook))
|
||||||
{
|
{
|
||||||
@ -408,6 +412,17 @@ class Categorie extends CommonObject
|
|||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (! $error)
|
||||||
|
{
|
||||||
|
$sql = "DELETE FROM ".MAIN_DB_PREFIX."categorie_lang";
|
||||||
|
$sql .= " WHERE fk_category = ".$this->id;
|
||||||
|
if (!$this->db->query($sql))
|
||||||
|
{
|
||||||
|
$this->error=$this->db->lasterror();
|
||||||
|
dol_syslog("Error sql=".$sql." ".$this->error, LOG_ERR);
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Delete category
|
// Delete category
|
||||||
if (! $error)
|
if (! $error)
|
||||||
@ -430,7 +445,7 @@ class Categorie extends CommonObject
|
|||||||
if ($result < 0)
|
if ($result < 0)
|
||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
dol_syslog(get_class($this)."::delete erreur ".$errorflag." ".$this->error, LOG_ERR);
|
dol_syslog(get_class($this)."::delete erreur ".$this->error, LOG_ERR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -788,7 +803,7 @@ class Categorie extends CommonObject
|
|||||||
*/
|
*/
|
||||||
function get_full_arbo($type,$markafterid=0)
|
function get_full_arbo($type,$markafterid=0)
|
||||||
{
|
{
|
||||||
global $langs;
|
global $conf, $langs;
|
||||||
|
|
||||||
$this->cats = array();
|
$this->cats = array();
|
||||||
|
|
||||||
@ -798,11 +813,9 @@ class Categorie extends CommonObject
|
|||||||
|
|
||||||
// Init $this->cats array
|
// Init $this->cats array
|
||||||
$sql = "SELECT DISTINCT c.rowid, c.label, c.description, c.fk_parent"; // Distinct reduce pb with old tables with duplicates
|
$sql = "SELECT DISTINCT c.rowid, c.label, c.description, c.fk_parent"; // Distinct reduce pb with old tables with duplicates
|
||||||
if (! empty($conf->global->MAIN_MULTILANGS))
|
if (! empty($conf->global->MAIN_MULTILANGS)) $sql.= ", t.label as label_trans, t.description as description_trans";
|
||||||
$sql.= ", t.label as label_trans, t.description as description_trans";
|
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."categorie as c";
|
$sql.= " FROM ".MAIN_DB_PREFIX."categorie as c";
|
||||||
if (! empty($conf->global->MAIN_MULTILANGS))
|
if (! empty($conf->global->MAIN_MULTILANGS)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie_lang as t ON t.fk_category=c.rowid AND t.lang='".$current_lang."'";
|
||||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie_lang as t ON t.fk_category=c.rowid AND t.lang='".$current_lang."'";
|
|
||||||
$sql.= " WHERE c.entity IN (".getEntity('category',1).")";
|
$sql.= " WHERE c.entity IN (".getEntity('category',1).")";
|
||||||
$sql.= " AND c.type = ".$type;
|
$sql.= " AND c.type = ".$type;
|
||||||
|
|
||||||
@ -1263,7 +1276,7 @@ class Categorie extends CommonObject
|
|||||||
$result='';
|
$result='';
|
||||||
|
|
||||||
$lien = '<a href="'.DOL_URL_ROOT.'/categories/viewcat.php?id='.$this->id.'&type='.$this->type.'">';
|
$lien = '<a href="'.DOL_URL_ROOT.'/categories/viewcat.php?id='.$this->id.'&type='.$this->type.'">';
|
||||||
$label=$langs->trans("ShowCategory").': '.$this->label;
|
$label=$langs->trans("ShowCategory").': '. ($this->ref?$this->ref:$this->label);
|
||||||
$lienfin='</a>';
|
$lienfin='</a>';
|
||||||
|
|
||||||
$picto='category';
|
$picto='category';
|
||||||
@ -1271,7 +1284,7 @@ class Categorie extends CommonObject
|
|||||||
|
|
||||||
if ($withpicto) $result.=($lien.img_object($label,$picto).$lienfin);
|
if ($withpicto) $result.=($lien.img_object($label,$picto).$lienfin);
|
||||||
if ($withpicto && $withpicto != 2) $result.=' ';
|
if ($withpicto && $withpicto != 2) $result.=' ';
|
||||||
if ($withpicto != 2) $result.=$lien.dol_trunc($this->ref,$maxlength).$lienfin;
|
if ($withpicto != 2) $result.=$lien.dol_trunc(($this->ref?$this->ref:$this->label),$maxlength).$lienfin;
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1369,7 +1382,7 @@ class Categorie extends CommonObject
|
|||||||
// Objet
|
// Objet
|
||||||
$obj=array();
|
$obj=array();
|
||||||
$obj['photo']=$photo;
|
$obj['photo']=$photo;
|
||||||
if ($photo_vignette && is_file($dirthumb.$photo_vignette)) $obj['photo_vignette']=$photo_vignette;
|
if ($photo_vignette && is_file($dirthumb.$photo_vignette)) $obj['photo_vignette']='thumbs/' . $photo_vignette;
|
||||||
else $obj['photo_vignette']="";
|
else $obj['photo_vignette']="";
|
||||||
|
|
||||||
$tabobj[$nbphoto-1]=$obj;
|
$tabobj[$nbphoto-1]=$obj;
|
||||||
|
|||||||
@ -241,7 +241,7 @@ if ($object->id)
|
|||||||
// Si fichier vignette disponible, on l'utilise, sinon on utilise photo origine
|
// Si fichier vignette disponible, on l'utilise, sinon on utilise photo origine
|
||||||
if ($obj['photo_vignette'])
|
if ($obj['photo_vignette'])
|
||||||
{
|
{
|
||||||
$filename='thumbs/'.$obj['photo_vignette'];
|
$filename=$obj['photo_vignette'];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -710,9 +710,9 @@ if ($action == 'create')
|
|||||||
$events[]=array('method' => 'getContacts', 'url' => dol_buildpath('/core/ajax/contacts.php',1), 'htmlname' => 'contactid', 'params' => array('add-customer-contact' => 'disabled'));
|
$events[]=array('method' => 'getContacts', 'url' => dol_buildpath('/core/ajax/contacts.php',1), 'htmlname' => 'contactid', 'params' => array('add-customer-contact' => 'disabled'));
|
||||||
//For external user force the company to user company
|
//For external user force the company to user company
|
||||||
if (!empty($user->societe_id)) {
|
if (!empty($user->societe_id)) {
|
||||||
print $form->select_company($user->societe_id,'socid','',1,1,0,$events);
|
print $form->select_thirdparty_list($user->societe_id,'socid','',1,1,0,$events);
|
||||||
} else {
|
} else {
|
||||||
print $form->select_company('','socid','',1,1,0,$events);
|
print $form->select_thirdparty_list('','socid','',1,1,0,$events);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -241,8 +241,11 @@ class ActionComm extends CommonObject
|
|||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
|
$action='create';
|
||||||
|
|
||||||
// Actions on extra fields (by external module or standard code)
|
// Actions on extra fields (by external module or standard code)
|
||||||
$hookmanager->initHooks(array('actioncommdao'));
|
// FIXME le hook fait double emploi avec le trigger !!
|
||||||
|
$hookmanager->initHooks(array('actioncommdao'));
|
||||||
$parameters=array('actcomm'=>$this->id);
|
$parameters=array('actcomm'=>$this->id);
|
||||||
$reshook=$hookmanager->executeHooks('insertExtraFields',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks
|
$reshook=$hookmanager->executeHooks('insertExtraFields',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks
|
||||||
if (empty($reshook))
|
if (empty($reshook))
|
||||||
@ -560,8 +563,10 @@ class ActionComm extends CommonObject
|
|||||||
dol_syslog(get_class($this)."::update", LOG_DEBUG);
|
dol_syslog(get_class($this)."::update", LOG_DEBUG);
|
||||||
if ($this->db->query($sql))
|
if ($this->db->query($sql))
|
||||||
{
|
{
|
||||||
|
$action='update';
|
||||||
|
|
||||||
// Actions on extra fields (by external module or standard code)
|
// Actions on extra fields (by external module or standard code)
|
||||||
|
// FIXME le hook fait double emploi avec le trigger !!
|
||||||
$hookmanager->initHooks(array('actioncommdao'));
|
$hookmanager->initHooks(array('actioncommdao'));
|
||||||
$parameters=array('actcomm'=>$this->id);
|
$parameters=array('actcomm'=>$this->id);
|
||||||
$reshook=$hookmanager->executeHooks('insertExtraFields',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks
|
$reshook=$hookmanager->executeHooks('insertExtraFields',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks
|
||||||
|
|||||||
@ -103,7 +103,7 @@ class CActionComm
|
|||||||
* @param string $idorcode 'id' or 'code'
|
* @param string $idorcode 'id' or 'code'
|
||||||
* @param string $excludetype Type to exclude
|
* @param string $excludetype Type to exclude
|
||||||
* @param string $onlyautoornot Group list by auto events or not
|
* @param string $onlyautoornot Group list by auto events or not
|
||||||
* @return array Array of all event types if OK, <0 if KO
|
* @return mixed Array of all event types if OK, <0 if KO
|
||||||
*/
|
*/
|
||||||
function liste_array($active='',$idorcode='id',$excludetype='',$onlyautoornot=0)
|
function liste_array($active='',$idorcode='id',$excludetype='',$onlyautoornot=0)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -846,6 +846,8 @@ class Propal extends CommonObject
|
|||||||
$resql=$this->update_price(1);
|
$resql=$this->update_price(1);
|
||||||
if ($resql)
|
if ($resql)
|
||||||
{
|
{
|
||||||
|
$action='update';
|
||||||
|
|
||||||
// Actions on extra fields (by external module or standard code)
|
// Actions on extra fields (by external module or standard code)
|
||||||
// FIXME le hook fait double emploi avec le trigger !!
|
// FIXME le hook fait double emploi avec le trigger !!
|
||||||
$hookmanager->initHooks(array('propaldao'));
|
$hookmanager->initHooks(array('propaldao'));
|
||||||
@ -1264,6 +1266,8 @@ class Propal extends CommonObject
|
|||||||
*/
|
*/
|
||||||
function update_extrafields($user)
|
function update_extrafields($user)
|
||||||
{
|
{
|
||||||
|
$action='update';
|
||||||
|
|
||||||
// Actions on extra fields (by external module or standard code)
|
// Actions on extra fields (by external module or standard code)
|
||||||
// FIXME le hook fait double emploi avec le trigger !!
|
// FIXME le hook fait double emploi avec le trigger !!
|
||||||
$hookmanager->initHooks(array('propaldao'));
|
$hookmanager->initHooks(array('propaldao'));
|
||||||
@ -2118,7 +2122,7 @@ class Propal extends CommonObject
|
|||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
dol_syslog(get_class($this)."::delete $this->id by $user->id", LOG_DEBUG);
|
dol_syslog(get_class($this)."::delete ".$this->id." by ".$user->id, LOG_DEBUG);
|
||||||
$this->db->commit();
|
$this->db->commit();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -2879,7 +2883,7 @@ class PropaleLigne extends CommonObject
|
|||||||
|
|
||||||
$error=0;
|
$error=0;
|
||||||
|
|
||||||
dol_syslog("PropaleLigne::insert rang=".$this->rang);
|
dol_syslog(get_class($this)."::insert rang=".$this->rang);
|
||||||
|
|
||||||
// Clean parameters
|
// Clean parameters
|
||||||
if (empty($this->tva_tx)) $this->tva_tx=0;
|
if (empty($this->tva_tx)) $this->tva_tx=0;
|
||||||
|
|||||||
@ -801,6 +801,8 @@ class Commande extends CommonOrder
|
|||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
|
$action='create';
|
||||||
|
|
||||||
// Actions on extra fields (by external module or standard code)
|
// Actions on extra fields (by external module or standard code)
|
||||||
// FIXME le hook fait double emploi avec le trigger !!
|
// FIXME le hook fait double emploi avec le trigger !!
|
||||||
$hookmanager->initHooks(array('orderdao'));
|
$hookmanager->initHooks(array('orderdao'));
|
||||||
@ -2928,6 +2930,8 @@ class Commande extends CommonOrder
|
|||||||
*/
|
*/
|
||||||
function update_extrafields($user)
|
function update_extrafields($user)
|
||||||
{
|
{
|
||||||
|
$action='create';
|
||||||
|
|
||||||
// Actions on extra fields (by external module or standard code)
|
// Actions on extra fields (by external module or standard code)
|
||||||
// FIXME le hook fait double emploi avec le trigger !!
|
// FIXME le hook fait double emploi avec le trigger !!
|
||||||
$hookmanager->initHooks(array('orderdao'));
|
$hookmanager->initHooks(array('orderdao'));
|
||||||
@ -3280,7 +3284,7 @@ class OrderLine extends CommonOrderLine
|
|||||||
|
|
||||||
$error=0;
|
$error=0;
|
||||||
|
|
||||||
dol_syslog("OrderLine::insert rang=".$this->rang);
|
dol_syslog(get_class($this)."::insert rang=".$this->rang);
|
||||||
|
|
||||||
// Clean parameters
|
// Clean parameters
|
||||||
if (empty($this->tva_tx)) $this->tva_tx=0;
|
if (empty($this->tva_tx)) $this->tva_tx=0;
|
||||||
|
|||||||
@ -1145,7 +1145,7 @@ class AccountLine extends CommonObject
|
|||||||
* @param User $user User object that delete
|
* @param User $user User object that delete
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function delete($user=0)
|
function delete($user=null)
|
||||||
{
|
{
|
||||||
$nbko=0;
|
$nbko=0;
|
||||||
|
|
||||||
@ -1194,7 +1194,7 @@ class AccountLine extends CommonObject
|
|||||||
* @param User $user User object that delete
|
* @param User $user User object that delete
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function delete_urls($user=0)
|
function delete_urls($user=null)
|
||||||
{
|
{
|
||||||
$nbko=0;
|
$nbko=0;
|
||||||
|
|
||||||
|
|||||||
@ -172,7 +172,7 @@ class BankCateg // extends CommonObject
|
|||||||
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function update($user=0, $notrigger=0)
|
function update($user=null, $notrigger=0)
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
$error=0;
|
$error=0;
|
||||||
|
|||||||
@ -464,6 +464,8 @@ class Facture extends CommonInvoice
|
|||||||
$result=$this->update_price(1);
|
$result=$this->update_price(1);
|
||||||
if ($result > 0)
|
if ($result > 0)
|
||||||
{
|
{
|
||||||
|
$action='create';
|
||||||
|
|
||||||
// Actions on extra fields (by external module or standard code)
|
// Actions on extra fields (by external module or standard code)
|
||||||
// FIXME le hook fait double emploi avec le trigger !!
|
// FIXME le hook fait double emploi avec le trigger !!
|
||||||
$hookmanager->initHooks(array('invoicedao'));
|
$hookmanager->initHooks(array('invoicedao'));
|
||||||
@ -1040,7 +1042,7 @@ class Facture extends CommonInvoice
|
|||||||
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function update($user=0, $notrigger=0)
|
function update($user=null, $notrigger=0)
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
$error=0;
|
$error=0;
|
||||||
|
|||||||
@ -261,7 +261,7 @@ class PaymentTerm // extends CommonObject
|
|||||||
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function update($user=0, $notrigger=0)
|
function update($user=null, $notrigger=0)
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
$error=0;
|
$error=0;
|
||||||
|
|||||||
@ -127,7 +127,7 @@ class Localtax extends CommonObject
|
|||||||
* @param int $notrigger 0=no, 1=yes (no update trigger)
|
* @param int $notrigger 0=no, 1=yes (no update trigger)
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function update($user=0, $notrigger=0)
|
function update($user=null, $notrigger=0)
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
|
|
||||||
|
|||||||
@ -755,6 +755,8 @@ class BonPrelevement extends CommonObject
|
|||||||
$factures = array();
|
$factures = array();
|
||||||
$factures_prev = array();
|
$factures_prev = array();
|
||||||
$factures_result = array();
|
$factures_result = array();
|
||||||
|
$factures_prev_id=array();
|
||||||
|
$factures_errors=array();
|
||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -73,7 +73,7 @@ class PaymentSalary extends CommonObject
|
|||||||
* @param int $notrigger 0=no, 1=yes (no update trigger)
|
* @param int $notrigger 0=no, 1=yes (no update trigger)
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function update($user=0, $notrigger=0)
|
function update($user=null, $notrigger=0)
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
|
|
||||||
@ -127,7 +127,7 @@ class PaymentSalary extends CommonObject
|
|||||||
{
|
{
|
||||||
// Call trigger
|
// Call trigger
|
||||||
$result=$this->call_trigger('PAYMENT_SALARY_MODIFY',$user);
|
$result=$this->call_trigger('PAYMENT_SALARY_MODIFY',$user);
|
||||||
if ($result < 0) $error++;
|
if ($result < 0) $error++;
|
||||||
// End call triggers
|
// End call triggers
|
||||||
|
|
||||||
//FIXME: Add rollback if trigger fail
|
//FIXME: Add rollback if trigger fail
|
||||||
@ -144,7 +144,7 @@ class PaymentSalary extends CommonObject
|
|||||||
* @param User $user User that load
|
* @param User $user User that load
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function fetch($id, $user=0)
|
function fetch($id, $user=null)
|
||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
$sql = "SELECT";
|
$sql = "SELECT";
|
||||||
@ -223,12 +223,12 @@ class PaymentSalary extends CommonObject
|
|||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
|
|
||||||
$error=0;
|
$error=0;
|
||||||
|
|
||||||
// Call trigger
|
// Call trigger
|
||||||
$result=$this->call_trigger('PAYMENT_SALARY_DELETE',$user);
|
$result=$this->call_trigger('PAYMENT_SALARY_DELETE',$user);
|
||||||
if ($result < 0) return -1;
|
if ($result < 0) return -1;
|
||||||
// End call triggers
|
// End call triggers
|
||||||
|
|
||||||
|
|
||||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."payment_salary";
|
$sql = "DELETE FROM ".MAIN_DB_PREFIX."payment_salary";
|
||||||
$sql.= " WHERE rowid=".$this->id;
|
$sql.= " WHERE rowid=".$this->id;
|
||||||
@ -279,7 +279,7 @@ class PaymentSalary extends CommonObject
|
|||||||
function create($user)
|
function create($user)
|
||||||
{
|
{
|
||||||
global $conf,$langs;
|
global $conf,$langs;
|
||||||
|
|
||||||
$error=0;
|
$error=0;
|
||||||
|
|
||||||
// Clean parameters
|
// Clean parameters
|
||||||
@ -414,7 +414,6 @@ class PaymentSalary extends CommonObject
|
|||||||
$this->fk_user,
|
$this->fk_user,
|
||||||
DOL_URL_ROOT.'/user/card.php?id=',
|
DOL_URL_ROOT.'/user/card.php?id=',
|
||||||
$langs->trans("SalaryPayment").' '.$fuser->getFullName($langs).' '.dol_print_date($this->datesp,'dayrfc').' '.dol_print_date($this->dateep,'dayrfc'),
|
$langs->trans("SalaryPayment").' '.$fuser->getFullName($langs).' '.dol_print_date($this->datesp,'dayrfc').' '.dol_print_date($this->dateep,'dayrfc'),
|
||||||
'(User)',
|
|
||||||
'user'
|
'user'
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -427,9 +426,9 @@ class PaymentSalary extends CommonObject
|
|||||||
|
|
||||||
// Call trigger
|
// Call trigger
|
||||||
$result=$this->call_trigger('PAYMENT_SALARY_CREATE',$user);
|
$result=$this->call_trigger('PAYMENT_SALARY_CREATE',$user);
|
||||||
if ($result < 0) $error++;
|
if ($result < 0) $error++;
|
||||||
// End call triggers
|
// End call triggers
|
||||||
|
|
||||||
}
|
}
|
||||||
else $error++;
|
else $error++;
|
||||||
|
|
||||||
|
|||||||
@ -62,17 +62,19 @@ class ChargeSociales extends CommonObject
|
|||||||
/**
|
/**
|
||||||
* Retrouve et charge une charge sociale
|
* Retrouve et charge une charge sociale
|
||||||
*
|
*
|
||||||
* @param int $id 1 si trouve, 0 sinon
|
* @param int $id Id
|
||||||
|
* @param string $ref Ref
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function fetch($id)
|
function fetch($id, $ref='')
|
||||||
{
|
{
|
||||||
$sql = "SELECT cs.rowid, cs.date_ech,";
|
$sql = "SELECT cs.rowid, cs.date_ech,";
|
||||||
$sql.= " cs.libelle as lib, cs.fk_type, cs.amount, cs.paye, cs.periode,";
|
$sql.= " cs.libelle as lib, cs.fk_type, cs.amount, cs.paye, cs.periode,";
|
||||||
$sql.= " c.libelle";
|
$sql.= " c.libelle";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."chargesociales as cs, ".MAIN_DB_PREFIX."c_chargesociales as c";
|
$sql.= " FROM ".MAIN_DB_PREFIX."chargesociales as cs, ".MAIN_DB_PREFIX."c_chargesociales as c";
|
||||||
$sql.= " WHERE cs.fk_type = c.id";
|
$sql.= " WHERE cs.fk_type = c.id";
|
||||||
$sql.= " AND cs.rowid = ".$id;
|
if ($ref) $sql.= " AND cs.rowid = ".$ref;
|
||||||
|
else $sql.= " AND cs.rowid = ".$id;
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
|
dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
|
||||||
$resql=$this->db->query($sql);
|
$resql=$this->db->query($sql);
|
||||||
|
|||||||
@ -220,7 +220,7 @@ class PaymentSocialContribution extends CommonObject
|
|||||||
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function update($user=0, $notrigger=0)
|
function update($user=null, $notrigger=0)
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
$error=0;
|
$error=0;
|
||||||
|
|||||||
@ -143,7 +143,7 @@ class Tva extends CommonObject
|
|||||||
* @param int $notrigger 0=no, 1=yes (no update trigger)
|
* @param int $notrigger 0=no, 1=yes (no update trigger)
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function update($user=0, $notrigger=0)
|
function update($user=null, $notrigger=0)
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
|
|
||||||
@ -205,7 +205,7 @@ class Tva extends CommonObject
|
|||||||
* @param User $user User that load
|
* @param User $user User that load
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function fetch($id, $user=0)
|
function fetch($id, $user=null)
|
||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
$sql = "SELECT";
|
$sql = "SELECT";
|
||||||
|
|||||||
@ -220,7 +220,7 @@ class Contact extends CommonObject
|
|||||||
* @param string $action Current action for hookmanager
|
* @param string $action Current action for hookmanager
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function update($id, $user=0, $notrigger=0, $action='update')
|
function update($id, $user=null, $notrigger=0, $action='update')
|
||||||
{
|
{
|
||||||
global $conf, $langs, $hookmanager;
|
global $conf, $langs, $hookmanager;
|
||||||
|
|
||||||
@ -283,6 +283,8 @@ class Contact extends CommonObject
|
|||||||
unset($this->state_code);
|
unset($this->state_code);
|
||||||
unset($this->state);
|
unset($this->state);
|
||||||
|
|
||||||
|
$action='update';
|
||||||
|
|
||||||
// Actions on extra fields (by external module or standard code)
|
// Actions on extra fields (by external module or standard code)
|
||||||
$hookmanager->initHooks(array('contactdao'));
|
$hookmanager->initHooks(array('contactdao'));
|
||||||
$parameters=array('socid'=>$this->id);
|
$parameters=array('socid'=>$this->id);
|
||||||
@ -427,7 +429,7 @@ class Contact extends CommonObject
|
|||||||
* @param User $user User asking to change alert or birthday
|
* @param User $user User asking to change alert or birthday
|
||||||
* @return int <0 if KO, >=0 if OK
|
* @return int <0 if KO, >=0 if OK
|
||||||
*/
|
*/
|
||||||
function update_perso($id, $user=0)
|
function update_perso($id, $user=null)
|
||||||
{
|
{
|
||||||
$error=0;
|
$error=0;
|
||||||
$result=false;
|
$result=false;
|
||||||
@ -492,7 +494,7 @@ class Contact extends CommonObject
|
|||||||
* @param User $user Utilisateur (abonnes aux alertes) qui veut les alertes de ce contact
|
* @param User $user Utilisateur (abonnes aux alertes) qui veut les alertes de ce contact
|
||||||
* @return int -1 if KO, 0 if OK but not found, 1 if OK
|
* @return int -1 if KO, 0 if OK but not found, 1 if OK
|
||||||
*/
|
*/
|
||||||
function fetch($id, $user=0)
|
function fetch($id, $user=null)
|
||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
|
|
||||||
@ -910,7 +912,7 @@ class Contact extends CommonObject
|
|||||||
global $langs;
|
global $langs;
|
||||||
$langs->load("dict");
|
$langs->load("dict");
|
||||||
|
|
||||||
$code=(! empty($this->civility_id)?$this->civility_id:(! empty($this->civility_id)?$this->civility_id:''));
|
$code=(! empty($this->civility_id)?$this->civility_id:(! empty($this->civilite_id)?$this->civilite_id:''));
|
||||||
if (empty($code)) return '';
|
if (empty($code)) return '';
|
||||||
return $langs->getLabelFromKey($this->db, "Civility".$code, "c_civility", "code", "label", $code);
|
return $langs->getLabelFromKey($this->db, "Civility".$code, "c_civility", "code", "label", $code);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1290,7 +1290,8 @@ else
|
|||||||
$productstatic->ref=$objp->label;
|
$productstatic->ref=$objp->label;
|
||||||
print $productstatic->getNomUrl(0,'',16);
|
print $productstatic->getNomUrl(0,'',16);
|
||||||
}
|
}
|
||||||
if ($objp->description) print '<br>'.dol_nl2br($objp->description);
|
if (! empty($conf->global->PRODUIT_DESC_IN_FORM) and $objp->description)
|
||||||
|
print '<br>'.dol_nl2br($objp->description);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@ -989,7 +989,7 @@ class Contrat extends CommonObject
|
|||||||
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function update($user=0, $notrigger=0)
|
function update($user=null, $notrigger=0)
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
$error=0;
|
$error=0;
|
||||||
|
|||||||
@ -159,6 +159,7 @@ class box_actions extends ModeleBoxes
|
|||||||
$actioncejour=false;
|
$actioncejour=false;
|
||||||
$contents=$this->info_box_contents;
|
$contents=$this->info_box_contents;
|
||||||
$nblines=count($contents);
|
$nblines=count($contents);
|
||||||
|
$bcx=array();
|
||||||
$bcx[0] = 'class="box_pair"';
|
$bcx[0] = 'class="box_pair"';
|
||||||
$bcx[1] = 'class="box_impair"';
|
$bcx[1] = 'class="box_impair"';
|
||||||
if ($contents[0][0]['text'] != $langs->trans("NoActionsToDo"))
|
if ($contents[0][0]['text'] != $langs->trans("NoActionsToDo"))
|
||||||
|
|||||||
@ -181,6 +181,7 @@ class ModeleBoxes // Can't be abtract as it is instantiated to build "empty"
|
|||||||
global $langs,$conf;
|
global $langs,$conf;
|
||||||
|
|
||||||
$MAXLENGTHBOX=60; // Mettre 0 pour pas de limite
|
$MAXLENGTHBOX=60; // Mettre 0 pour pas de limite
|
||||||
|
$bcx=array();
|
||||||
$bcx[0] = 'class="box_pair"';
|
$bcx[0] = 'class="box_pair"';
|
||||||
$bcx[1] = 'class="box_impair"';
|
$bcx[1] = 'class="box_impair"';
|
||||||
$var = false;
|
$var = false;
|
||||||
|
|||||||
@ -191,7 +191,7 @@ class Ccountry // extends CommonObject
|
|||||||
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function update($user=0, $notrigger=0)
|
function update($user=null, $notrigger=0)
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
$error=0;
|
$error=0;
|
||||||
@ -256,10 +256,10 @@ class Ccountry // extends CommonObject
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete object in database
|
* Delete object in database
|
||||||
*
|
*
|
||||||
* @param User $user User that delete
|
* @param User $user User that delete
|
||||||
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function delete($user, $notrigger=0)
|
function delete($user, $notrigger=0)
|
||||||
|
|||||||
@ -34,7 +34,7 @@
|
|||||||
*/
|
*/
|
||||||
abstract class CommonObject
|
abstract class CommonObject
|
||||||
{
|
{
|
||||||
protected $db;
|
public $db;
|
||||||
public $error;
|
public $error;
|
||||||
public $errors;
|
public $errors;
|
||||||
public $canvas; // Contains canvas name if it is
|
public $canvas; // Contains canvas name if it is
|
||||||
|
|||||||
@ -198,7 +198,7 @@ class Ctypent // extends CommonObject
|
|||||||
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function update($user=0, $notrigger=0)
|
function update($user=null, $notrigger=0)
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
$error=0;
|
$error=0;
|
||||||
|
|||||||
@ -154,7 +154,7 @@ class Events // extends CommonObject
|
|||||||
* @param int $notrigger 0=no, 1=yes (no update trigger)
|
* @param int $notrigger 0=no, 1=yes (no update trigger)
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function update($user=0, $notrigger=0)
|
function update($user=null, $notrigger=0)
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
|
|
||||||
@ -191,7 +191,7 @@ class Events // extends CommonObject
|
|||||||
* @param User $user User that load
|
* @param User $user User that load
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function fetch($id, $user=0)
|
function fetch($id, $user=null)
|
||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
|
|
||||||
|
|||||||
@ -56,7 +56,7 @@ class ExtraFields
|
|||||||
var $error;
|
var $error;
|
||||||
var $errno;
|
var $errno;
|
||||||
|
|
||||||
static $type2label=array(
|
public static $type2label=array(
|
||||||
'varchar'=>'String',
|
'varchar'=>'String',
|
||||||
'text'=>'TextLong',
|
'text'=>'TextLong',
|
||||||
'int'=>'Int',
|
'int'=>'Int',
|
||||||
|
|||||||
@ -746,7 +746,7 @@ class Form
|
|||||||
* @param int $showempty Add an empty field
|
* @param int $showempty Add an empty field
|
||||||
* @param int $showtype Show third party type in combolist (customer, prospect or supplier)
|
* @param int $showtype Show third party type in combolist (customer, prospect or supplier)
|
||||||
* @param int $forcecombo Force to use combo box
|
* @param int $forcecombo Force to use combo box
|
||||||
* @param array $events Event options. Example: array(array('method'=>'getContacts', 'url'=>dol_buildpath('/core/ajax/contacts.php',1), 'htmlname'=>'contactid', 'params'=>array('add-customer-contact'=>'disabled')))
|
* @param array $events Event options to run on change. Example: array(array('method'=>'getContacts', 'url'=>dol_buildpath('/core/ajax/contacts.php',1), 'htmlname'=>'contactid', 'params'=>array('add-customer-contact'=>'disabled')))
|
||||||
* @param int $limit Maximum number of elements
|
* @param int $limit Maximum number of elements
|
||||||
* @return string HTML string with
|
* @return string HTML string with
|
||||||
* @deprecated Use select_thirdparty instead
|
* @deprecated Use select_thirdparty instead
|
||||||
@ -816,10 +816,67 @@ class Form
|
|||||||
$resql=$this->db->query($sql);
|
$resql=$this->db->query($sql);
|
||||||
if ($resql)
|
if ($resql)
|
||||||
{
|
{
|
||||||
if (! empty($conf->use_javascript_ajax) && ! empty($conf->global->COMPANY_USE_SEARCH_TO_SELECT) && ! $forcecombo)
|
if (! empty($conf->use_javascript_ajax))
|
||||||
{
|
{
|
||||||
include_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php';
|
if (! empty($conf->global->COMPANY_USE_SEARCH_TO_SELECT) && ! $forcecombo)
|
||||||
$out.= ajax_combobox($htmlname, $events, $conf->global->COMPANY_USE_SEARCH_TO_SELECT);
|
{
|
||||||
|
include_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php';
|
||||||
|
$out.= ajax_combobox($htmlname, $events, $conf->global->COMPANY_USE_SEARCH_TO_SELECT);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (count($events)) // Add management of event
|
||||||
|
{
|
||||||
|
print '<script type="text/javascript">
|
||||||
|
$(document).ready(function() {
|
||||||
|
jQuery("#'.$htmlname.'").change(function () {
|
||||||
|
var obj = '.json_encode($events).';
|
||||||
|
$.each(obj, function(key,values) {
|
||||||
|
if (values.method.length) {
|
||||||
|
runJsCodeForEvent'.$htmlname.'(values);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
function runJsCodeForEvent'.$htmlname.'(obj) {
|
||||||
|
var id = $("#'.$htmlname.'").val();
|
||||||
|
var method = obj.method;
|
||||||
|
var url = obj.url;
|
||||||
|
var htmlname = obj.htmlname;
|
||||||
|
var showempty = obj.showempty;
|
||||||
|
$.getJSON(url,
|
||||||
|
{
|
||||||
|
action: method,
|
||||||
|
id: id,
|
||||||
|
htmlname: htmlname,
|
||||||
|
showempty: showempty
|
||||||
|
},
|
||||||
|
function(response) {
|
||||||
|
$.each(obj.params, function(key,action) {
|
||||||
|
if (key.length) {
|
||||||
|
var num = response.num;
|
||||||
|
if (num > 0) {
|
||||||
|
$("#" + key).removeAttr(action);
|
||||||
|
} else {
|
||||||
|
$("#" + key).attr(action, action);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$("select#" + htmlname).html(response.value);
|
||||||
|
if (response.num) {
|
||||||
|
var selecthtml_str = response.value;
|
||||||
|
var selecthtml_dom=$.parseHTML(selecthtml_str);
|
||||||
|
$("#inputautocomplete"+htmlname).val(selecthtml_dom[0][0].innerHTML);
|
||||||
|
} else {
|
||||||
|
$("#inputautocomplete"+htmlname).val("");
|
||||||
|
}
|
||||||
|
$("select#" + htmlname).change(); /* Trigger event change */
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>';
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Construct $out and $outarray
|
// Construct $out and $outarray
|
||||||
@ -4045,7 +4102,22 @@ class Form
|
|||||||
|
|
||||||
if ($value_as_key) $array=array_combine($array, $array);
|
if ($value_as_key) $array=array_combine($array, $array);
|
||||||
|
|
||||||
$out='<select id="'.$htmlname.'" '.($disabled?'disabled="disabled" ':'').'class="flat'.($morecss?' '.$morecss:'').'" name="'.$htmlname.'" '.($moreparam?$moreparam:'').'>';
|
$out='';
|
||||||
|
|
||||||
|
// Add code for jquery to use multiselect
|
||||||
|
if (empty($conf->dol_use_jmobile) && (! empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) || defined('REQUIRE_JQUERY_MULTISELECT')))
|
||||||
|
{
|
||||||
|
$tmpplugin=empty($conf->global->MAIN_USE_JQUERY_MULTISELECT)?constant('REQUIRE_JQUERY_MULTISELECT'):$conf->global->MAIN_USE_JQUERY_MULTISELECT;
|
||||||
|
$out='<!-- JS CODE TO ENABLE '.$tmpplugin.' for id '.$htmlname.' -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function () {
|
||||||
|
$(\'#'.$htmlname.'\').'.$tmpplugin.'({
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>';
|
||||||
|
}
|
||||||
|
|
||||||
|
$out.='<select id="'.$htmlname.'" '.($disabled?'disabled="disabled" ':'').'class="flat'.($morecss?' '.$morecss:'').'" name="'.$htmlname.'" '.($moreparam?$moreparam:'').'>';
|
||||||
|
|
||||||
if ($show_empty)
|
if ($show_empty)
|
||||||
{
|
{
|
||||||
@ -4109,46 +4181,22 @@ class Form
|
|||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
|
|
||||||
// Add code for jquery to use multiselect
|
// Add code for jquery to use multiselect
|
||||||
// Note: Plugin "multiselect" is no more provided by Dolibarr. You must include it and load it into your module to use it.
|
if (! empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) || defined('REQUIRE_JQUERY_MULTISELECT'))
|
||||||
if ((! empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) && ($conf->global->MAIN_USE_JQUERY_MULTISELECT == 'multiselect'))
|
|
||||||
|| (defined('REQUIRE_JQUERY_MULTISELECT') && constant('REQUIRE_JQUERY_MULTISELECT')))
|
|
||||||
{
|
{
|
||||||
print '<!-- JS CODE FOR multiselect -->
|
$tmpplugin=empty($conf->global->MAIN_USE_JQUERY_MULTISELECT)?constant('REQUIRE_JQUERY_MULTISELECT'):$conf->global->MAIN_USE_JQUERY_MULTISELECT;
|
||||||
<script type="text/javascript">
|
print '<!-- JS CODE TO ENABLE '.$tmpplugin.' for id '.$htmlname.' -->
|
||||||
$(document).ready(function () {
|
<script type="text/javascript">
|
||||||
$.extend($.ui.multiselect.locale, {
|
$(document).ready(function () {
|
||||||
addAll:\''.$langs->transnoentities("AddAll").'\',
|
$(\'#'.$htmlname.'\').'.$tmpplugin.'({
|
||||||
removeAll:\''.$langs->transnoentities("RemoveAll").'\',
|
});
|
||||||
itemsCount:\''.$langs->transnoentities("ItemsCount").'\'
|
});
|
||||||
});
|
</script>';
|
||||||
$(function(){
|
|
||||||
$("#'.$htmlname.'").multiselect({
|
|
||||||
searchable: false,
|
|
||||||
width: '.($width?$width:300).',
|
|
||||||
height: 120
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add code for jquery to use multiple-select
|
|
||||||
// Note: Plugin "multiselect" is no more provided by Dolibarr. You must include it and load it into your module to use it.
|
|
||||||
if ((! empty($conf->global->MAIN_USE_JQUERY_MULTISELECT) && ($conf->global->MAIN_USE_JQUERY_MULTISELECT == 'multiple-select'))
|
|
||||||
|| (defined('REQUIRE_JQUERY_MULTISELECT') && constant('REQUIRE_JQUERY_MULTISELECT')))
|
|
||||||
{
|
|
||||||
print '<!-- JS CODE FOR multiple-select -->
|
|
||||||
<script src="'.DOL_URL_ROOT.'/includes/jquery/plugins/multiple-select/jquery.multiple.select.js"></script>
|
|
||||||
<script type="text/javascript">
|
|
||||||
$(document).ready(function () {
|
|
||||||
$(\'#'.$htmlname.'\').multipleSelect();
|
|
||||||
});
|
|
||||||
</script>';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Try also magic suggest
|
// Try also magic suggest
|
||||||
|
|
||||||
$out = '<select id="'.$htmlname.'" class="multiselect" multiple="multiple" name="'.$htmlname.'[]"'.$option.($width?' style="width: '.$width.'px"':'').'>'."\n";
|
// Add data-role="none" to diable jmobile decoration
|
||||||
|
$out = '<select data-role="none" id="'.$htmlname.'" class="multiselect" multiple="multiple" name="'.$htmlname.'[]"'.$option.($width?' style="width: '.$width.'px"':'').'>'."\n";
|
||||||
if (is_array($array) && ! empty($array))
|
if (is_array($array) && ! empty($array))
|
||||||
{
|
{
|
||||||
if ($value_as_key) $array=array_combine($array, $array);
|
if ($value_as_key) $array=array_combine($array, $array);
|
||||||
|
|||||||
@ -547,7 +547,7 @@ class FormCompany
|
|||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
if ($resql)
|
if ($resql)
|
||||||
{
|
{
|
||||||
if ($conf->use_javascript_ajax && ! empty($conf->global->COMPANY_USE_SEARCH_TO_SELECT))
|
if (! empty($conf->use_javascript_ajax) && ! empty($conf->global->COMPANY_USE_SEARCH_TO_SELECT))
|
||||||
{
|
{
|
||||||
// Use Ajax search
|
// Use Ajax search
|
||||||
$minLength = (is_numeric($conf->global->COMPANY_USE_SEARCH_TO_SELECT)?$conf->global->COMPANY_USE_SEARCH_TO_SELECT:2);
|
$minLength = (is_numeric($conf->global->COMPANY_USE_SEARCH_TO_SELECT)?$conf->global->COMPANY_USE_SEARCH_TO_SELECT:2);
|
||||||
|
|||||||
@ -277,7 +277,7 @@ function limitChars(textarea, limit, infodiv)
|
|||||||
{
|
{
|
||||||
$defaultmessage=$this->withbody;
|
$defaultmessage=$this->withbody;
|
||||||
}
|
}
|
||||||
$defaultmessage=make_substitutions($defaultmessage,$this->substit,$langs);
|
$defaultmessage=make_substitutions($defaultmessage,$this->substit);
|
||||||
if (isset($_POST["message"])) $defaultmessage=$_POST["message"];
|
if (isset($_POST["message"])) $defaultmessage=$_POST["message"];
|
||||||
$defaultmessage=str_replace('\n',"\n",$defaultmessage);
|
$defaultmessage=str_replace('\n',"\n",$defaultmessage);
|
||||||
|
|
||||||
|
|||||||
@ -847,6 +847,7 @@ class Ldap
|
|||||||
*/
|
*/
|
||||||
function getAttributeValues($filterrecord,$attribute)
|
function getAttributeValues($filterrecord,$attribute)
|
||||||
{
|
{
|
||||||
|
$attributes=array();
|
||||||
$attributes[0] = $attribute;
|
$attributes[0] = $attribute;
|
||||||
|
|
||||||
// We need to search for this user in order to get their entry.
|
// We need to search for this user in order to get their entry.
|
||||||
@ -1075,9 +1076,9 @@ class Ldap
|
|||||||
$subcount = hexdec(substr($hex_sid,2,2)); // Get count of sub-auth entries
|
$subcount = hexdec(substr($hex_sid,2,2)); // Get count of sub-auth entries
|
||||||
$auth = hexdec(substr($hex_sid,4,12)); // SECURITY_NT_AUTHORITY
|
$auth = hexdec(substr($hex_sid,4,12)); // SECURITY_NT_AUTHORITY
|
||||||
$result = "$rev-$auth";
|
$result = "$rev-$auth";
|
||||||
for ($x=0;$x < $subcount; $x++) {
|
for ($x=0;$x < $subcount; $x++)
|
||||||
$subauth[$x] = hexdec($this->littleEndian(substr($hex_sid,16+($x*8),8))); // get all SECURITY_NT_AUTHORITY
|
{
|
||||||
$result .= "-".$subauth[$x];
|
$result .= "-".hexdec($this->littleEndian(substr($hex_sid,16+($x*8),8))); // get all SECURITY_NT_AUTHORITY
|
||||||
}
|
}
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
@ -1090,9 +1091,9 @@ class Ldap
|
|||||||
* car conflit majuscule-minuscule. A n'utiliser que pour les pages
|
* car conflit majuscule-minuscule. A n'utiliser que pour les pages
|
||||||
* 'Fiche LDAP' qui affiche champ lisibles par defaut.
|
* 'Fiche LDAP' qui affiche champ lisibles par defaut.
|
||||||
*
|
*
|
||||||
* @param string $checkDn DN de recherche (Ex: ou=users,cn=my-domain,cn=com)
|
* @param string $checkDn DN de recherche (Ex: ou=users,cn=my-domain,cn=com)
|
||||||
* @param string $filter Filtre de recherche (ex: (sn=nom_personne) )
|
* @param string $filter Search filter (ex: (sn=nom_personne) )
|
||||||
* @return array Tableau des reponses (cle en minuscule-valeur)
|
* @return array|int Array with answers (key lowercased - value)
|
||||||
*/
|
*/
|
||||||
function search($checkDn, $filter)
|
function search($checkDn, $filter)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -74,7 +74,7 @@ class Menubase
|
|||||||
* @param User $user User that create
|
* @param User $user User that create
|
||||||
* @return int <0 if KO, Id of record if OK
|
* @return int <0 if KO, Id of record if OK
|
||||||
*/
|
*/
|
||||||
function create($user=0)
|
function create($user=null)
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
|
|
||||||
@ -185,7 +185,7 @@ class Menubase
|
|||||||
* @param int $notrigger 0=no, 1=yes (no update trigger)
|
* @param int $notrigger 0=no, 1=yes (no update trigger)
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function update($user=0, $notrigger=0)
|
function update($user=null, $notrigger=0)
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
|
|
||||||
@ -250,7 +250,7 @@ class Menubase
|
|||||||
* @param User $user User that load
|
* @param User $user User that load
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function fetch($id, $user=0)
|
function fetch($id, $user=null)
|
||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
|
|
||||||
|
|||||||
@ -197,6 +197,12 @@ class Translate
|
|||||||
if ($alt < 1 && isset($langarray[1]) && strtolower($langarray[0]) == strtolower($langarray[1])) $alt=1;
|
if ($alt < 1 && isset($langarray[1]) && strtolower($langarray[0]) == strtolower($langarray[1])) $alt=1;
|
||||||
if ($alt < 2 && strtolower($langofdir) == 'en_us') $alt=2;
|
if ($alt < 2 && strtolower($langofdir) == 'en_us') $alt=2;
|
||||||
|
|
||||||
|
if (empty($langofdir)) // This may occurs when load is called without setting the language and without providing a value for forcelangdir
|
||||||
|
{
|
||||||
|
dol_syslog("Error: ".get_class($this)."::Load was called but language was not set yet with langs->setDefaultLang(). Nothing will be loaded.", LOG_WARNING);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
foreach($this->dir as $keydir => $searchdir)
|
foreach($this->dir as $keydir => $searchdir)
|
||||||
{
|
{
|
||||||
// Directory of translation files
|
// Directory of translation files
|
||||||
|
|||||||
@ -121,9 +121,9 @@ interface Database
|
|||||||
/**
|
/**
|
||||||
* List tables into a database
|
* List tables into a database
|
||||||
*
|
*
|
||||||
* @param string $database Name of database
|
* @param string $database Name of database
|
||||||
* @param string $table Nmae of table filter ('xxx%')
|
* @param string $table Nmae of table filter ('xxx%')
|
||||||
* @return resource Resource
|
* @return array List of tables in an array
|
||||||
*/
|
*/
|
||||||
function DDLListTables($database, $table = '');
|
function DDLListTables($database, $table = '');
|
||||||
|
|
||||||
@ -386,9 +386,9 @@ interface Database
|
|||||||
* 19700101020000 -> 3600 with TZ+1 and gmt=0
|
* 19700101020000 -> 3600 with TZ+1 and gmt=0
|
||||||
* 19700101020000 -> 7200 whaterver is TZ if gmt=1
|
* 19700101020000 -> 7200 whaterver is TZ if gmt=1
|
||||||
*
|
*
|
||||||
* @param string $string Date in a string (YYYYMMDDHHMMSS, YYYYMMDD, YYYY-MM-DD HH:MM:SS)
|
* @param string $string Date in a string (YYYYMMDDHHMMSS, YYYYMMDD, YYYY-MM-DD HH:MM:SS)
|
||||||
* @param int $gm 1=Input informations are GMT values, otherwise local to server TZ
|
* @param int $gm 1=Input informations are GMT values, otherwise local to server TZ
|
||||||
* @return date Date TMS
|
* @return timestamp|string Date TMS
|
||||||
*/
|
*/
|
||||||
function jdate($string, $gm=false);
|
function jdate($string, $gm=false);
|
||||||
|
|
||||||
|
|||||||
@ -158,8 +158,8 @@ abstract class DoliDB implements Database
|
|||||||
/**
|
/**
|
||||||
* Annulation d'une transaction et retour aux anciennes valeurs
|
* Annulation d'une transaction et retour aux anciennes valeurs
|
||||||
*
|
*
|
||||||
* @param string $log Add more log to default log line
|
* @param string $log Add more log to default log line
|
||||||
* @return int 1 si annulation ok ou transaction non ouverte, 0 en cas d'erreur
|
* @return resource|int 1 si annulation ok ou transaction non ouverte, 0 en cas d'erreur
|
||||||
*/
|
*/
|
||||||
function rollback($log='')
|
function rollback($log='')
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2013-2014 Olivier Geffroy <jeff@jeffinfo.com>
|
/* Copyright (C) 2013-2014 Olivier Geffroy <jeff@jeffinfo.com>
|
||||||
* Copyright (C) 2013-2014 Alexandre Spangaro <alexandre.spangaro@gmail.com>
|
* Copyright (C) 2013-2014 Alexandre Spangaro <alexandre.spangaro@gmail.com>
|
||||||
* Copyright (C) 2014 Florian Henry <florian.henry@open-concept.pro>
|
* Copyright (C) 2014 Florian Henry <florian.henry@open-concept.pro>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@ -26,38 +26,39 @@
|
|||||||
/**
|
/**
|
||||||
* Prepare array with list of admin tabs
|
* Prepare array with list of admin tabs
|
||||||
*
|
*
|
||||||
|
* @param Object $object Object instance we show card
|
||||||
* @return array Array of tabs to show
|
* @return array Array of tabs to show
|
||||||
*/
|
*/
|
||||||
function admin_accounting_prepare_head()
|
function admin_accounting_prepare_head($object=null)
|
||||||
{
|
{
|
||||||
global $langs, $conf;
|
global $langs, $conf;
|
||||||
|
|
||||||
$h = 0;
|
$h = 0;
|
||||||
$head = array ();
|
$head = array ();
|
||||||
|
|
||||||
$head[$h][0] = dol_buildpath('/accountancy/admin/index.php', 1);
|
$head[$h][0] = dol_buildpath('/accountancy/admin/index.php', 1);
|
||||||
$head[$h][1] = $langs->trans("Configuration");
|
$head[$h][1] = $langs->trans("Configuration");
|
||||||
$head[$h][2] = 'general';
|
$head[$h][2] = 'general';
|
||||||
$h ++;
|
$h ++;
|
||||||
|
|
||||||
// Show more tabs from modules
|
// Show more tabs from modules
|
||||||
// Entries must be declared in modules descriptor with line
|
// Entries must be declared in modules descriptor with line
|
||||||
// $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab
|
// $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab
|
||||||
// $this->tabs = array('entity:-tabname); to remove a tab
|
// $this->tabs = array('entity:-tabname); to remove a tab
|
||||||
complete_head_from_modules($conf, $langs, $object, $head, $h, 'accounting_admin');
|
complete_head_from_modules($conf, $langs, $object, $head, $h, 'accounting_admin');
|
||||||
|
|
||||||
$head[$h][0] = dol_buildpath('/accountancy/admin/journaux.php', 1);
|
$head[$h][0] = dol_buildpath('/accountancy/admin/journaux.php', 1);
|
||||||
$head[$h][1] = $langs->trans("Journaux");
|
$head[$h][1] = $langs->trans("Journaux");
|
||||||
$head[$h][2] = 'journal';
|
$head[$h][2] = 'journal';
|
||||||
$h ++;
|
$h ++;
|
||||||
|
|
||||||
$head[$h][0] = dol_buildpath('/accountancy/admin/export.php', 1);
|
$head[$h][0] = dol_buildpath('/accountancy/admin/export.php', 1);
|
||||||
$head[$h][1] = $langs->trans("Export");
|
$head[$h][1] = $langs->trans("Export");
|
||||||
$head[$h][2] = 'export';
|
$head[$h][2] = 'export';
|
||||||
$h ++;
|
$h ++;
|
||||||
|
|
||||||
complete_head_from_modules($conf, $langs, $object, $head, $h, 'accounting_admin', 'remove');
|
complete_head_from_modules($conf, $langs, $object, $head, $h, 'accounting_admin', 'remove');
|
||||||
|
|
||||||
return $head;
|
return $head;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -70,23 +71,23 @@ function admin_accounting_prepare_head()
|
|||||||
function accounting_prepare_head($object)
|
function accounting_prepare_head($object)
|
||||||
{
|
{
|
||||||
global $langs, $conf;
|
global $langs, $conf;
|
||||||
|
|
||||||
$h = 0;
|
$h = 0;
|
||||||
$head = array ();
|
$head = array ();
|
||||||
|
|
||||||
$head[$h][0] = dol_buildpath('/accountancy/admin/card.php', 1) . '?id=' . $object->id;
|
$head[$h][0] = dol_buildpath('/accountancy/admin/card.php', 1) . '?id=' . $object->id;
|
||||||
$head[$h][1] = $langs->trans("Card");
|
$head[$h][1] = $langs->trans("Card");
|
||||||
$head[$h][2] = 'card';
|
$head[$h][2] = 'card';
|
||||||
$h ++;
|
$h ++;
|
||||||
|
|
||||||
// Show more tabs from modules
|
// Show more tabs from modules
|
||||||
// Entries must be declared in modules descriptor with line
|
// Entries must be declared in modules descriptor with line
|
||||||
// $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab
|
// $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab
|
||||||
// $this->tabs = array('entity:-tabname); to remove a tab
|
// $this->tabs = array('entity:-tabname); to remove a tab
|
||||||
complete_head_from_modules($conf, $langs, $object, $head, $h, 'accounting_account');
|
complete_head_from_modules($conf, $langs, $object, $head, $h, 'accounting_account');
|
||||||
|
|
||||||
complete_head_from_modules($conf, $langs, $object, $head, $h, 'accounting_account', 'remove');
|
complete_head_from_modules($conf, $langs, $object, $head, $h, 'accounting_account', 'remove');
|
||||||
|
|
||||||
return $head;
|
return $head;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -94,25 +95,25 @@ function accounting_prepare_head($object)
|
|||||||
* Return general accounting account with defined length
|
* Return general accounting account with defined length
|
||||||
*
|
*
|
||||||
* @param string $account General accounting account
|
* @param string $account General accounting account
|
||||||
* @return string String with defined length
|
* @return string String with defined length
|
||||||
*/
|
*/
|
||||||
function length_accountg($account)
|
function length_accountg($account)
|
||||||
{
|
{
|
||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
$g = $conf->global->ACCOUNTING_LENGTH_GACCOUNT;
|
$g = $conf->global->ACCOUNTING_LENGTH_GACCOUNT;
|
||||||
|
|
||||||
if (! empty($g)) {
|
if (! empty($g)) {
|
||||||
// Clean parameters
|
// Clean parameters
|
||||||
$i = strlen($account);
|
$i = strlen($account);
|
||||||
|
|
||||||
if ($i >= 2) {
|
if ($i >= 2) {
|
||||||
while ( $i < $g ) {
|
while ( $i < $g ) {
|
||||||
$account .= '0';
|
$account .= '0';
|
||||||
|
|
||||||
$i ++;
|
$i ++;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $account;
|
return $account;
|
||||||
} else {
|
} else {
|
||||||
return $account;
|
return $account;
|
||||||
@ -126,25 +127,25 @@ function length_accountg($account)
|
|||||||
* Return auxiliary accounting account with defined length
|
* Return auxiliary accounting account with defined length
|
||||||
*
|
*
|
||||||
* @param string $accounta Auxiliary accounting account
|
* @param string $accounta Auxiliary accounting account
|
||||||
* @return string String with defined length
|
* @return string String with defined length
|
||||||
*/
|
*/
|
||||||
function length_accounta($accounta)
|
function length_accounta($accounta)
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
|
|
||||||
$a = $conf->global->ACCOUNTING_LENGTH_AACCOUNT;
|
$a = $conf->global->ACCOUNTING_LENGTH_AACCOUNT;
|
||||||
|
|
||||||
if (! empty($a)) {
|
if (! empty($a)) {
|
||||||
// Clean parameters
|
// Clean parameters
|
||||||
$i = strlen($accounta);
|
$i = strlen($accounta);
|
||||||
|
|
||||||
if ($i >= 2) {
|
if ($i >= 2) {
|
||||||
while ( $i < $a ) {
|
while ( $i < $a ) {
|
||||||
$accounta .= '0';
|
$accounta .= '0';
|
||||||
|
|
||||||
$i ++;
|
$i ++;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $accounta;
|
return $accounta;
|
||||||
} else {
|
} else {
|
||||||
return $accounta;
|
return $accounta;
|
||||||
@ -160,8 +161,8 @@ function length_accounta($accounta)
|
|||||||
* @param string $txt Accounting account
|
* @param string $txt Accounting account
|
||||||
* @param int $len Length
|
* @param int $len Length
|
||||||
* @param int $end Number of characters
|
* @param int $end Number of characters
|
||||||
*
|
*
|
||||||
* @return string Formated string
|
* @return string Formated string
|
||||||
*/
|
*/
|
||||||
function length_exportsage($txt, $len, $end)
|
function length_exportsage($txt, $len, $end)
|
||||||
{
|
{
|
||||||
@ -169,11 +170,11 @@ function length_exportsage($txt, $len, $end)
|
|||||||
// problem with this function, but we need to have the number of letter
|
// problem with this function, but we need to have the number of letter
|
||||||
if (strlen($txt) == $len) {
|
if (strlen($txt) == $len) {
|
||||||
$res = $txt;
|
$res = $txt;
|
||||||
}
|
}
|
||||||
|
|
||||||
elseif (strlen($txt) > $len) {
|
elseif (strlen($txt) > $len) {
|
||||||
$res = substr($txt, 0, $len);
|
$res = substr($txt, 0, $len);
|
||||||
}
|
}
|
||||||
|
|
||||||
else {
|
else {
|
||||||
if ($end == 1) {
|
if ($end == 1) {
|
||||||
|
|||||||
@ -345,13 +345,13 @@ function ajax_combobox($htmlname, $events=array(), $minLengthToAutocomplete=0)
|
|||||||
var obj = '.json_encode($events).';
|
var obj = '.json_encode($events).';
|
||||||
$.each(obj, function(key,values) {
|
$.each(obj, function(key,values) {
|
||||||
if (values.method.length) {
|
if (values.method.length) {
|
||||||
runJsCodeForEvent(values);
|
runJsCodeForEvent'.$htmlname.'(values);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
function runJsCodeForEvent(obj) {
|
function runJsCodeForEvent'.$htmlname.'(obj) {
|
||||||
var id = $("#'.$htmlname.'").val();
|
var id = $("#'.$htmlname.'").val();
|
||||||
var method = obj.method;
|
var method = obj.method;
|
||||||
var url = obj.url;
|
var url = obj.url;
|
||||||
|
|||||||
@ -3837,13 +3837,14 @@ function dol_html_entity_decode($a,$b,$c='UTF-8')
|
|||||||
/**
|
/**
|
||||||
* Replace htmlentities functions to manage errors
|
* Replace htmlentities functions to manage errors
|
||||||
* http://php.net/manual/en/function.htmlentities.php
|
* http://php.net/manual/en/function.htmlentities.php
|
||||||
|
* TODO Remove this function to replace it with direct htmlentities.
|
||||||
*
|
*
|
||||||
* @param string $string The input string.
|
* @param string $string The input string.
|
||||||
* @param int $flags Flags(see PHP doc above)
|
* @param int $flags Flags(see PHP doc above)
|
||||||
* @param string $encoding Encoding
|
* @param string $encoding Encoding
|
||||||
* @param bool $double_encode When double_encode is turned off PHP will not encode existing html entities
|
* @param bool $double_encode When double_encode is turned off PHP will not encode existing html entities
|
||||||
* @return string $ret Encoded string
|
* @return string $ret Encoded string
|
||||||
* @deprecated Since PHP4 support is no longer available, this function does not make sense
|
* @deprecated Since PHP4 support is no longer available, this function does not make sense.
|
||||||
*/
|
*/
|
||||||
function dol_htmlentities($string, $flags=null, $encoding='UTF-8', $double_encode=false)
|
function dol_htmlentities($string, $flags=null, $encoding='UTF-8', $double_encode=false)
|
||||||
{
|
{
|
||||||
@ -3998,10 +3999,7 @@ function dol_concatdesc($text1,$text2,$forxml=false)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Make substition into a string
|
* Make substition into a string replacing key with vals from $substitutionarray (oldval=>newval)
|
||||||
* There is two type of substitions:
|
|
||||||
* - From $substitutionarray (oldval=>newval)
|
|
||||||
* - From special constants (__XXX__=>f(objet->xxx)) by substitutions modules
|
|
||||||
*
|
*
|
||||||
* @param string $chaine Source string in which we must do substitution
|
* @param string $chaine Source string in which we must do substitution
|
||||||
* @param array $substitutionarray Array with key->val to substitute
|
* @param array $substitutionarray Array with key->val to substitute
|
||||||
|
|||||||
@ -758,7 +758,9 @@ function pdf_pagefoot(&$pdf,$outputlangs,$paramfreetext,$fromcompany,$marge_bass
|
|||||||
// Capital
|
// Capital
|
||||||
if ($fromcompany->capital)
|
if ($fromcompany->capital)
|
||||||
{
|
{
|
||||||
$line3.=($line3?" - ":"").$outputlangs->transnoentities("CapitalOf",price($fromcompany->capital, 0, $outputlangs, 0, 0, 0, $conf->currency));
|
$tmpamounttoshow = price2num($fromcompany->capital); // This field is a free string
|
||||||
|
if (is_numeric($tmpamounttoshow) && $tmpamounttoshow > 0) $line3.=($line3?" - ":"").$outputlangs->transnoentities("CapitalOf",price($tmpamounttoshow, 0, $outputlangs, 0, 0, 0, $conf->currency));
|
||||||
|
else $line3.=($line3?" - ":"").$outputlangs->transnoentities("CapitalOf",$tmpamounttoshow,$outputlangs);
|
||||||
}
|
}
|
||||||
// Prof Id 1
|
// Prof Id 1
|
||||||
if ($fromcompany->idprof1 && ($fromcompany->country_code != 'FR' || ! $fromcompany->idprof2))
|
if ($fromcompany->idprof1 && ($fromcompany->country_code != 'FR' || ! $fromcompany->idprof2))
|
||||||
|
|||||||
@ -316,6 +316,7 @@ function measuring_units_string($unit,$measuring_style='')
|
|||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
|
|
||||||
|
$measuring_units=array();
|
||||||
if ($measuring_style == 'weight')
|
if ($measuring_style == 'weight')
|
||||||
{
|
{
|
||||||
$measuring_units[3] = $langs->trans("WeightUnitton");
|
$measuring_units[3] = $langs->trans("WeightUnitton");
|
||||||
|
|||||||
@ -26,15 +26,15 @@
|
|||||||
/**
|
/**
|
||||||
* Show header of a VAT report
|
* Show header of a VAT report
|
||||||
*
|
*
|
||||||
* @param string $nom Name of report
|
* @param string $nom Name of report
|
||||||
* @param string $variante Link for alternate report
|
* @param string $variante Link for alternate report
|
||||||
* @param string $period Period of report
|
* @param string $period Period of report
|
||||||
* @param string $periodlink Link to switch period
|
* @param string $periodlink Link to switch period
|
||||||
* @param string $description Description
|
* @param string $description Description
|
||||||
* @param date $builddate Date generation
|
* @param timestamp|integer $builddate Date generation
|
||||||
* @param string $exportlink Link for export or ''
|
* @param string $exportlink Link for export or ''
|
||||||
* @param array $moreparam Array with list of params to add into form
|
* @param array $moreparam Array with list of params to add into form
|
||||||
* @param string $calcmode Calculation mode
|
* @param string $calcmode Calculation mode
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function report_header($nom,$variante,$period,$periodlink,$description,$builddate,$exportlink='',$moreparam=array(),$calcmode='')
|
function report_header($nom,$variante,$period,$periodlink,$description,$builddate,$exportlink='',$moreparam=array(),$calcmode='')
|
||||||
@ -79,7 +79,7 @@ function report_header($nom,$variante,$period,$periodlink,$description,$builddat
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ligne de la periode d'analyse du rapport
|
// Ligne de la periode d'analyse du rapport
|
||||||
print '<tr>';
|
print '<tr>';
|
||||||
print '<td>'.$langs->trans("ReportPeriod").'</td>';
|
print '<td>'.$langs->trans("ReportPeriod").'</td>';
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2007-2008 Laurent Destailleur <eldy@users.sourceforge.net>
|
/* Copyright (C) 2007-2014 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2007-2009 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2007-2009 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2010-2011 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2010-2011 Juanjo Menent <jmenent@2byte.es>
|
||||||
*
|
*
|
||||||
@ -20,7 +20,7 @@
|
|||||||
/**
|
/**
|
||||||
* \file htdocs/core/login/functions_dolibarr.php
|
* \file htdocs/core/login/functions_dolibarr.php
|
||||||
* \ingroup core
|
* \ingroup core
|
||||||
* \brief Authentication functions for Dolibarr mode
|
* \brief Authentication functions for Dolibarr mode (check user on login or email and check pass)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@ -50,13 +50,15 @@ function check_user_password_dolibarr($usertotest,$passwordtotest,$entitytotest=
|
|||||||
{
|
{
|
||||||
// If test username/password asked, we define $test=false and $login var if ok, set $_SESSION["dol_loginmesg"] if ko
|
// If test username/password asked, we define $test=false and $login var if ok, set $_SESSION["dol_loginmesg"] if ko
|
||||||
$table = MAIN_DB_PREFIX."user";
|
$table = MAIN_DB_PREFIX."user";
|
||||||
$usernamecol = 'login';
|
$usernamecol1 = 'login';
|
||||||
|
$usernamecol2 = 'email';
|
||||||
$entitycol = 'entity';
|
$entitycol = 'entity';
|
||||||
|
|
||||||
$sql ='SELECT rowid, entity, pass, pass_crypted';
|
$sql ='SELECT rowid, login, entity, pass, pass_crypted';
|
||||||
$sql.=' FROM '.$table;
|
$sql.=' FROM '.$table;
|
||||||
$sql.=' WHERE '.$usernamecol." = '".$db->escape($usertotest)."'";
|
$sql.=' WHERE ('.$usernamecol1." = '".$db->escape($usertotest)."'";
|
||||||
$sql.=' AND '.$entitycol." IN (0," . ($entity ? $entity : 1) . ")";
|
if (preg_match('/@/',$usertotest)) $sql.=' OR '.$usernamecol2." = '".$db->escape($usertotest)."'";
|
||||||
|
$sql.=') AND '.$entitycol." IN (0," . ($entity ? $entity : 1) . ")";
|
||||||
|
|
||||||
dol_syslog("functions_dolibarr::check_user_password_dolibarr", LOG_DEBUG);
|
dol_syslog("functions_dolibarr::check_user_password_dolibarr", LOG_DEBUG);
|
||||||
$resql=$db->query($sql);
|
$resql=$db->query($sql);
|
||||||
@ -106,7 +108,7 @@ function check_user_password_dolibarr($usertotest,$passwordtotest,$entitytotest=
|
|||||||
// Password ok ?
|
// Password ok ?
|
||||||
if ($passok)
|
if ($passok)
|
||||||
{
|
{
|
||||||
$login=$usertotest;
|
$login=$obj->login;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -96,7 +96,7 @@ class Cronjob extends CommonObject
|
|||||||
$error=0;
|
$error=0;
|
||||||
|
|
||||||
$now=dol_now();
|
$now=dol_now();
|
||||||
|
|
||||||
// Clean parameters
|
// Clean parameters
|
||||||
|
|
||||||
if (isset($this->label)) $this->label=trim($this->label);
|
if (isset($this->label)) $this->label=trim($this->label);
|
||||||
@ -501,7 +501,7 @@ class Cronjob extends CommonObject
|
|||||||
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function update($user=0, $notrigger=0)
|
function update($user=null, $notrigger=0)
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
|
|
||||||
|
|||||||
@ -184,7 +184,7 @@ class EcmDirectory // extends CommonObject
|
|||||||
* @param int $notrigger 0=no, 1=yes (no update trigger)
|
* @param int $notrigger 0=no, 1=yes (no update trigger)
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function update($user=0, $notrigger=0)
|
function update($user=null, $notrigger=0)
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
|
|
||||||
|
|||||||
@ -800,7 +800,7 @@ class Expedition extends CommonObject
|
|||||||
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function update($user=0, $notrigger=0)
|
function update($user=null, $notrigger=0)
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
$error=0;
|
$error=0;
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2003 Eric Seigne <erics@rycks.com>
|
* Copyright (C) 2003 Eric Seigne <erics@rycks.com>
|
||||||
* Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2014 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2005-2010 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2010 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2010-2014 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2010-2014 Juanjo Menent <jmenent@2byte.es>
|
||||||
* Copyright (C) 2014 Jean Heimburger <jean@tiaris.info>
|
* Copyright (C) 2014 Jean Heimburger <jean@tiaris.info>
|
||||||
@ -304,8 +304,8 @@ if ($object->fetch($id))
|
|||||||
|
|
||||||
if ($user->rights->fournisseur->commande->lire)
|
if ($user->rights->fournisseur->commande->lire)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
// TODO move to DAO class
|
// TODO move to DAO class
|
||||||
// Check if there are supplier orders billable
|
// Check if there are supplier orders billable
|
||||||
$sql2 = 'SELECT s.nom, s.rowid as socid, s.client, c.rowid, c.ref, c.total_ht, c.ref_supplier,';
|
$sql2 = 'SELECT s.nom, s.rowid as socid, s.client, c.rowid, c.ref, c.total_ht, c.ref_supplier,';
|
||||||
@ -325,7 +325,7 @@ if ($object->fetch($id))
|
|||||||
} else {
|
} else {
|
||||||
setEventMessage($db->lasterror(),'errors');
|
setEventMessage($db->lasterror(),'errors');
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO move to DAO class
|
// TODO move to DAO class
|
||||||
$sql = "SELECT p.rowid,p.ref, p.date_commande as dc, p.fk_statut";
|
$sql = "SELECT p.rowid,p.ref, p.date_commande as dc, p.fk_statut";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseur as p ";
|
$sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseur as p ";
|
||||||
@ -394,7 +394,7 @@ if ($object->fetch($id))
|
|||||||
if ($user->rights->fournisseur->facture->lire)
|
if ($user->rights->fournisseur->facture->lire)
|
||||||
{
|
{
|
||||||
// TODO move to DAO class
|
// TODO move to DAO class
|
||||||
$sql = 'SELECT f.rowid,f.libelle,f.ref_supplier,f.fk_statut,f.datef as df,f.total_ttc as amount,f.paye,';
|
$sql = 'SELECT f.rowid,f.libelle,f.ref,f.ref_supplier,f.fk_statut,f.datef as df,f.total_ttc as amount,f.paye,';
|
||||||
$sql.= ' SUM(pf.amount) as am';
|
$sql.= ' SUM(pf.amount) as am';
|
||||||
$sql.= ' FROM '.MAIN_DB_PREFIX.'facture_fourn as f';
|
$sql.= ' FROM '.MAIN_DB_PREFIX.'facture_fourn as f';
|
||||||
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'paiementfourn_facturefourn as pf ON f.rowid=pf.fk_facturefourn';
|
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'paiementfourn_facturefourn as pf ON f.rowid=pf.fk_facturefourn';
|
||||||
@ -425,7 +425,13 @@ if ($object->fetch($id))
|
|||||||
print '<tr '.$bc[$var].'>';
|
print '<tr '.$bc[$var].'>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
print '<a href="facture/card.php?facid='.$obj->rowid.'">';
|
print '<a href="facture/card.php?facid='.$obj->rowid.'">';
|
||||||
print img_object($langs->trans('ShowBill'),'bill').' '.$obj->ref_supplier.'</a> '.dol_trunc($obj->libelle,14).'</td>';
|
$facturestatic->id=$obj->rowid;
|
||||||
|
$facturestatic->ref=($obj->ref?$obj->ref:$obj->rowid).($obj->ref_supplier?' - '.$obj->ref_supplier:'');
|
||||||
|
//$facturestatic->ref_supplier=$obj->ref_supplier;
|
||||||
|
print $facturestatic->getNomUrl(1);
|
||||||
|
//print img_object($langs->trans('ShowBill'),'bill').' '.($obj->ref?$obj->ref:$obj->rowid).' - '.$obj->ref_supplier.'</a>';
|
||||||
|
print ' '.dol_trunc($obj->libelle,14);
|
||||||
|
print '</td>';
|
||||||
print '<td align="center" class="nowrap">'.dol_print_date($db->jdate($obj->df),'day').'</td>';
|
print '<td align="center" class="nowrap">'.dol_print_date($db->jdate($obj->df),'day').'</td>';
|
||||||
print '<td align="right" class="nowrap">'.price($obj->amount).'</td>';
|
print '<td align="right" class="nowrap">'.price($obj->amount).'</td>';
|
||||||
print '<td align="right" class="nowrap">';
|
print '<td align="right" class="nowrap">';
|
||||||
@ -455,11 +461,11 @@ if ($object->fetch($id))
|
|||||||
$parameters = array();
|
$parameters = array();
|
||||||
$reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been
|
$reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been
|
||||||
// modified by hook
|
// modified by hook
|
||||||
if (empty($reshook))
|
if (empty($reshook))
|
||||||
{
|
{
|
||||||
|
|
||||||
print '<div class="tabsAction">';
|
print '<div class="tabsAction">';
|
||||||
|
|
||||||
if ($user->rights->fournisseur->commande->creer)
|
if ($user->rights->fournisseur->commande->creer)
|
||||||
{
|
{
|
||||||
$langs->load("orders");
|
$langs->load("orders");
|
||||||
@ -471,7 +477,7 @@ if ($object->fetch($id))
|
|||||||
$langs->load("bills");
|
$langs->load("bills");
|
||||||
print '<a class="butAction" href="'.DOL_URL_ROOT.'/fourn/facture/card.php?action=create&socid='.$object->id.'">'.$langs->trans("AddBill").'</a>';
|
print '<a class="butAction" href="'.DOL_URL_ROOT.'/fourn/facture/card.php?action=create&socid='.$object->id.'">'.$langs->trans("AddBill").'</a>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($user->rights->fournisseur->facture->creer)
|
if ($user->rights->fournisseur->facture->creer)
|
||||||
{
|
{
|
||||||
if (! empty($orders2invoice) && $orders2invoice > 0) print '<div class="inline-block divButAction"><a class="butAction" href="'.DOL_URL_ROOT.'/fourn/commande/orderstoinvoice.php?socid='.$object->id.'">'.$langs->trans("CreateInvoiceForThisCustomer").'</a></div>';
|
if (! empty($orders2invoice) && $orders2invoice > 0) print '<div class="inline-block divButAction"><a class="butAction" href="'.DOL_URL_ROOT.'/fourn/commande/orderstoinvoice.php?socid='.$object->id.'">'.$langs->trans("CreateInvoiceForThisCustomer").'</a></div>';
|
||||||
|
|||||||
@ -953,6 +953,8 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
|
$action='create';
|
||||||
|
|
||||||
// Actions on extra fields (by external module or standard code)
|
// Actions on extra fields (by external module or standard code)
|
||||||
// FIXME le hook fait double emploi avec le trigger !!
|
// FIXME le hook fait double emploi avec le trigger !!
|
||||||
$hookmanager->initHooks(array('supplierorderdao'));
|
$hookmanager->initHooks(array('supplierorderdao'));
|
||||||
|
|||||||
@ -255,6 +255,8 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
$result=$this->update_price();
|
$result=$this->update_price();
|
||||||
if ($result > 0)
|
if ($result > 0)
|
||||||
{
|
{
|
||||||
|
$action='create';
|
||||||
|
|
||||||
// Actions on extra fields (by external module or standard code)
|
// Actions on extra fields (by external module or standard code)
|
||||||
// FIXME le hook fait double emploi avec le trigger !!
|
// FIXME le hook fait double emploi avec le trigger !!
|
||||||
$hookmanager->initHooks(array('supplierinvoicedao'));
|
$hookmanager->initHooks(array('supplierinvoicedao'));
|
||||||
@ -539,7 +541,7 @@ class FactureFournisseur extends CommonInvoice
|
|||||||
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function update($user=0, $notrigger=0)
|
function update($user=null, $notrigger=0)
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
$error=0;
|
$error=0;
|
||||||
|
|||||||
@ -470,7 +470,7 @@ class Holiday extends CommonObject
|
|||||||
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function update($user=0, $notrigger=0)
|
function update($user=null, $notrigger=0)
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
$error=0;
|
$error=0;
|
||||||
|
|||||||
@ -1,21 +0,0 @@
|
|||||||
(The MIT License)
|
|
||||||
|
|
||||||
Copyright (c) 2012-2014 Zhixin Wen <wenzhixin2010@gmail.com>
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
@ -1,96 +0,0 @@
|
|||||||
# Multiple Select
|
|
||||||
|
|
||||||
Multiple select is a jQuery plugin to select multiple elements with checkboxes :).
|
|
||||||
|
|
||||||
To get started checkout examples and documentation at http://wenzhixin.net.cn/p/multiple-select
|
|
||||||
|
|
||||||
## Contributors
|
|
||||||
|
|
||||||
Multiple select is due to the excellent work of the following contributors:
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tbody>
|
|
||||||
<tr><th align="left">文翼</th><td><a href="https://github.com/wenzhixin">GitHub/wenzhixin</a></td></tr>
|
|
||||||
<tr><th align="left">Gaurav Jassal</th><td><a href="https://github.com/creativeaura">GitHub/creativeaura</a></td><</tr>
|
|
||||||
<tr><th align="left">guli</th><td><a href="https://github.com/guli">GitHub/guli</a></td></tr>
|
|
||||||
<tr><th align="left">jwheadon</th><td><a href="https://github.com/jwheadon">GitHub/jwheadon</a></td></tr>
|
|
||||||
<tr><th align="left">yx</th><td><a href="https://github.com/qqfish">GitHub/qqfish</a></td></tr>
|
|
||||||
<tr><th align="left">Tobias Macey</th><td><a href="https://github.com/blarghmatey">GitHub/blarghmatey</a></td></tr>
|
|
||||||
<tr><th align="left">Jona Goldman</th><td><a href="https://github.com/jonagoldman">GitHub/jonagoldman</a></td></tr>
|
|
||||||
<tr><th align="left">Alex Jeffrey</th><td><a href="https://github.com/ajeffrey">GitHub/ajeffrey</a></td></tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
## Changelog
|
|
||||||
|
|
||||||
### 1.1.0
|
|
||||||
|
|
||||||
* Fix #63: Add ```keepOpen``` option.
|
|
||||||
* Fix #62: Fix ```isOpen``` and ```filter``` options are both true bug.
|
|
||||||
* Fix #57: Fire onCheckAll event when literally select.
|
|
||||||
* Add data attributes for support.
|
|
||||||
* Fix #55: Add ```name``` option.
|
|
||||||
|
|
||||||
### 1.0.9
|
|
||||||
|
|
||||||
* Fix #42: Add ```styler``` option to custom item style.
|
|
||||||
* Fix firefox click bug.
|
|
||||||
* Add ```allSelected```, ```minumimCountSelected``` and ```countSelected``` options.
|
|
||||||
* Fix #35: Add ```onFocus``` and ```onBlur``` events.
|
|
||||||
* Fix #25: Add ```focus``` and ```blur``` methods.
|
|
||||||
* Fix #31: Trigger the onCheckAll & onUncheckAll events when use filter to select all.
|
|
||||||
|
|
||||||
### 1.0.8
|
|
||||||
|
|
||||||
* Update the license to The MIT License.
|
|
||||||
* Fix #47: Add ```No matches found``` message when there are no results found.
|
|
||||||
* Fix #43: Add ```position``` option.
|
|
||||||
|
|
||||||
### 1.0.7
|
|
||||||
|
|
||||||
* Fix #44: The filters not working bugs.
|
|
||||||
|
|
||||||
### 1.0.6
|
|
||||||
|
|
||||||
* Fix #21: Add ```single``` option.
|
|
||||||
* Add ```override``` option.
|
|
||||||
* Add ```container``` option.
|
|
||||||
* Fix #29: Update the optgroups select text.
|
|
||||||
* Fix #30: Image is not shown in Firefox 25.0.1.
|
|
||||||
* Fix #22: fix group filter problem.
|
|
||||||
|
|
||||||
### 1.0.5
|
|
||||||
|
|
||||||
* Update the button text witdh.
|
|
||||||
* Add keyboard support.
|
|
||||||
|
|
||||||
### 1.0.4
|
|
||||||
|
|
||||||
* Fix #12: Add ```width``` option.
|
|
||||||
* Fix #11: Add callback events.
|
|
||||||
* Add ```maxHeight``` option.
|
|
||||||
|
|
||||||
### 1.0.3
|
|
||||||
|
|
||||||
* Fix #4: Add ```filter``` option.
|
|
||||||
* Support mobile devices.
|
|
||||||
* Fix #6: Add ```refresh``` method.
|
|
||||||
|
|
||||||
### 1.0.2
|
|
||||||
|
|
||||||
* Fix #7: Add ```selected``` and ```disabled``` options.
|
|
||||||
* Fix #5: Add ```checkAll``` and ```uncheckAll``` methods.
|
|
||||||
|
|
||||||
### 1.0.1
|
|
||||||
|
|
||||||
* Fix #3: Add optgroups support.
|
|
||||||
* Add ```placeholder``` option.
|
|
||||||
* Fix #2: use prop method instead of attr.
|
|
||||||
|
|
||||||
### 1.0.0
|
|
||||||
|
|
||||||
* Initial release
|
|
||||||
|
|
||||||
## LICENSE
|
|
||||||
|
|
||||||
[The MIT License](https://github.com/wenzhixin/multiple-select/blob/master/LICENSE)
|
|
||||||
@ -1,466 +0,0 @@
|
|||||||
/**
|
|
||||||
* @author zhixin wen <wenzhixin2010@gmail.com>
|
|
||||||
* @version 1.1.0
|
|
||||||
*
|
|
||||||
* http://wenzhixin.net.cn/p/multiple-select/
|
|
||||||
*/
|
|
||||||
|
|
||||||
(function($) {
|
|
||||||
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
function MultipleSelect($el, options) {
|
|
||||||
var that = this,
|
|
||||||
name = $el.attr('name') || options.name || '',
|
|
||||||
elWidth = $el.width();
|
|
||||||
|
|
||||||
this.$el = $el.hide();
|
|
||||||
this.options = options;
|
|
||||||
|
|
||||||
this.$parent = $('<div class="ms-parent"></div>');
|
|
||||||
this.$choice = $('<button type="button" class="ms-choice"><span class="placeholder">' +
|
|
||||||
options.placeholder + '</span><div></div></button>');
|
|
||||||
this.$drop = $('<div class="ms-drop ' + options.position + '"></div>');
|
|
||||||
this.$el.after(this.$parent);
|
|
||||||
this.$parent.append(this.$choice);
|
|
||||||
this.$parent.append(this.$drop);
|
|
||||||
|
|
||||||
if (this.$el.prop('disabled')) {
|
|
||||||
this.$choice.addClass('disabled');
|
|
||||||
}
|
|
||||||
this.$choice.css('width', elWidth + 'px');
|
|
||||||
this.$drop.css({
|
|
||||||
width: (options.width || elWidth) + 'px'
|
|
||||||
});
|
|
||||||
|
|
||||||
if (!this.options.keepOpen) {
|
|
||||||
$('body').click(function(e) {
|
|
||||||
if ($(e.target)[0] === that.$choice[0] ||
|
|
||||||
$(e.target).parents('.ms-choice')[0] === that.$choice[0]) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (($(e.target)[0] === that.$drop[0] ||
|
|
||||||
$(e.target).parents('.ms-drop')[0] !== that.$drop[0]) &&
|
|
||||||
that.options.isOpen) {
|
|
||||||
that.close();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
this.selectAllName = 'name="selectAll' + name + '"';
|
|
||||||
this.selectGroupName = 'name="selectGroup' + name + '"';
|
|
||||||
this.selectItemName = 'name="selectItem' + name + '"';
|
|
||||||
}
|
|
||||||
|
|
||||||
MultipleSelect.prototype = {
|
|
||||||
constructor : MultipleSelect,
|
|
||||||
|
|
||||||
init: function() {
|
|
||||||
var that = this,
|
|
||||||
html = [];
|
|
||||||
if (this.options.filter) {
|
|
||||||
html.push(
|
|
||||||
'<div class="ms-search">',
|
|
||||||
'<input type="text" autocomplete="off" autocorrect="off" autocapitilize="off" spellcheck="false">',
|
|
||||||
'</div>'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
html.push('<ul>');
|
|
||||||
if (this.options.selectAll && !this.options.single) {
|
|
||||||
html.push(
|
|
||||||
'<li>',
|
|
||||||
'<label>',
|
|
||||||
'<input type="checkbox" ' + this.selectAllName + ' /> ',
|
|
||||||
'[' + this.options.selectAllText + ']',
|
|
||||||
'</label>',
|
|
||||||
'</li>'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
$.each(this.$el.children(), function(i, elm) {
|
|
||||||
html.push(that.optionToHtml(i, elm));
|
|
||||||
});
|
|
||||||
html.push('<li class="ms-no-results">No matches found</li>');
|
|
||||||
html.push('</ul>');
|
|
||||||
this.$drop.html(html.join(''));
|
|
||||||
this.$drop.find('ul').css('max-height', this.options.maxHeight + 'px');
|
|
||||||
this.$drop.find('.multiple').css('width', this.options.multipleWidth + 'px');
|
|
||||||
|
|
||||||
this.$searchInput = this.$drop.find('.ms-search input');
|
|
||||||
this.$selectAll = this.$drop.find('input[' + this.selectAllName + ']');
|
|
||||||
this.$selectGroups = this.$drop.find('input[' + this.selectGroupName + ']');
|
|
||||||
this.$selectItems = this.$drop.find('input[' + this.selectItemName + ']:enabled');
|
|
||||||
this.$disableItems = this.$drop.find('input[' + this.selectItemName + ']:disabled');
|
|
||||||
this.$noResults = this.$drop.find('.ms-no-results');
|
|
||||||
this.events();
|
|
||||||
this.update();
|
|
||||||
|
|
||||||
if (this.options.isOpen) {
|
|
||||||
this.open();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
optionToHtml: function(i, elm, group, groupDisabled) {
|
|
||||||
var that = this,
|
|
||||||
$elm = $(elm),
|
|
||||||
html = [],
|
|
||||||
multiple = this.options.multiple,
|
|
||||||
disabled,
|
|
||||||
type = this.options.single ? 'radio' : 'checkbox';
|
|
||||||
|
|
||||||
if ($elm.is('option')) {
|
|
||||||
var value = $elm.val(),
|
|
||||||
text = $elm.text(),
|
|
||||||
selected = $elm.prop('selected'),
|
|
||||||
style = this.options.styler(value) ? ' style="' + this.options.styler(value) + '"' : '';
|
|
||||||
|
|
||||||
disabled = groupDisabled || $elm.prop('disabled');
|
|
||||||
html.push(
|
|
||||||
'<li' + (multiple ? ' class="multiple"' : '') + style + '>',
|
|
||||||
'<label' + (disabled ? ' class="disabled"' : '') + '>',
|
|
||||||
'<input type="' + type + '" ' + this.selectItemName + ' value="' + value + '"' +
|
|
||||||
(selected ? ' checked="checked"' : '') +
|
|
||||||
(disabled ? ' disabled="disabled"' : '') +
|
|
||||||
(group ? ' data-group="' + group + '"' : '') +
|
|
||||||
'/> ',
|
|
||||||
text,
|
|
||||||
'</label>',
|
|
||||||
'</li>'
|
|
||||||
);
|
|
||||||
} else if (!group && $elm.is('optgroup')) {
|
|
||||||
var _group = 'group_' + i,
|
|
||||||
label = $elm.attr('label');
|
|
||||||
|
|
||||||
disabled = $elm.prop('disabled');
|
|
||||||
html.push(
|
|
||||||
'<li class="group">',
|
|
||||||
'<label class="optgroup' + (disabled ? ' disabled' : '') + '" data-group="' + _group + '">',
|
|
||||||
'<input type="checkbox" ' + this.selectGroupName +
|
|
||||||
(disabled ? ' disabled="disabled"' : '') + ' /> ',
|
|
||||||
label,
|
|
||||||
'</label>',
|
|
||||||
'</li>');
|
|
||||||
$.each($elm.children(), function(i, elm) {
|
|
||||||
html.push(that.optionToHtml(i, elm, _group, disabled));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return html.join('');
|
|
||||||
},
|
|
||||||
|
|
||||||
events: function() {
|
|
||||||
var that = this;
|
|
||||||
this.$choice.off('click').on('click', function(e) {
|
|
||||||
e.preventDefault();
|
|
||||||
that[that.options.isOpen ? 'close' : 'open']();
|
|
||||||
})
|
|
||||||
.off('focus').on('focus', this.options.onFocus)
|
|
||||||
.off('blur').on('blur', this.options.onBlur);
|
|
||||||
|
|
||||||
this.$parent.off('keydown').on('keydown', function(e) {
|
|
||||||
switch (e.which) {
|
|
||||||
case 27: // esc key
|
|
||||||
that.close();
|
|
||||||
that.$choice.focus();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
this.$searchInput.off('keyup').on('keyup', function() {
|
|
||||||
that.filter();
|
|
||||||
});
|
|
||||||
this.$selectAll.off('click').on('click', function() {
|
|
||||||
var checked = $(this).prop('checked'),
|
|
||||||
$items = that.$selectItems.filter(':visible');
|
|
||||||
if ($items.length === that.$selectItems.length) {
|
|
||||||
that[checked ? 'checkAll' : 'uncheckAll']();
|
|
||||||
} else { // when the filter option is true
|
|
||||||
that.$selectGroups.prop('checked', checked);
|
|
||||||
$items.prop('checked', checked);
|
|
||||||
that.options[checked ? 'onCheckAll' : 'onUncheckAll']();
|
|
||||||
that.update();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
this.$selectGroups.off('click').on('click', function() {
|
|
||||||
var group = $(this).parent().attr('data-group'),
|
|
||||||
$items = that.$selectItems.filter(':visible'),
|
|
||||||
$children = $items.filter('[data-group="' + group + '"]'),
|
|
||||||
checked = $children.length !== $children.filter(':checked').length;
|
|
||||||
$children.prop('checked', checked);
|
|
||||||
that.updateSelectAll();
|
|
||||||
that.update();
|
|
||||||
that.options.onOptgroupClick({
|
|
||||||
label: $(this).parent().text(),
|
|
||||||
checked: checked,
|
|
||||||
children: $children.get()
|
|
||||||
});
|
|
||||||
});
|
|
||||||
this.$selectItems.off('click').on('click', function() {
|
|
||||||
that.updateSelectAll();
|
|
||||||
that.update();
|
|
||||||
that.updateOptGroupSelect();
|
|
||||||
that.options.onClick({
|
|
||||||
label: $(this).parent().text(),
|
|
||||||
value: $(this).val(),
|
|
||||||
checked: $(this).prop('checked')
|
|
||||||
});
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
open: function() {
|
|
||||||
if (this.$choice.hasClass('disabled')) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
this.options.isOpen = true;
|
|
||||||
this.$choice.find('>div').addClass('open');
|
|
||||||
this.$drop.show();
|
|
||||||
if (this.options.container) {
|
|
||||||
var offset = this.$drop.offset();
|
|
||||||
this.$drop.appendTo($(this.options.container));
|
|
||||||
this.$drop.offset({ top: offset.top, left: offset.left });
|
|
||||||
}
|
|
||||||
if (this.options.filter) {
|
|
||||||
this.$searchInput.val('');
|
|
||||||
this.filter();
|
|
||||||
}
|
|
||||||
this.options.onOpen();
|
|
||||||
},
|
|
||||||
|
|
||||||
close: function() {
|
|
||||||
this.options.isOpen = false;
|
|
||||||
this.$choice.find('>div').removeClass('open');
|
|
||||||
this.$drop.hide();
|
|
||||||
if (this.options.container) {
|
|
||||||
this.$parent.append(this.$drop);
|
|
||||||
this.$drop.css({
|
|
||||||
'top': 'auto',
|
|
||||||
'left': 'auto'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
this.options.onClose();
|
|
||||||
},
|
|
||||||
|
|
||||||
update: function() {
|
|
||||||
var selects = this.getSelects('text'),
|
|
||||||
$span = this.$choice.find('>span');
|
|
||||||
if (selects.length === this.$selectItems.length + this.$disableItems.length && this.options.allSelected) {
|
|
||||||
$span.removeClass('placeholder').html(this.options.allSelected);
|
|
||||||
} else if (selects.length > this.options.minumimCountSelected && this.options.countSelected) {
|
|
||||||
$span.removeClass('placeholder').html(this.options.countSelected
|
|
||||||
.replace('#', selects.length)
|
|
||||||
.replace('%', this.$selectItems.length + this.$disableItems.length));
|
|
||||||
} else if (selects.length) {
|
|
||||||
$span.removeClass('placeholder').html(selects.join(', '));
|
|
||||||
} else {
|
|
||||||
$span.addClass('placeholder').html(this.options.placeholder);
|
|
||||||
}
|
|
||||||
// set selects to select
|
|
||||||
this.$el.val(this.getSelects());
|
|
||||||
},
|
|
||||||
|
|
||||||
updateSelectAll: function() {
|
|
||||||
var $items = this.$selectItems.filter(':visible');
|
|
||||||
this.$selectAll.prop('checked', $items.length &&
|
|
||||||
$items.length === $items.filter(':checked').length);
|
|
||||||
if (this.$selectAll.prop('checked')) {
|
|
||||||
this.options.onCheckAll();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
updateOptGroupSelect: function() {
|
|
||||||
var $items = this.$selectItems.filter(':visible');
|
|
||||||
$.each(this.$selectGroups, function(i, val) {
|
|
||||||
var group = $(val).parent().attr('data-group'),
|
|
||||||
$children = $items.filter('[data-group="' + group + '"]');
|
|
||||||
$(val).prop('checked', $children.length &&
|
|
||||||
$children.length === $children.filter(':checked').length);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
//value or text, default: 'value'
|
|
||||||
getSelects: function(type) {
|
|
||||||
var that = this,
|
|
||||||
texts = [],
|
|
||||||
values = [];
|
|
||||||
this.$drop.find('input[' + this.selectItemName + ']:checked').each(function() {
|
|
||||||
texts.push($(this).parent().text());
|
|
||||||
values.push($(this).val());
|
|
||||||
});
|
|
||||||
|
|
||||||
if (type === 'text' && this.$selectGroups.length) {
|
|
||||||
texts = [];
|
|
||||||
this.$selectGroups.each(function() {
|
|
||||||
var html = [],
|
|
||||||
text = $.trim($(this).parent().text()),
|
|
||||||
group = $(this).parent().data('group'),
|
|
||||||
$children = that.$drop.find('[' + that.selectItemName + '][data-group="' + group + '"]'),
|
|
||||||
$selected = $children.filter(':checked');
|
|
||||||
|
|
||||||
if ($selected.length === 0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
html.push('[');
|
|
||||||
html.push(text);
|
|
||||||
if ($children.length > $selected.length) {
|
|
||||||
var list = [];
|
|
||||||
$selected.each(function() {
|
|
||||||
list.push($(this).parent().text());
|
|
||||||
});
|
|
||||||
html.push(': ' + list.join(', '));
|
|
||||||
}
|
|
||||||
html.push(']');
|
|
||||||
texts.push(html.join(''));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return type === 'text' ? texts : values;
|
|
||||||
},
|
|
||||||
|
|
||||||
setSelects: function(values) {
|
|
||||||
var that = this;
|
|
||||||
this.$selectItems.prop('checked', false);
|
|
||||||
$.each(values, function(i, value) {
|
|
||||||
that.$selectItems.filter('[value="' + value + '"]').prop('checked', true);
|
|
||||||
});
|
|
||||||
this.$selectAll.prop('checked', this.$selectItems.length ===
|
|
||||||
this.$selectItems.filter(':checked').length);
|
|
||||||
this.update();
|
|
||||||
},
|
|
||||||
|
|
||||||
enable: function() {
|
|
||||||
this.$choice.removeClass('disabled');
|
|
||||||
},
|
|
||||||
|
|
||||||
disable: function() {
|
|
||||||
this.$choice.addClass('disabled');
|
|
||||||
},
|
|
||||||
|
|
||||||
checkAll: function() {
|
|
||||||
this.$selectItems.prop('checked', true);
|
|
||||||
this.$selectGroups.prop('checked', true);
|
|
||||||
this.$selectAll.prop('checked', true);
|
|
||||||
this.update();
|
|
||||||
this.options.onCheckAll();
|
|
||||||
},
|
|
||||||
|
|
||||||
uncheckAll: function() {
|
|
||||||
this.$selectItems.prop('checked', false);
|
|
||||||
this.$selectGroups.prop('checked', false);
|
|
||||||
this.$selectAll.prop('checked', false);
|
|
||||||
this.update();
|
|
||||||
this.options.onUncheckAll();
|
|
||||||
},
|
|
||||||
|
|
||||||
focus: function() {
|
|
||||||
this.$choice.focus();
|
|
||||||
this.options.onFocus();
|
|
||||||
},
|
|
||||||
|
|
||||||
blur: function() {
|
|
||||||
this.$choice.blur();
|
|
||||||
this.options.onBlur();
|
|
||||||
},
|
|
||||||
|
|
||||||
refresh: function() {
|
|
||||||
this.init();
|
|
||||||
},
|
|
||||||
|
|
||||||
filter: function() {
|
|
||||||
var that = this,
|
|
||||||
text = $.trim(this.$searchInput.val()).toLowerCase();
|
|
||||||
if (text.length === 0) {
|
|
||||||
this.$selectItems.parent().show();
|
|
||||||
this.$disableItems.parent().show();
|
|
||||||
this.$selectGroups.parent().show();
|
|
||||||
} else {
|
|
||||||
this.$selectItems.each(function() {
|
|
||||||
var $parent = $(this).parent();
|
|
||||||
$parent[$parent.text().toLowerCase().indexOf(text) < 0 ? 'hide' : 'show']();
|
|
||||||
});
|
|
||||||
this.$disableItems.parent().hide();
|
|
||||||
this.$selectGroups.each(function() {
|
|
||||||
var $parent = $(this).parent();
|
|
||||||
var group = $parent.attr('data-group'),
|
|
||||||
$items = that.$selectItems.filter(':visible');
|
|
||||||
$parent[$items.filter('[data-group="' + group + '"]').length === 0 ? 'hide' : 'show']();
|
|
||||||
});
|
|
||||||
|
|
||||||
//Check if no matches found
|
|
||||||
if (this.$selectItems.filter(':visible').length) {
|
|
||||||
this.$selectAll.parent().show();
|
|
||||||
this.$noResults.hide();
|
|
||||||
} else {
|
|
||||||
this.$selectAll.parent().hide();
|
|
||||||
this.$noResults.show();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.updateOptGroupSelect();
|
|
||||||
this.updateSelectAll();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
$.fn.multipleSelect = function() {
|
|
||||||
var option = arguments[0],
|
|
||||||
args = arguments,
|
|
||||||
|
|
||||||
value,
|
|
||||||
allowedMethods = [
|
|
||||||
'getSelects', 'setSelects',
|
|
||||||
'enable', 'disable',
|
|
||||||
'checkAll', 'uncheckAll',
|
|
||||||
'focus', 'blur',
|
|
||||||
'refresh'
|
|
||||||
];
|
|
||||||
|
|
||||||
this.each(function() {
|
|
||||||
var $this = $(this),
|
|
||||||
data = $this.data('multipleSelect'),
|
|
||||||
options = $.extend({}, $.fn.multipleSelect.defaults,
|
|
||||||
$this.data(), typeof option === 'object' && option);
|
|
||||||
|
|
||||||
if (!data) {
|
|
||||||
data = new MultipleSelect($this, options);
|
|
||||||
$this.data('multipleSelect', data);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof option === 'string') {
|
|
||||||
if ($.inArray(option, allowedMethods) < 0) {
|
|
||||||
throw "Unknown method: " + option;
|
|
||||||
}
|
|
||||||
value = data[option](args[1]);
|
|
||||||
} else {
|
|
||||||
data.init();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return value ? value : this;
|
|
||||||
};
|
|
||||||
|
|
||||||
$.fn.multipleSelect.defaults = {
|
|
||||||
name: '',
|
|
||||||
isOpen: false,
|
|
||||||
placeholder: '',
|
|
||||||
selectAll: true,
|
|
||||||
selectAllText: 'Select all',
|
|
||||||
allSelected: 'All selected',
|
|
||||||
minumimCountSelected: 3,
|
|
||||||
countSelected: '# of % selected',
|
|
||||||
multiple: false,
|
|
||||||
multipleWidth: 80,
|
|
||||||
single: false,
|
|
||||||
filter: false,
|
|
||||||
width: undefined,
|
|
||||||
maxHeight: 250,
|
|
||||||
container: null,
|
|
||||||
position: 'bottom',
|
|
||||||
keepOpen: false,
|
|
||||||
|
|
||||||
styler: function() {return false;},
|
|
||||||
|
|
||||||
onOpen: function() {return false;},
|
|
||||||
onClose: function() {return false;},
|
|
||||||
onCheckAll: function() {return false;},
|
|
||||||
onUncheckAll: function() {return false;},
|
|
||||||
onFocus: function() {return false;},
|
|
||||||
onBlur: function() {return false;},
|
|
||||||
onOptgroupClick: function() {return false;},
|
|
||||||
onClick: function() {return false;}
|
|
||||||
};
|
|
||||||
})(jQuery);
|
|
||||||
@ -1,183 +0,0 @@
|
|||||||
/**
|
|
||||||
* @author zhixin wen <wenzhixin2010@gmail.com>
|
|
||||||
*/
|
|
||||||
|
|
||||||
.ms-parent {
|
|
||||||
display: inline-block;
|
|
||||||
position: relative;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ms-choice {
|
|
||||||
display: block;
|
|
||||||
height: 26px;
|
|
||||||
padding: 0;
|
|
||||||
overflow: hidden;
|
|
||||||
cursor: pointer;
|
|
||||||
border: 1px solid #aaa;
|
|
||||||
text-align: left;
|
|
||||||
white-space: nowrap;
|
|
||||||
line-height: 26px;
|
|
||||||
color: #444;
|
|
||||||
text-decoration: none;
|
|
||||||
-webkit-border-radius: 4px;
|
|
||||||
-moz-border-radius: 4px;
|
|
||||||
border-radius: 4px;
|
|
||||||
background-color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ms-choice.disabled {
|
|
||||||
background-color: #f4f4f4;
|
|
||||||
background-image: none;
|
|
||||||
border: 1px solid #ddd;
|
|
||||||
cursor: default;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ms-choice > span {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 20px;
|
|
||||||
white-space: nowrap;
|
|
||||||
overflow: hidden;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
display: block;
|
|
||||||
padding-left: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ms-choice > span.placeholder {
|
|
||||||
color: #999;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ms-choice > div {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
right: 0;
|
|
||||||
width: 20px;
|
|
||||||
height: 25px;
|
|
||||||
background: url('multiple-select.png') right top no-repeat;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ms-choice > div.open {
|
|
||||||
background: url('multiple-select.png') left top no-repeat;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ms-drop {
|
|
||||||
overflow: hidden;
|
|
||||||
display: none;
|
|
||||||
margin-top: -1px;
|
|
||||||
padding: 0;
|
|
||||||
position: absolute;
|
|
||||||
z-index: 1000;
|
|
||||||
background: #fff;
|
|
||||||
color: #000;
|
|
||||||
border: 1px solid #aaa;
|
|
||||||
-webkit-border-radius: 4px;
|
|
||||||
-moz-border-radius: 4px;
|
|
||||||
border-radius: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ms-drop.bottom {
|
|
||||||
top: 100%;
|
|
||||||
-webkit-box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
|
|
||||||
-moz-box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
|
|
||||||
box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
|
|
||||||
}
|
|
||||||
|
|
||||||
.ms-drop.top {
|
|
||||||
bottom: 100%;
|
|
||||||
-webkit-box-shadow: 0 -4px 5px rgba(0, 0, 0, .15);
|
|
||||||
-moz-box-shadow: 0 -4px 5px rgba(0, 0, 0, .15);
|
|
||||||
box-shadow: 0 -4px 5px rgba(0, 0, 0, .15);
|
|
||||||
}
|
|
||||||
|
|
||||||
.ms-search {
|
|
||||||
display: inline-block;
|
|
||||||
margin: 0;
|
|
||||||
min-height: 26px;
|
|
||||||
padding: 4px;
|
|
||||||
position: relative;
|
|
||||||
white-space: nowrap;
|
|
||||||
width: 100%;
|
|
||||||
z-index: 10000;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ms-search input {
|
|
||||||
width: 100%;
|
|
||||||
height: auto !important;
|
|
||||||
min-height: 24px;
|
|
||||||
padding: 0 20px 0 5px;
|
|
||||||
margin: 0;
|
|
||||||
outline: 0;
|
|
||||||
font-family: sans-serif;
|
|
||||||
font-size: 1em;
|
|
||||||
border: 1px solid #aaa;
|
|
||||||
-webkit-border-radius: 0;
|
|
||||||
-moz-border-radius: 0;
|
|
||||||
border-radius: 0;
|
|
||||||
-webkit-box-shadow: none;
|
|
||||||
-moz-box-shadow: none;
|
|
||||||
box-shadow: none;
|
|
||||||
background: #fff url('multiple-select.png') no-repeat 100% -22px;
|
|
||||||
background: url('multiple-select.png') no-repeat 100% -22px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee));
|
|
||||||
background: url('multiple-select.png') no-repeat 100% -22px, -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%);
|
|
||||||
background: url('multiple-select.png') no-repeat 100% -22px, -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
|
|
||||||
background: url('multiple-select.png') no-repeat 100% -22px, -o-linear-gradient(bottom, white 85%, #eeeeee 99%);
|
|
||||||
background: url('multiple-select.png') no-repeat 100% -22px, -ms-linear-gradient(top, #ffffff 85%, #eeeeee 99%);
|
|
||||||
background: url('multiple-select.png') no-repeat 100% -22px, linear-gradient(top, #ffffff 85%, #eeeeee 99%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.ms-search, .ms-search input {
|
|
||||||
-webkit-box-sizing: border-box;
|
|
||||||
-khtml-box-sizing: border-box;
|
|
||||||
-moz-box-sizing: border-box;
|
|
||||||
-ms-box-sizing: border-box;
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ms-drop ul {
|
|
||||||
overflow: auto;
|
|
||||||
margin: 0;
|
|
||||||
padding: 5px 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ms-drop ul > li {
|
|
||||||
list-style: none;
|
|
||||||
display: list-item;
|
|
||||||
background-image: none;
|
|
||||||
position: static;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ms-drop ul > li .disabled {
|
|
||||||
opacity: .35;
|
|
||||||
filter: Alpha(Opacity=35);
|
|
||||||
}
|
|
||||||
|
|
||||||
.ms-drop ul > li.multiple {
|
|
||||||
display: block;
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ms-drop ul > li.group {
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ms-drop ul > li.multiple label {
|
|
||||||
width: 100%;
|
|
||||||
display: block;
|
|
||||||
white-space: nowrap;
|
|
||||||
overflow: hidden;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ms-drop ul > li label.optgroup {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ms-drop input[type="checkbox"] {
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ms-drop .ms-no-results {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
@ -1,28 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "multiple-select",
|
|
||||||
"version": "1.1.0",
|
|
||||||
"title": "Multiple Select",
|
|
||||||
"description": "Multiple select is a jQuery plugin to select multiple elements with checkboxes :).",
|
|
||||||
"author": {
|
|
||||||
"name": "zhixin wen",
|
|
||||||
"email": "wenzhixin2010@gmail.com",
|
|
||||||
"url": "http://wenzhixin.net.cn/"
|
|
||||||
},
|
|
||||||
"licenses": [
|
|
||||||
{
|
|
||||||
"type": "MIT License",
|
|
||||||
"url": "http://opensource.org/licenses/MIT"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dependencies": {
|
|
||||||
"jquery": ">=1.7"
|
|
||||||
},
|
|
||||||
"keywords": ["multiple.select", "select.list", "multiple.choose", "checkbox"],
|
|
||||||
"homepage": "http://wenzhixin.net.cn/p/multiple-select/",
|
|
||||||
"demo": "http://wenzhixin.net.cn/p/multiple-select/#examples",
|
|
||||||
"bugs": {
|
|
||||||
"url": "https://github.com/wenzhixin/multiple-select/issues"
|
|
||||||
},
|
|
||||||
"docs": "http://wenzhixin.net.cn/p/multiple-select/#documentation",
|
|
||||||
"download": "https://github.com/wenzhixin/multiple-select/archive/master.zip"
|
|
||||||
}
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 3.3 KiB |
2
htdocs/includes/jquery/plugins/select2/.gitignore
vendored
Normal file
2
htdocs/includes/jquery/plugins/select2/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
.idea
|
||||||
|
|
||||||
107
htdocs/includes/jquery/plugins/select2/CONTRIBUTING.md
Normal file
107
htdocs/includes/jquery/plugins/select2/CONTRIBUTING.md
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
Contributing to Select2
|
||||||
|
=======================
|
||||||
|
Looking to contribute something to Select2? **Here's how you can help.**
|
||||||
|
|
||||||
|
Please take a moment to review this document in order to make the contribution
|
||||||
|
process easy and effective for everyone involved.
|
||||||
|
|
||||||
|
Following these guidelines helps to communicate that you respect the time of
|
||||||
|
the developers managing and developing this open source project. In return,
|
||||||
|
they should reciprocate that respect in addressing your issue or assessing
|
||||||
|
patches and features.
|
||||||
|
|
||||||
|
Using the issue tracker
|
||||||
|
-----------------------
|
||||||
|
When [reporting bugs][reporting-bugs] or
|
||||||
|
[requesting features][requesting-features], the
|
||||||
|
[issue tracker on GitHub][issue-tracker] is the recommended channel to use.
|
||||||
|
|
||||||
|
The issue tracker **is not** a place for support requests. The
|
||||||
|
[mailing list][mailing-list] or [IRC channel][irc-channel] are better places to
|
||||||
|
get help.
|
||||||
|
|
||||||
|
Reporting bugs with Select2
|
||||||
|
---------------------------
|
||||||
|
We really appreciate clear bug reports that _consistently_ show an issue
|
||||||
|
_within Select2_.
|
||||||
|
|
||||||
|
The ideal bug report follows these guidelines:
|
||||||
|
|
||||||
|
1. **Use the [GitHub issue search][issue-search]** — Check if the issue
|
||||||
|
has already been reported.
|
||||||
|
2. **Check if the issue has been fixed** — Try to reproduce the problem
|
||||||
|
using the code in the `master` branch.
|
||||||
|
3. **Isolate the problem** — Try to create an
|
||||||
|
[isolated test case][isolated-case] that consistently reproduces the problem.
|
||||||
|
|
||||||
|
Please try to be as detailed as possible in your bug report, especially if an
|
||||||
|
isolated test case cannot be made. Some useful questions to include the answer
|
||||||
|
to are:
|
||||||
|
|
||||||
|
- What steps can be used to reproduce the issue?
|
||||||
|
- What is the bug and what is the expected outcome?
|
||||||
|
- What browser(s) and Operating System have you tested with?
|
||||||
|
- Does the bug happen consistently across all tested browsers?
|
||||||
|
- What version of jQuery are you using? And what version of Select2?
|
||||||
|
- Are you using Select2 with other plugins?
|
||||||
|
|
||||||
|
All of these questions will help people fix and identify any potential bugs.
|
||||||
|
|
||||||
|
Requesting features in Select2
|
||||||
|
------------------------------
|
||||||
|
Select2 is a large library that carries with it a lot of functionality. Because
|
||||||
|
of this, many feature requests will not be implemented in the core library.
|
||||||
|
|
||||||
|
Before starting work on a major feature for Select2, **contact the
|
||||||
|
[community][community] first** or you may risk spending a considerable amount of
|
||||||
|
time on something which the project developers are not interested in bringing
|
||||||
|
into the project.
|
||||||
|
|
||||||
|
### Select2 4.0
|
||||||
|
|
||||||
|
Many feature requests will be closed off until 4.0, where Select2 plans to adopt
|
||||||
|
a more flexible API. If you are interested in helping with the development of
|
||||||
|
the next major Select2 release, please send a message to the
|
||||||
|
[mailing list][mailing-list] or [irc channel][irc-channel] for more information.
|
||||||
|
|
||||||
|
Triaging issues and pull requests
|
||||||
|
---------------------------------
|
||||||
|
Anyone can help the project maintainers triage issues and review pull requests.
|
||||||
|
|
||||||
|
### Handling new issues
|
||||||
|
|
||||||
|
Select2 regularly receives new issues which need to be tested and organized.
|
||||||
|
|
||||||
|
When a new issue that comes in that is similar to another existing issue, it
|
||||||
|
should be checked to make sure it is not a duplicate. Duplicates issues should
|
||||||
|
be marked by replying to the issue with "Duplicate of #[issue number]" where
|
||||||
|
`[issue number]` is the url or issue number for the existing issue. This will
|
||||||
|
allow the project maintainers to quickly close off additional issues and keep
|
||||||
|
the discussion focused within a single issue.
|
||||||
|
|
||||||
|
If you can test issues that are reported to Select2 that contain test cases and
|
||||||
|
confirm under what conditions bugs happen, that will allow others to identify
|
||||||
|
what causes a bug quicker.
|
||||||
|
|
||||||
|
### Reviewing pull requests
|
||||||
|
|
||||||
|
It is very common for pull requests to be opened for issues that contain a clear
|
||||||
|
solution to the problem. These pull requests should be rigorously reviewed by
|
||||||
|
the community before being accepted. If you are not sure about a piece of
|
||||||
|
submitted code, or know of a better way to do something, do not hesitate to make
|
||||||
|
a comment on the pull request.
|
||||||
|
|
||||||
|
It should also be made clear that **all code contributed to Select** must be
|
||||||
|
licensable under the [Apache 2 or GPL 2 licenses][licensing]. Code that cannot
|
||||||
|
be released under either of these licenses **cannot be accepted** into the
|
||||||
|
project.
|
||||||
|
|
||||||
|
[community]: https://github.com/ivaynberg/select2#community
|
||||||
|
[reporting-bugs]: #reporting-bugs-with-select2
|
||||||
|
[requesting-features]: #requesting-features-in-select2
|
||||||
|
[issue-tracker]: https://github.com/ivaynberg/select2/issues
|
||||||
|
[mailing-list]: https://github.com/ivaynberg/select2#mailing-list
|
||||||
|
[irc-channel]: https://github.com/ivaynberg/select2#irc-channel
|
||||||
|
[issue-search]: https://github.com/ivaynberg/select2/search?q=&type=Issues
|
||||||
|
[isolated-case]: http://css-tricks.com/6263-reduced-test-cases/
|
||||||
|
[licensing]: https://github.com/ivaynberg/select2#copyright-and-license
|
||||||
18
htdocs/includes/jquery/plugins/select2/LICENSE
Normal file
18
htdocs/includes/jquery/plugins/select2/LICENSE
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
Copyright 2014 Igor Vaynberg
|
||||||
|
|
||||||
|
Version: @@ver@@ Timestamp: @@timestamp@@
|
||||||
|
|
||||||
|
This software is licensed under the Apache License, Version 2.0 (the "Apache License") or the GNU
|
||||||
|
General Public License version 2 (the "GPL License"). You may choose either license to govern your
|
||||||
|
use of this software only upon the condition that you accept all of the terms of either the Apache
|
||||||
|
License or the GPL License.
|
||||||
|
|
||||||
|
You may obtain a copy of the Apache License and the GPL License at:
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software distributed under the Apache License
|
||||||
|
or the GPL Licesnse is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||||
|
either express or implied. See the Apache License and the GPL License for the specific language governing
|
||||||
|
permissions and limitations under the Apache License and the GPL License.
|
||||||
114
htdocs/includes/jquery/plugins/select2/README.md
Normal file
114
htdocs/includes/jquery/plugins/select2/README.md
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
Select2
|
||||||
|
=======
|
||||||
|
|
||||||
|
Select2 is a jQuery-based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.
|
||||||
|
|
||||||
|
To get started, checkout examples and documentation at http://ivaynberg.github.com/select2
|
||||||
|
|
||||||
|
Use cases
|
||||||
|
---------
|
||||||
|
|
||||||
|
* Enhancing native selects with search.
|
||||||
|
* Enhancing native selects with a better multi-select interface.
|
||||||
|
* Loading data from JavaScript: easily load items via ajax and have them searchable.
|
||||||
|
* Nesting optgroups: native selects only support one level of nested. Select2 does not have this restriction.
|
||||||
|
* Tagging: ability to add new items on the fly.
|
||||||
|
* Working with large, remote datasets: ability to partially load a dataset based on the search term.
|
||||||
|
* Paging of large datasets: easy support for loading more pages when the results are scrolled to the end.
|
||||||
|
* Templating: support for custom rendering of results and selections.
|
||||||
|
|
||||||
|
Browser compatibility
|
||||||
|
---------------------
|
||||||
|
* IE 8+
|
||||||
|
* Chrome 8+
|
||||||
|
* Firefox 10+
|
||||||
|
* Safari 3+
|
||||||
|
* Opera 10.6+
|
||||||
|
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
You can source Select2 directly from a CDN like [JSDliver](http://www.jsdelivr.com/#!select2) or [CDNJS](http://www.cdnjs.com/libraries/select2), [download it from this GitHub repo](https://github.com/ivaynberg/select2/tags), or use one of the integrations below.
|
||||||
|
|
||||||
|
Integrations
|
||||||
|
------------
|
||||||
|
|
||||||
|
* [Wicket-Select2](https://github.com/ivaynberg/wicket-select2) (Java / [Apache Wicket](http://wicket.apache.org))
|
||||||
|
* [select2-rails](https://github.com/argerim/select2-rails) (Ruby on Rails)
|
||||||
|
* [AngularUI](http://angular-ui.github.io/#ui-select) ([AngularJS](https://angularjs.org/))
|
||||||
|
* [Django](https://github.com/applegrew/django-select2)
|
||||||
|
* [Symfony](https://github.com/19Gerhard85/sfSelect2WidgetsPlugin)
|
||||||
|
* [Symfony2](https://github.com/avocode/FormExtensions)
|
||||||
|
* [Bootstrap 2](https://github.com/t0m/select2-bootstrap-css) and [Bootstrap 3](https://github.com/t0m/select2-bootstrap-css/tree/bootstrap3) (CSS skins)
|
||||||
|
* [Meteor](https://github.com/nate-strauser/meteor-select2) (modern reactive JavaScript framework; + [Bootstrap 3 skin](https://github.com/esperadomedia/meteor-select2-bootstrap3-css/))
|
||||||
|
* [Meteor](https://jquery-select2.meteor.com)
|
||||||
|
* [Yii 2.x](http://demos.krajee.com/widgets#select2)
|
||||||
|
* [Yii 1.x](https://github.com/tonybolzan/yii-select2)
|
||||||
|
* [AtmosphereJS](https://atmospherejs.com/package/jquery-select2)
|
||||||
|
|
||||||
|
### Example Integrations
|
||||||
|
|
||||||
|
* [Knockout.js](https://github.com/ivaynberg/select2/wiki/Knockout.js-Integration)
|
||||||
|
* [Socket.IO](https://github.com/ivaynberg/select2/wiki/Socket.IO-Integration)
|
||||||
|
* [PHP](https://github.com/ivaynberg/select2/wiki/PHP-Example)
|
||||||
|
* [.Net MVC] (https://github.com/ivaynberg/select2/wiki/.Net-MVC-Example)
|
||||||
|
|
||||||
|
Internationalization (i18n)
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
Select2 supports multiple languages by simply including the right language JS
|
||||||
|
file (`select2_locale_it.js`, `select2_locale_nl.js`, etc.) after `select2.js`.
|
||||||
|
|
||||||
|
Missing a language? Just copy `select2_locale_en.js.template`, translate
|
||||||
|
it, and make a pull request back to Select2 here on GitHub.
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The documentation for Select2 is available [through GitHub Pages](https://ivaynberg.github.io/select2/) and is located within this repository in the [`gh-pages` branch](https://github.com/ivaynberg/select2/tree/gh-pages).
|
||||||
|
|
||||||
|
Community
|
||||||
|
---------
|
||||||
|
|
||||||
|
### Bug tracker
|
||||||
|
|
||||||
|
Have a bug? Please create an issue here on GitHub!
|
||||||
|
|
||||||
|
https://github.com/ivaynberg/select2/issues
|
||||||
|
|
||||||
|
### Mailing list
|
||||||
|
|
||||||
|
Have a question? Ask on our mailing list!
|
||||||
|
|
||||||
|
select2@googlegroups.com
|
||||||
|
|
||||||
|
https://groups.google.com/d/forum/select2
|
||||||
|
|
||||||
|
### IRC channel
|
||||||
|
|
||||||
|
Need help implementing Select2 in your project? Ask in our IRC channel!
|
||||||
|
|
||||||
|
**Network:** [Freenode](https://freenode.net/) (`chat.freenode.net`)
|
||||||
|
|
||||||
|
**Channel:** `#select2`
|
||||||
|
|
||||||
|
**Web access:** https://webchat.freenode.net/?channels=select2
|
||||||
|
|
||||||
|
Copyright and license
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
Copyright 2012 Igor Vaynberg
|
||||||
|
|
||||||
|
This software is licensed under the Apache License, Version 2.0 (the "Apache License") or the GNU
|
||||||
|
General Public License version 2 (the "GPL License"). You may choose either license to govern your
|
||||||
|
use of this software only upon the condition that you accept all of the terms of either the Apache
|
||||||
|
License or the GPL License.
|
||||||
|
|
||||||
|
You may obtain a copy of the Apache License and the GPL License in the LICENSE file, or at:
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software distributed under the Apache License
|
||||||
|
or the GPL License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||||
|
either express or implied. See the Apache License and the GPL License for the specific language governing
|
||||||
|
permissions and limitations under the Apache License and the GPL License.
|
||||||
8
htdocs/includes/jquery/plugins/select2/bower.json
Normal file
8
htdocs/includes/jquery/plugins/select2/bower.json
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"name": "select2",
|
||||||
|
"version": "3.5.2",
|
||||||
|
"main": ["select2.js", "select2.css", "select2.png", "select2x2.png", "select2-spinner.gif"],
|
||||||
|
"dependencies": {
|
||||||
|
"jquery": ">= 1.7.1"
|
||||||
|
}
|
||||||
|
}
|
||||||
66
htdocs/includes/jquery/plugins/select2/component.json
Normal file
66
htdocs/includes/jquery/plugins/select2/component.json
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
{
|
||||||
|
"name": "select2",
|
||||||
|
"repo": "ivaynberg/select2",
|
||||||
|
"description": "Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.",
|
||||||
|
"version": "3.5.2",
|
||||||
|
"demo": "http://ivaynberg.github.io/select2/",
|
||||||
|
"keywords": [
|
||||||
|
"jquery"
|
||||||
|
],
|
||||||
|
"main": "select2.js",
|
||||||
|
"styles": [
|
||||||
|
"select2.css",
|
||||||
|
"select2-bootstrap.css"
|
||||||
|
],
|
||||||
|
"scripts": [
|
||||||
|
"select2.js",
|
||||||
|
"select2_locale_ar.js",
|
||||||
|
"select2_locale_bg.js",
|
||||||
|
"select2_locale_ca.js",
|
||||||
|
"select2_locale_cs.js",
|
||||||
|
"select2_locale_da.js",
|
||||||
|
"select2_locale_de.js",
|
||||||
|
"select2_locale_el.js",
|
||||||
|
"select2_locale_es.js",
|
||||||
|
"select2_locale_et.js",
|
||||||
|
"select2_locale_eu.js",
|
||||||
|
"select2_locale_fa.js",
|
||||||
|
"select2_locale_fi.js",
|
||||||
|
"select2_locale_fr.js",
|
||||||
|
"select2_locale_gl.js",
|
||||||
|
"select2_locale_he.js",
|
||||||
|
"select2_locale_hr.js",
|
||||||
|
"select2_locale_hu.js",
|
||||||
|
"select2_locale_id.js",
|
||||||
|
"select2_locale_is.js",
|
||||||
|
"select2_locale_it.js",
|
||||||
|
"select2_locale_ja.js",
|
||||||
|
"select2_locale_ka.js",
|
||||||
|
"select2_locale_ko.js",
|
||||||
|
"select2_locale_lt.js",
|
||||||
|
"select2_locale_lv.js",
|
||||||
|
"select2_locale_mk.js",
|
||||||
|
"select2_locale_ms.js",
|
||||||
|
"select2_locale_nl.js",
|
||||||
|
"select2_locale_no.js",
|
||||||
|
"select2_locale_pl.js",
|
||||||
|
"select2_locale_pt-BR.js",
|
||||||
|
"select2_locale_pt-PT.js",
|
||||||
|
"select2_locale_ro.js",
|
||||||
|
"select2_locale_ru.js",
|
||||||
|
"select2_locale_sk.js",
|
||||||
|
"select2_locale_sv.js",
|
||||||
|
"select2_locale_th.js",
|
||||||
|
"select2_locale_tr.js",
|
||||||
|
"select2_locale_uk.js",
|
||||||
|
"select2_locale_vi.js",
|
||||||
|
"select2_locale_zh-CN.js",
|
||||||
|
"select2_locale_zh-TW.js"
|
||||||
|
],
|
||||||
|
"images": [
|
||||||
|
"select2-spinner.gif",
|
||||||
|
"select2.png",
|
||||||
|
"select2x2.png"
|
||||||
|
],
|
||||||
|
"license": "MIT"
|
||||||
|
}
|
||||||
29
htdocs/includes/jquery/plugins/select2/composer.json
Normal file
29
htdocs/includes/jquery/plugins/select2/composer.json
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"name":
|
||||||
|
"ivaynberg/select2",
|
||||||
|
"description": "Select2 is a jQuery based replacement for select boxes.",
|
||||||
|
"version": "3.5.2",
|
||||||
|
"type": "component",
|
||||||
|
"homepage": "http://ivaynberg.github.io/select2/",
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"require": {
|
||||||
|
"robloach/component-installer": "*",
|
||||||
|
"components/jquery": ">=1.7.1"
|
||||||
|
},
|
||||||
|
"extra": {
|
||||||
|
"component": {
|
||||||
|
"scripts": [
|
||||||
|
"select2.js"
|
||||||
|
],
|
||||||
|
"files": [
|
||||||
|
"select2.js",
|
||||||
|
"select2_locale_*.js",
|
||||||
|
"select2.css",
|
||||||
|
"select2-bootstrap.css",
|
||||||
|
"select2-spinner.gif",
|
||||||
|
"select2.png",
|
||||||
|
"select2x2.png"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
20
htdocs/includes/jquery/plugins/select2/package.json
Normal file
20
htdocs/includes/jquery/plugins/select2/package.json
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"name" : "Select2",
|
||||||
|
"description": "Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.",
|
||||||
|
"homepage": "http://ivaynberg.github.io/select2",
|
||||||
|
"author": "Igor Vaynberg",
|
||||||
|
"repository": {"type": "git", "url": "git://github.com/ivaynberg/select2.git"},
|
||||||
|
"main": "select2.js",
|
||||||
|
"version": "3.5.2",
|
||||||
|
"jspm": {
|
||||||
|
"main": "select2",
|
||||||
|
"files": ["select2.js", "select2.png", "select2.css", "select2-spinner.gif"],
|
||||||
|
"shim": {
|
||||||
|
"select2": {
|
||||||
|
"imports": ["jquery", "./select2.css!"],
|
||||||
|
"exports": "$"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"buildConfig": { "uglify": true }
|
||||||
|
}
|
||||||
|
}
|
||||||
79
htdocs/includes/jquery/plugins/select2/release.sh
Normal file
79
htdocs/includes/jquery/plugins/select2/release.sh
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
echo -n "Enter the version for this release: "
|
||||||
|
|
||||||
|
read ver
|
||||||
|
|
||||||
|
if [ ! $ver ]; then
|
||||||
|
echo "Invalid version."
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
name="select2"
|
||||||
|
js="$name.js"
|
||||||
|
mini="$name.min.js"
|
||||||
|
css="$name.css"
|
||||||
|
release="$name-$ver"
|
||||||
|
tag="$ver"
|
||||||
|
branch="build-$ver"
|
||||||
|
curbranch=`git branch | grep "*" | sed "s/* //"`
|
||||||
|
timestamp=$(date)
|
||||||
|
tokens="s/@@ver@@/$ver/g;s/\@@timestamp@@/$timestamp/g"
|
||||||
|
remote="origin"
|
||||||
|
|
||||||
|
echo "Pulling from origin"
|
||||||
|
|
||||||
|
git pull
|
||||||
|
|
||||||
|
echo "Updating Version Identifiers"
|
||||||
|
|
||||||
|
sed -E -e "s/\"version\": \"([0-9\.]+)\",/\"version\": \"$ver\",/g" -i -- bower.json select2.jquery.json component.json composer.json package.json
|
||||||
|
|
||||||
|
git add bower.json
|
||||||
|
git add select2.jquery.json
|
||||||
|
git add component.json
|
||||||
|
git add composer.json
|
||||||
|
git add package.json
|
||||||
|
|
||||||
|
git commit -m "modified version identifiers in descriptors for release $ver"
|
||||||
|
git push
|
||||||
|
|
||||||
|
git branch "$branch"
|
||||||
|
git checkout "$branch"
|
||||||
|
|
||||||
|
echo "Tokenizing..."
|
||||||
|
|
||||||
|
find . -name "$js" | xargs -I{} sed -e "$tokens" -i -- {}
|
||||||
|
find . -name "$css" | xargs -I{} sed -e "$tokens" -i -- {}
|
||||||
|
|
||||||
|
sed -e "s/latest/$ver/g" -i -- bower.json
|
||||||
|
|
||||||
|
git add "$js"
|
||||||
|
git add "$css"
|
||||||
|
|
||||||
|
echo "Minifying..."
|
||||||
|
|
||||||
|
echo "/*" > "$mini"
|
||||||
|
cat LICENSE | sed "$tokens" >> "$mini"
|
||||||
|
echo "*/" >> "$mini"
|
||||||
|
|
||||||
|
curl -s \
|
||||||
|
--data-urlencode "js_code@$js" \
|
||||||
|
http://marijnhaverbeke.nl/uglifyjs \
|
||||||
|
>> "$mini"
|
||||||
|
|
||||||
|
git add "$mini"
|
||||||
|
|
||||||
|
git commit -m "release $ver"
|
||||||
|
|
||||||
|
echo "Tagging..."
|
||||||
|
git tag -a "$tag" -m "tagged version $ver"
|
||||||
|
git push "$remote" --tags
|
||||||
|
|
||||||
|
echo "Cleaning Up..."
|
||||||
|
|
||||||
|
git checkout "$curbranch"
|
||||||
|
git branch -D "$branch"
|
||||||
|
|
||||||
|
echo "Done"
|
||||||
87
htdocs/includes/jquery/plugins/select2/select2-bootstrap.css
vendored
Normal file
87
htdocs/includes/jquery/plugins/select2/select2-bootstrap.css
vendored
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
.form-control .select2-choice {
|
||||||
|
border: 0;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-control .select2-choice .select2-arrow {
|
||||||
|
border-radius: 0 2px 2px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-control.select2-container {
|
||||||
|
height: auto !important;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-control.select2-container.select2-dropdown-open {
|
||||||
|
border-color: #5897FB;
|
||||||
|
border-radius: 3px 3px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-control .select2-container.select2-dropdown-open .select2-choices {
|
||||||
|
border-radius: 3px 3px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-control.select2-container .select2-choices {
|
||||||
|
border: 0 !important;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-group.warning .select2-container .select2-choice,
|
||||||
|
.control-group.warning .select2-container .select2-choices,
|
||||||
|
.control-group.warning .select2-container-active .select2-choice,
|
||||||
|
.control-group.warning .select2-container-active .select2-choices,
|
||||||
|
.control-group.warning .select2-dropdown-open.select2-drop-above .select2-choice,
|
||||||
|
.control-group.warning .select2-dropdown-open.select2-drop-above .select2-choices,
|
||||||
|
.control-group.warning .select2-container-multi.select2-container-active .select2-choices {
|
||||||
|
border: 1px solid #C09853 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-group.warning .select2-container .select2-choice div {
|
||||||
|
border-left: 1px solid #C09853 !important;
|
||||||
|
background: #FCF8E3 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-group.error .select2-container .select2-choice,
|
||||||
|
.control-group.error .select2-container .select2-choices,
|
||||||
|
.control-group.error .select2-container-active .select2-choice,
|
||||||
|
.control-group.error .select2-container-active .select2-choices,
|
||||||
|
.control-group.error .select2-dropdown-open.select2-drop-above .select2-choice,
|
||||||
|
.control-group.error .select2-dropdown-open.select2-drop-above .select2-choices,
|
||||||
|
.control-group.error .select2-container-multi.select2-container-active .select2-choices {
|
||||||
|
border: 1px solid #B94A48 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-group.error .select2-container .select2-choice div {
|
||||||
|
border-left: 1px solid #B94A48 !important;
|
||||||
|
background: #F2DEDE !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-group.info .select2-container .select2-choice,
|
||||||
|
.control-group.info .select2-container .select2-choices,
|
||||||
|
.control-group.info .select2-container-active .select2-choice,
|
||||||
|
.control-group.info .select2-container-active .select2-choices,
|
||||||
|
.control-group.info .select2-dropdown-open.select2-drop-above .select2-choice,
|
||||||
|
.control-group.info .select2-dropdown-open.select2-drop-above .select2-choices,
|
||||||
|
.control-group.info .select2-container-multi.select2-container-active .select2-choices {
|
||||||
|
border: 1px solid #3A87AD !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-group.info .select2-container .select2-choice div {
|
||||||
|
border-left: 1px solid #3A87AD !important;
|
||||||
|
background: #D9EDF7 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-group.success .select2-container .select2-choice,
|
||||||
|
.control-group.success .select2-container .select2-choices,
|
||||||
|
.control-group.success .select2-container-active .select2-choice,
|
||||||
|
.control-group.success .select2-container-active .select2-choices,
|
||||||
|
.control-group.success .select2-dropdown-open.select2-drop-above .select2-choice,
|
||||||
|
.control-group.success .select2-dropdown-open.select2-drop-above .select2-choices,
|
||||||
|
.control-group.success .select2-container-multi.select2-container-active .select2-choices {
|
||||||
|
border: 1px solid #468847 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-group.success .select2-container .select2-choice div {
|
||||||
|
border-left: 1px solid #468847 !important;
|
||||||
|
background: #DFF0D8 !important;
|
||||||
|
}
|
||||||
BIN
htdocs/includes/jquery/plugins/select2/select2-spinner.gif
Normal file
BIN
htdocs/includes/jquery/plugins/select2/select2-spinner.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.8 KiB |
704
htdocs/includes/jquery/plugins/select2/select2.css
vendored
Normal file
704
htdocs/includes/jquery/plugins/select2/select2.css
vendored
Normal file
@ -0,0 +1,704 @@
|
|||||||
|
/*
|
||||||
|
Version: 3.5.2 Timestamp: Sat Nov 1 14:43:36 EDT 2014
|
||||||
|
*/
|
||||||
|
.select2-container {
|
||||||
|
margin: 0;
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
/* inline-block for ie7 */
|
||||||
|
zoom: 1;
|
||||||
|
*display: inline;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-container,
|
||||||
|
.select2-drop,
|
||||||
|
.select2-search,
|
||||||
|
.select2-search input {
|
||||||
|
/*
|
||||||
|
Force border-box so that % widths fit the parent
|
||||||
|
container without overlap because of margin/padding.
|
||||||
|
More Info : http://www.quirksmode.org/css/box.html
|
||||||
|
*/
|
||||||
|
-webkit-box-sizing: border-box; /* webkit */
|
||||||
|
-moz-box-sizing: border-box; /* firefox */
|
||||||
|
box-sizing: border-box; /* css3 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-container .select2-choice {
|
||||||
|
display: block;
|
||||||
|
height: 26px;
|
||||||
|
padding: 0 0 0 8px;
|
||||||
|
overflow: hidden;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
border: 1px solid #aaa;
|
||||||
|
white-space: nowrap;
|
||||||
|
line-height: 26px;
|
||||||
|
color: #444;
|
||||||
|
text-decoration: none;
|
||||||
|
|
||||||
|
border-radius: 4px;
|
||||||
|
|
||||||
|
background-clip: padding-box;
|
||||||
|
|
||||||
|
-webkit-touch-callout: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
|
||||||
|
background-color: #fff;
|
||||||
|
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(0.5, #fff));
|
||||||
|
background-image: -webkit-linear-gradient(center bottom, #eee 0%, #fff 50%);
|
||||||
|
background-image: -moz-linear-gradient(center bottom, #eee 0%, #fff 50%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ffffff', endColorstr = '#eeeeee', GradientType = 0);
|
||||||
|
background-image: linear-gradient(to top, #eee 0%, #fff 50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
html[dir="rtl"] .select2-container .select2-choice {
|
||||||
|
padding: 0 8px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-container.select2-drop-above .select2-choice {
|
||||||
|
border-bottom-color: #aaa;
|
||||||
|
|
||||||
|
border-radius: 0 0 4px 4px;
|
||||||
|
|
||||||
|
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(0.9, #fff));
|
||||||
|
background-image: -webkit-linear-gradient(center bottom, #eee 0%, #fff 90%);
|
||||||
|
background-image: -moz-linear-gradient(center bottom, #eee 0%, #fff 90%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);
|
||||||
|
background-image: linear-gradient(to bottom, #eee 0%, #fff 90%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-container.select2-allowclear .select2-choice .select2-chosen {
|
||||||
|
margin-right: 42px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-container .select2-choice > .select2-chosen {
|
||||||
|
margin-right: 26px;
|
||||||
|
display: block;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
white-space: nowrap;
|
||||||
|
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
float: none;
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[dir="rtl"] .select2-container .select2-choice > .select2-chosen {
|
||||||
|
margin-left: 26px;
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-container .select2-choice abbr {
|
||||||
|
display: none;
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
position: absolute;
|
||||||
|
right: 24px;
|
||||||
|
top: 8px;
|
||||||
|
|
||||||
|
font-size: 1px;
|
||||||
|
text-decoration: none;
|
||||||
|
|
||||||
|
border: 0;
|
||||||
|
background: url('select2.png') right top no-repeat;
|
||||||
|
cursor: pointer;
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-container.select2-allowclear .select2-choice abbr {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-container .select2-choice abbr:hover {
|
||||||
|
background-position: right -11px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-drop-mask {
|
||||||
|
border: 0;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
position: fixed;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
min-height: 100%;
|
||||||
|
min-width: 100%;
|
||||||
|
height: auto;
|
||||||
|
width: auto;
|
||||||
|
opacity: 0;
|
||||||
|
z-index: 9998;
|
||||||
|
/* styles required for IE to work */
|
||||||
|
background-color: #fff;
|
||||||
|
filter: alpha(opacity=0);
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-drop {
|
||||||
|
width: 100%;
|
||||||
|
margin-top: -1px;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 9999;
|
||||||
|
top: 100%;
|
||||||
|
|
||||||
|
background: #fff;
|
||||||
|
color: #000;
|
||||||
|
border: 1px solid #aaa;
|
||||||
|
border-top: 0;
|
||||||
|
|
||||||
|
border-radius: 0 0 4px 4px;
|
||||||
|
|
||||||
|
-webkit-box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
|
||||||
|
box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-drop.select2-drop-above {
|
||||||
|
margin-top: 1px;
|
||||||
|
border-top: 1px solid #aaa;
|
||||||
|
border-bottom: 0;
|
||||||
|
|
||||||
|
border-radius: 4px 4px 0 0;
|
||||||
|
|
||||||
|
-webkit-box-shadow: 0 -4px 5px rgba(0, 0, 0, .15);
|
||||||
|
box-shadow: 0 -4px 5px rgba(0, 0, 0, .15);
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-drop-active {
|
||||||
|
border: 1px solid #5897fb;
|
||||||
|
border-top: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-drop.select2-drop-above.select2-drop-active {
|
||||||
|
border-top: 1px solid #5897fb;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-drop-auto-width {
|
||||||
|
border-top: 1px solid #aaa;
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-drop-auto-width .select2-search {
|
||||||
|
padding-top: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-container .select2-choice .select2-arrow {
|
||||||
|
display: inline-block;
|
||||||
|
width: 18px;
|
||||||
|
height: 100%;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
|
||||||
|
border-left: 1px solid #aaa;
|
||||||
|
border-radius: 0 4px 4px 0;
|
||||||
|
|
||||||
|
background-clip: padding-box;
|
||||||
|
|
||||||
|
background: #ccc;
|
||||||
|
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #ccc), color-stop(0.6, #eee));
|
||||||
|
background-image: -webkit-linear-gradient(center bottom, #ccc 0%, #eee 60%);
|
||||||
|
background-image: -moz-linear-gradient(center bottom, #ccc 0%, #eee 60%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#eeeeee', endColorstr = '#cccccc', GradientType = 0);
|
||||||
|
background-image: linear-gradient(to top, #ccc 0%, #eee 60%);
|
||||||
|
}
|
||||||
|
|
||||||
|
html[dir="rtl"] .select2-container .select2-choice .select2-arrow {
|
||||||
|
left: 0;
|
||||||
|
right: auto;
|
||||||
|
|
||||||
|
border-left: none;
|
||||||
|
border-right: 1px solid #aaa;
|
||||||
|
border-radius: 4px 0 0 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-container .select2-choice .select2-arrow b {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: url('select2.png') no-repeat 0 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[dir="rtl"] .select2-container .select2-choice .select2-arrow b {
|
||||||
|
background-position: 2px 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-search {
|
||||||
|
display: inline-block;
|
||||||
|
width: 100%;
|
||||||
|
min-height: 26px;
|
||||||
|
margin: 0;
|
||||||
|
padding-left: 4px;
|
||||||
|
padding-right: 4px;
|
||||||
|
|
||||||
|
position: relative;
|
||||||
|
z-index: 10000;
|
||||||
|
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-search input {
|
||||||
|
width: 100%;
|
||||||
|
height: auto !important;
|
||||||
|
min-height: 26px;
|
||||||
|
padding: 4px 20px 4px 5px;
|
||||||
|
margin: 0;
|
||||||
|
|
||||||
|
outline: 0;
|
||||||
|
font-family: sans-serif;
|
||||||
|
font-size: 1em;
|
||||||
|
|
||||||
|
border: 1px solid #aaa;
|
||||||
|
border-radius: 0;
|
||||||
|
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
|
||||||
|
background: #fff url('select2.png') no-repeat 100% -22px;
|
||||||
|
background: url('select2.png') no-repeat 100% -22px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, #fff), color-stop(0.99, #eee));
|
||||||
|
background: url('select2.png') no-repeat 100% -22px, -webkit-linear-gradient(center bottom, #fff 85%, #eee 99%);
|
||||||
|
background: url('select2.png') no-repeat 100% -22px, -moz-linear-gradient(center bottom, #fff 85%, #eee 99%);
|
||||||
|
background: url('select2.png') no-repeat 100% -22px, linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[dir="rtl"] .select2-search input {
|
||||||
|
padding: 4px 5px 4px 20px;
|
||||||
|
|
||||||
|
background: #fff url('select2.png') no-repeat -37px -22px;
|
||||||
|
background: url('select2.png') no-repeat -37px -22px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, #fff), color-stop(0.99, #eee));
|
||||||
|
background: url('select2.png') no-repeat -37px -22px, -webkit-linear-gradient(center bottom, #fff 85%, #eee 99%);
|
||||||
|
background: url('select2.png') no-repeat -37px -22px, -moz-linear-gradient(center bottom, #fff 85%, #eee 99%);
|
||||||
|
background: url('select2.png') no-repeat -37px -22px, linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-drop.select2-drop-above .select2-search input {
|
||||||
|
margin-top: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-search input.select2-active {
|
||||||
|
background: #fff url('select2-spinner.gif') no-repeat 100%;
|
||||||
|
background: url('select2-spinner.gif') no-repeat 100%, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, #fff), color-stop(0.99, #eee));
|
||||||
|
background: url('select2-spinner.gif') no-repeat 100%, -webkit-linear-gradient(center bottom, #fff 85%, #eee 99%);
|
||||||
|
background: url('select2-spinner.gif') no-repeat 100%, -moz-linear-gradient(center bottom, #fff 85%, #eee 99%);
|
||||||
|
background: url('select2-spinner.gif') no-repeat 100%, linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-container-active .select2-choice,
|
||||||
|
.select2-container-active .select2-choices {
|
||||||
|
border: 1px solid #5897fb;
|
||||||
|
outline: none;
|
||||||
|
|
||||||
|
-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, .3);
|
||||||
|
box-shadow: 0 0 5px rgba(0, 0, 0, .3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-dropdown-open .select2-choice {
|
||||||
|
border-bottom-color: transparent;
|
||||||
|
-webkit-box-shadow: 0 1px 0 #fff inset;
|
||||||
|
box-shadow: 0 1px 0 #fff inset;
|
||||||
|
|
||||||
|
border-bottom-left-radius: 0;
|
||||||
|
border-bottom-right-radius: 0;
|
||||||
|
|
||||||
|
background-color: #eee;
|
||||||
|
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #fff), color-stop(0.5, #eee));
|
||||||
|
background-image: -webkit-linear-gradient(center bottom, #fff 0%, #eee 50%);
|
||||||
|
background-image: -moz-linear-gradient(center bottom, #fff 0%, #eee 50%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0);
|
||||||
|
background-image: linear-gradient(to top, #fff 0%, #eee 50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-dropdown-open.select2-drop-above .select2-choice,
|
||||||
|
.select2-dropdown-open.select2-drop-above .select2-choices {
|
||||||
|
border: 1px solid #5897fb;
|
||||||
|
border-top-color: transparent;
|
||||||
|
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(0.5, #eee));
|
||||||
|
background-image: -webkit-linear-gradient(center top, #fff 0%, #eee 50%);
|
||||||
|
background-image: -moz-linear-gradient(center top, #fff 0%, #eee 50%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0);
|
||||||
|
background-image: linear-gradient(to bottom, #fff 0%, #eee 50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-dropdown-open .select2-choice .select2-arrow {
|
||||||
|
background: transparent;
|
||||||
|
border-left: none;
|
||||||
|
filter: none;
|
||||||
|
}
|
||||||
|
html[dir="rtl"] .select2-dropdown-open .select2-choice .select2-arrow {
|
||||||
|
border-right: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-dropdown-open .select2-choice .select2-arrow b {
|
||||||
|
background-position: -18px 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[dir="rtl"] .select2-dropdown-open .select2-choice .select2-arrow b {
|
||||||
|
background-position: -16px 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-hidden-accessible {
|
||||||
|
border: 0;
|
||||||
|
clip: rect(0 0 0 0);
|
||||||
|
height: 1px;
|
||||||
|
margin: -1px;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 0;
|
||||||
|
position: absolute;
|
||||||
|
width: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* results */
|
||||||
|
.select2-results {
|
||||||
|
max-height: 200px;
|
||||||
|
padding: 0 0 0 4px;
|
||||||
|
margin: 4px 4px 4px 0;
|
||||||
|
position: relative;
|
||||||
|
overflow-x: hidden;
|
||||||
|
overflow-y: auto;
|
||||||
|
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
html[dir="rtl"] .select2-results {
|
||||||
|
padding: 0 4px 0 0;
|
||||||
|
margin: 4px 0 4px 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-results ul.select2-result-sub {
|
||||||
|
margin: 0;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-results li {
|
||||||
|
list-style: none;
|
||||||
|
display: list-item;
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-results li.select2-result-with-children > .select2-result-label {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-results .select2-result-label {
|
||||||
|
padding: 3px 7px 4px;
|
||||||
|
margin: 0;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
min-height: 1em;
|
||||||
|
|
||||||
|
-webkit-touch-callout: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-results-dept-1 .select2-result-label { padding-left: 20px }
|
||||||
|
.select2-results-dept-2 .select2-result-label { padding-left: 40px }
|
||||||
|
.select2-results-dept-3 .select2-result-label { padding-left: 60px }
|
||||||
|
.select2-results-dept-4 .select2-result-label { padding-left: 80px }
|
||||||
|
.select2-results-dept-5 .select2-result-label { padding-left: 100px }
|
||||||
|
.select2-results-dept-6 .select2-result-label { padding-left: 110px }
|
||||||
|
.select2-results-dept-7 .select2-result-label { padding-left: 120px }
|
||||||
|
|
||||||
|
.select2-results .select2-highlighted {
|
||||||
|
background: #3875d7;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-results li em {
|
||||||
|
background: #feffde;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-results .select2-highlighted em {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-results .select2-highlighted ul {
|
||||||
|
background: #fff;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-results .select2-no-results,
|
||||||
|
.select2-results .select2-searching,
|
||||||
|
.select2-results .select2-ajax-error,
|
||||||
|
.select2-results .select2-selection-limit {
|
||||||
|
background: #f4f4f4;
|
||||||
|
display: list-item;
|
||||||
|
padding-left: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
disabled look for disabled choices in the results dropdown
|
||||||
|
*/
|
||||||
|
.select2-results .select2-disabled.select2-highlighted {
|
||||||
|
color: #666;
|
||||||
|
background: #f4f4f4;
|
||||||
|
display: list-item;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.select2-results .select2-disabled {
|
||||||
|
background: #f4f4f4;
|
||||||
|
display: list-item;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-results .select2-selected {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-more-results.select2-active {
|
||||||
|
background: #f4f4f4 url('select2-spinner.gif') no-repeat 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-results .select2-ajax-error {
|
||||||
|
background: rgba(255, 50, 50, .2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-more-results {
|
||||||
|
background: #f4f4f4;
|
||||||
|
display: list-item;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* disabled styles */
|
||||||
|
|
||||||
|
.select2-container.select2-container-disabled .select2-choice {
|
||||||
|
background-color: #f4f4f4;
|
||||||
|
background-image: none;
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-container.select2-container-disabled .select2-choice .select2-arrow {
|
||||||
|
background-color: #f4f4f4;
|
||||||
|
background-image: none;
|
||||||
|
border-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-container.select2-container-disabled .select2-choice abbr {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* multiselect */
|
||||||
|
|
||||||
|
.select2-container-multi .select2-choices {
|
||||||
|
height: auto !important;
|
||||||
|
height: 1%;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0 5px 0 0;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
border: 1px solid #aaa;
|
||||||
|
cursor: text;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
background-color: #fff;
|
||||||
|
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(1%, #eee), color-stop(15%, #fff));
|
||||||
|
background-image: -webkit-linear-gradient(top, #eee 1%, #fff 15%);
|
||||||
|
background-image: -moz-linear-gradient(top, #eee 1%, #fff 15%);
|
||||||
|
background-image: linear-gradient(to bottom, #eee 1%, #fff 15%);
|
||||||
|
}
|
||||||
|
|
||||||
|
html[dir="rtl"] .select2-container-multi .select2-choices {
|
||||||
|
padding: 0 0 0 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-locked {
|
||||||
|
padding: 3px 5px 3px 5px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-container-multi .select2-choices {
|
||||||
|
min-height: 26px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-container-multi.select2-container-active .select2-choices {
|
||||||
|
border: 1px solid #5897fb;
|
||||||
|
outline: none;
|
||||||
|
|
||||||
|
-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, .3);
|
||||||
|
box-shadow: 0 0 5px rgba(0, 0, 0, .3);
|
||||||
|
}
|
||||||
|
.select2-container-multi .select2-choices li {
|
||||||
|
float: left;
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
html[dir="rtl"] .select2-container-multi .select2-choices li
|
||||||
|
{
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
.select2-container-multi .select2-choices .select2-search-field {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-container-multi .select2-choices .select2-search-field input {
|
||||||
|
padding: 5px;
|
||||||
|
margin: 1px 0;
|
||||||
|
|
||||||
|
font-family: sans-serif;
|
||||||
|
font-size: 100%;
|
||||||
|
color: #666;
|
||||||
|
outline: 0;
|
||||||
|
border: 0;
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
background: transparent !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-container-multi .select2-choices .select2-search-field input.select2-active {
|
||||||
|
background: #fff url('select2-spinner.gif') no-repeat 100% !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-default {
|
||||||
|
color: #999 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-container-multi .select2-choices .select2-search-choice {
|
||||||
|
padding: 3px 5px 3px 18px;
|
||||||
|
margin: 3px 0 3px 5px;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
line-height: 13px;
|
||||||
|
color: #333;
|
||||||
|
cursor: default;
|
||||||
|
border: 1px solid #aaaaaa;
|
||||||
|
|
||||||
|
border-radius: 3px;
|
||||||
|
|
||||||
|
-webkit-box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05);
|
||||||
|
box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05);
|
||||||
|
|
||||||
|
background-clip: padding-box;
|
||||||
|
|
||||||
|
-webkit-touch-callout: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
|
||||||
|
background-color: #e4e4e4;
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#f4f4f4', GradientType=0);
|
||||||
|
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eee));
|
||||||
|
background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
|
||||||
|
background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
|
||||||
|
background-image: linear-gradient(to bottom, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
|
||||||
|
}
|
||||||
|
html[dir="rtl"] .select2-container-multi .select2-choices .select2-search-choice
|
||||||
|
{
|
||||||
|
margin: 3px 5px 3px 0;
|
||||||
|
padding: 3px 18px 3px 5px;
|
||||||
|
}
|
||||||
|
.select2-container-multi .select2-choices .select2-search-choice .select2-chosen {
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.select2-container-multi .select2-choices .select2-search-choice-focus {
|
||||||
|
background: #d4d4d4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-search-choice-close {
|
||||||
|
display: block;
|
||||||
|
width: 12px;
|
||||||
|
height: 13px;
|
||||||
|
position: absolute;
|
||||||
|
right: 3px;
|
||||||
|
top: 4px;
|
||||||
|
|
||||||
|
font-size: 1px;
|
||||||
|
outline: none;
|
||||||
|
background: url('select2.png') right top no-repeat;
|
||||||
|
}
|
||||||
|
html[dir="rtl"] .select2-search-choice-close {
|
||||||
|
right: auto;
|
||||||
|
left: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-container-multi .select2-search-choice-close {
|
||||||
|
left: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[dir="rtl"] .select2-container-multi .select2-search-choice-close {
|
||||||
|
left: auto;
|
||||||
|
right: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close:hover {
|
||||||
|
background-position: right -11px;
|
||||||
|
}
|
||||||
|
.select2-container-multi .select2-choices .select2-search-choice-focus .select2-search-choice-close {
|
||||||
|
background-position: right -11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* disabled styles */
|
||||||
|
.select2-container-multi.select2-container-disabled .select2-choices {
|
||||||
|
background-color: #f4f4f4;
|
||||||
|
background-image: none;
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice {
|
||||||
|
padding: 3px 5px 3px 5px;
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
background-image: none;
|
||||||
|
background-color: #f4f4f4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice .select2-search-choice-close { display: none;
|
||||||
|
background: none;
|
||||||
|
}
|
||||||
|
/* end multiselect */
|
||||||
|
|
||||||
|
|
||||||
|
.select2-result-selectable .select2-match,
|
||||||
|
.select2-result-unselectable .select2-match {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-offscreen, .select2-offscreen:focus {
|
||||||
|
clip: rect(0 0 0 0) !important;
|
||||||
|
width: 1px !important;
|
||||||
|
height: 1px !important;
|
||||||
|
border: 0 !important;
|
||||||
|
margin: 0 !important;
|
||||||
|
padding: 0 !important;
|
||||||
|
overflow: hidden !important;
|
||||||
|
position: absolute !important;
|
||||||
|
outline: 0 !important;
|
||||||
|
left: 0px !important;
|
||||||
|
top: 0px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-display-none {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-measure-scrollbar {
|
||||||
|
position: absolute;
|
||||||
|
top: -10000px;
|
||||||
|
left: -10000px;
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
overflow: scroll;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Retina-ize icons */
|
||||||
|
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 2dppx) {
|
||||||
|
.select2-search input,
|
||||||
|
.select2-search-choice-close,
|
||||||
|
.select2-container .select2-choice abbr,
|
||||||
|
.select2-container .select2-choice .select2-arrow b {
|
||||||
|
background-image: url('select2x2.png') !important;
|
||||||
|
background-repeat: no-repeat !important;
|
||||||
|
background-size: 60px 40px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select2-search input {
|
||||||
|
background-position: 100% -21px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
36
htdocs/includes/jquery/plugins/select2/select2.jquery.json
Normal file
36
htdocs/includes/jquery/plugins/select2/select2.jquery.json
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"name": "select2",
|
||||||
|
"title": "Select2",
|
||||||
|
"description": "Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.",
|
||||||
|
"keywords": [
|
||||||
|
"select",
|
||||||
|
"autocomplete",
|
||||||
|
"typeahead",
|
||||||
|
"dropdown",
|
||||||
|
"multiselect",
|
||||||
|
"tag",
|
||||||
|
"tagging"
|
||||||
|
],
|
||||||
|
"version": "3.5.2",
|
||||||
|
"author": {
|
||||||
|
"name": "Igor Vaynberg",
|
||||||
|
"url": "https://github.com/ivaynberg"
|
||||||
|
},
|
||||||
|
"licenses": [
|
||||||
|
{
|
||||||
|
"type": "Apache",
|
||||||
|
"url": "http://www.apache.org/licenses/LICENSE-2.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GPL v2",
|
||||||
|
"url": "http://www.gnu.org/licenses/gpl-2.0.html"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"bugs": "https://github.com/ivaynberg/select2/issues",
|
||||||
|
"homepage": "http://ivaynberg.github.com/select2",
|
||||||
|
"docs": "http://ivaynberg.github.com/select2/",
|
||||||
|
"download": "https://github.com/ivaynberg/select2/tags",
|
||||||
|
"dependencies": {
|
||||||
|
"jquery": ">=1.7.1"
|
||||||
|
}
|
||||||
|
}
|
||||||
3541
htdocs/includes/jquery/plugins/select2/select2.js
vendored
Normal file
3541
htdocs/includes/jquery/plugins/select2/select2.js
vendored
Normal file
File diff suppressed because one or more lines are too long
23
htdocs/includes/jquery/plugins/select2/select2.min.js
vendored
Normal file
23
htdocs/includes/jquery/plugins/select2/select2.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
BIN
htdocs/includes/jquery/plugins/select2/select2.png
Normal file
BIN
htdocs/includes/jquery/plugins/select2/select2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 613 B |
19
htdocs/includes/jquery/plugins/select2/select2_locale_ar.js
vendored
Normal file
19
htdocs/includes/jquery/plugins/select2/select2_locale_ar.js
vendored
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
/**
|
||||||
|
* Select2 Arabic translation.
|
||||||
|
*
|
||||||
|
* Author: Adel KEDJOUR <adel@kedjour.com>
|
||||||
|
*/
|
||||||
|
(function ($) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
$.fn.select2.locales['ar'] = {
|
||||||
|
formatNoMatches: function () { return "لم يتم العثور على مطابقات"; },
|
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; if (n == 1){ return "الرجاء إدخال حرف واحد على الأكثر"; } return n == 2 ? "الرجاء إدخال حرفين على الأكثر" : "الرجاء إدخال " + n + " على الأكثر"; },
|
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; if (n == 1){ return "الرجاء إدخال حرف واحد على الأقل"; } return n == 2 ? "الرجاء إدخال حرفين على الأقل" : "الرجاء إدخال " + n + " على الأقل "; },
|
||||||
|
formatSelectionTooBig: function (limit) { if (limit == 1){ return "يمكنك أن تختار إختيار واحد فقط"; } return limit == 2 ? "يمكنك أن تختار إختيارين فقط" : "يمكنك أن تختار " + limit + " إختيارات فقط"; },
|
||||||
|
formatLoadMore: function (pageNumber) { return "تحميل المزيد من النتائج…"; },
|
||||||
|
formatSearching: function () { return "البحث…"; }
|
||||||
|
};
|
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, $.fn.select2.locales['ar']);
|
||||||
|
})(jQuery);
|
||||||
20
htdocs/includes/jquery/plugins/select2/select2_locale_az.js
vendored
Normal file
20
htdocs/includes/jquery/plugins/select2/select2_locale_az.js
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
/**
|
||||||
|
* Select2 Azerbaijani translation.
|
||||||
|
*
|
||||||
|
* Author: Farhad Safarov <farhad.safarov@gmail.com>
|
||||||
|
*/
|
||||||
|
(function ($) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
$.fn.select2.locales['az'] = {
|
||||||
|
formatMatches: function (matches) { return matches + " nəticə mövcuddur, hərəkət etdirmək üçün yuxarı və aşağı düymələrindən istifadə edin."; },
|
||||||
|
formatNoMatches: function () { return "Nəticə tapılmadı"; },
|
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return n + " simvol daxil edin"; },
|
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return n + " simvol silin"; },
|
||||||
|
formatSelectionTooBig: function (limit) { return "Sadəcə " + limit + " element seçə bilərsiniz"; },
|
||||||
|
formatLoadMore: function (pageNumber) { return "Daha çox nəticə yüklənir…"; },
|
||||||
|
formatSearching: function () { return "Axtarılır…"; }
|
||||||
|
};
|
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, $.fn.select2.locales['az']);
|
||||||
|
})(jQuery);
|
||||||
20
htdocs/includes/jquery/plugins/select2/select2_locale_bg.js
vendored
Normal file
20
htdocs/includes/jquery/plugins/select2/select2_locale_bg.js
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
/**
|
||||||
|
* Select2 Bulgarian translation.
|
||||||
|
*
|
||||||
|
* @author Lubomir Vikev <lubomirvikev@gmail.com>
|
||||||
|
* @author Uriy Efremochkin <efremochkin@uriy.me>
|
||||||
|
*/
|
||||||
|
(function ($) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
$.fn.select2.locales['bg'] = {
|
||||||
|
formatNoMatches: function () { return "Няма намерени съвпадения"; },
|
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Моля въведете още " + n + " символ" + (n > 1 ? "а" : ""); },
|
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Моля въведете с " + n + " по-малко символ" + (n > 1 ? "а" : ""); },
|
||||||
|
formatSelectionTooBig: function (limit) { return "Можете да направите до " + limit + (limit > 1 ? " избора" : " избор"); },
|
||||||
|
formatLoadMore: function (pageNumber) { return "Зареждат се още…"; },
|
||||||
|
formatSearching: function () { return "Търсене…"; }
|
||||||
|
};
|
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, $.fn.select2.locales['bg']);
|
||||||
|
})(jQuery);
|
||||||
19
htdocs/includes/jquery/plugins/select2/select2_locale_ca.js
vendored
Normal file
19
htdocs/includes/jquery/plugins/select2/select2_locale_ca.js
vendored
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
/**
|
||||||
|
* Select2 Catalan translation.
|
||||||
|
*
|
||||||
|
* Author: David Planella <david.planella@gmail.com>
|
||||||
|
*/
|
||||||
|
(function ($) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
$.fn.select2.locales['ca'] = {
|
||||||
|
formatNoMatches: function () { return "No s'ha trobat cap coincidència"; },
|
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Introduïu " + n + " caràcter" + (n == 1 ? "" : "s") + " més"; },
|
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Introduïu " + n + " caràcter" + (n == 1? "" : "s") + "menys"; },
|
||||||
|
formatSelectionTooBig: function (limit) { return "Només podeu seleccionar " + limit + " element" + (limit == 1 ? "" : "s"); },
|
||||||
|
formatLoadMore: function (pageNumber) { return "S'estan carregant més resultats…"; },
|
||||||
|
formatSearching: function () { return "S'està cercant…"; }
|
||||||
|
};
|
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, $.fn.select2.locales['ca']);
|
||||||
|
})(jQuery);
|
||||||
51
htdocs/includes/jquery/plugins/select2/select2_locale_cs.js
vendored
Normal file
51
htdocs/includes/jquery/plugins/select2/select2_locale_cs.js
vendored
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
/**
|
||||||
|
* Select2 Czech translation.
|
||||||
|
*
|
||||||
|
* Author: Michal Marek <ahoj@michal-marek.cz>
|
||||||
|
* Author - sklonovani: David Vallner <david@vallner.net>
|
||||||
|
*/
|
||||||
|
(function ($) {
|
||||||
|
"use strict";
|
||||||
|
// use text for the numbers 2 through 4
|
||||||
|
var smallNumbers = {
|
||||||
|
2: function(masc) { return (masc ? "dva" : "dvě"); },
|
||||||
|
3: function() { return "tři"; },
|
||||||
|
4: function() { return "čtyři"; }
|
||||||
|
}
|
||||||
|
$.fn.select2.locales['cs'] = {
|
||||||
|
formatNoMatches: function () { return "Nenalezeny žádné položky"; },
|
||||||
|
formatInputTooShort: function (input, min) {
|
||||||
|
var n = min - input.length;
|
||||||
|
if (n == 1) {
|
||||||
|
return "Prosím zadejte ještě jeden znak";
|
||||||
|
} else if (n <= 4) {
|
||||||
|
return "Prosím zadejte ještě další "+smallNumbers[n](true)+" znaky";
|
||||||
|
} else {
|
||||||
|
return "Prosím zadejte ještě dalších "+n+" znaků";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
formatInputTooLong: function (input, max) {
|
||||||
|
var n = input.length - max;
|
||||||
|
if (n == 1) {
|
||||||
|
return "Prosím zadejte o jeden znak méně";
|
||||||
|
} else if (n <= 4) {
|
||||||
|
return "Prosím zadejte o "+smallNumbers[n](true)+" znaky méně";
|
||||||
|
} else {
|
||||||
|
return "Prosím zadejte o "+n+" znaků méně";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
formatSelectionTooBig: function (limit) {
|
||||||
|
if (limit == 1) {
|
||||||
|
return "Můžete zvolit jen jednu položku";
|
||||||
|
} else if (limit <= 4) {
|
||||||
|
return "Můžete zvolit maximálně "+smallNumbers[limit](false)+" položky";
|
||||||
|
} else {
|
||||||
|
return "Můžete zvolit maximálně "+limit+" položek";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
formatLoadMore: function (pageNumber) { return "Načítají se další výsledky…"; },
|
||||||
|
formatSearching: function () { return "Vyhledávání…"; }
|
||||||
|
};
|
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, $.fn.select2.locales['cs']);
|
||||||
|
})(jQuery);
|
||||||
19
htdocs/includes/jquery/plugins/select2/select2_locale_da.js
vendored
Normal file
19
htdocs/includes/jquery/plugins/select2/select2_locale_da.js
vendored
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
/**
|
||||||
|
* Select2 Danish translation.
|
||||||
|
*
|
||||||
|
* Author: Anders Jenbo <anders@jenbo.dk>
|
||||||
|
*/
|
||||||
|
(function ($) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
$.fn.select2.locales['da'] = {
|
||||||
|
formatNoMatches: function () { return "Ingen resultater fundet"; },
|
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Angiv venligst " + n + " tegn mere"; },
|
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Angiv venligst " + n + " tegn mindre"; },
|
||||||
|
formatSelectionTooBig: function (limit) { return "Du kan kun vælge " + limit + " emne" + (limit === 1 ? "" : "r"); },
|
||||||
|
formatLoadMore: function (pageNumber) { return "Indlæser flere resultater…"; },
|
||||||
|
formatSearching: function () { return "Søger…"; }
|
||||||
|
};
|
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, $.fn.select2.locales['da']);
|
||||||
|
})(jQuery);
|
||||||
18
htdocs/includes/jquery/plugins/select2/select2_locale_de.js
vendored
Normal file
18
htdocs/includes/jquery/plugins/select2/select2_locale_de.js
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
/**
|
||||||
|
* Select2 German translation
|
||||||
|
*/
|
||||||
|
(function ($) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
$.fn.select2.locales['de'] = {
|
||||||
|
formatNoMatches: function () { return "Keine Übereinstimmungen gefunden"; },
|
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Bitte " + n + " Zeichen mehr eingeben"; },
|
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Bitte " + n + " Zeichen weniger eingeben"; },
|
||||||
|
formatSelectionTooBig: function (limit) { return "Sie können nur " + limit + " Eintr" + (limit === 1 ? "ag" : "äge") + " auswählen"; },
|
||||||
|
formatLoadMore: function (pageNumber) { return "Lade mehr Ergebnisse…"; },
|
||||||
|
formatSearching: function () { return "Suche…"; },
|
||||||
|
formatMatches: function (matches) { return matches + " Ergebnis " + (matches > 1 ? "se" : "") + " verfügbar, zum Navigieren die Hoch-/Runter-Pfeiltasten verwenden."; }
|
||||||
|
};
|
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, $.fn.select2.locales['de']);
|
||||||
|
})(jQuery);
|
||||||
19
htdocs/includes/jquery/plugins/select2/select2_locale_el.js
vendored
Normal file
19
htdocs/includes/jquery/plugins/select2/select2_locale_el.js
vendored
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
/**
|
||||||
|
* Select2 Greek translation.
|
||||||
|
*
|
||||||
|
* @author Uriy Efremochkin <efremochkin@uriy.me>
|
||||||
|
*/
|
||||||
|
(function ($) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
$.fn.select2.locales['el'] = {
|
||||||
|
formatNoMatches: function () { return "Δεν βρέθηκαν αποτελέσματα"; },
|
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Παρακαλούμε εισάγετε " + n + " περισσότερο" + (n > 1 ? "υς" : "") + " χαρακτήρ" + (n > 1 ? "ες" : "α"); },
|
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Παρακαλούμε διαγράψτε " + n + " χαρακτήρ" + (n > 1 ? "ες" : "α"); },
|
||||||
|
formatSelectionTooBig: function (limit) { return "Μπορείτε να επιλέξετε μόνο " + limit + " αντικείμεν" + (limit > 1 ? "α" : "ο"); },
|
||||||
|
formatLoadMore: function (pageNumber) { return "Φόρτωση περισσότερων…"; },
|
||||||
|
formatSearching: function () { return "Αναζήτηση…"; }
|
||||||
|
};
|
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, $.fn.select2.locales['el']);
|
||||||
|
})(jQuery);
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
/**
|
||||||
|
* Select2 <Language> translation.
|
||||||
|
*
|
||||||
|
* Author: Your Name <your@email>
|
||||||
|
*/
|
||||||
|
(function ($) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
$.fn.select2.locales['en'] = {
|
||||||
|
formatMatches: function (matches) { if (matches === 1) { return "One result is available, press enter to select it."; } return matches + " results are available, use up and down arrow keys to navigate."; },
|
||||||
|
formatNoMatches: function () { return "No matches found"; },
|
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Please enter " + n + " or more character" + (n == 1 ? "" : "s"); },
|
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Please delete " + n + " character" + (n == 1 ? "" : "s"); },
|
||||||
|
formatSelectionTooBig: function (limit) { return "You can only select " + limit + " item" + (limit == 1 ? "" : "s"); },
|
||||||
|
formatLoadMore: function (pageNumber) { return "Loading more results…"; },
|
||||||
|
formatSearching: function () { return "Searching…"; }
|
||||||
|
};
|
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, $.fn.select2.locales['en']);
|
||||||
|
})(jQuery);
|
||||||
19
htdocs/includes/jquery/plugins/select2/select2_locale_es.js
vendored
Normal file
19
htdocs/includes/jquery/plugins/select2/select2_locale_es.js
vendored
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
/**
|
||||||
|
* Select2 Spanish translation
|
||||||
|
*/
|
||||||
|
(function ($) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
$.fn.select2.locales['es'] = {
|
||||||
|
formatMatches: function (matches) { if (matches === 1) { return "Un resultado disponible, presione enter para seleccionarlo."; } return matches + " resultados disponibles, use las teclas de dirección para navegar."; },
|
||||||
|
formatNoMatches: function () { return "No se encontraron resultados"; },
|
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Por favor, introduzca " + n + " car" + (n == 1? "ácter" : "acteres"); },
|
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Por favor, elimine " + n + " car" + (n == 1? "ácter" : "acteres"); },
|
||||||
|
formatSelectionTooBig: function (limit) { return "Sólo puede seleccionar " + limit + " elemento" + (limit == 1 ? "" : "s"); },
|
||||||
|
formatLoadMore: function (pageNumber) { return "Cargando más resultados…"; },
|
||||||
|
formatSearching: function () { return "Buscando…"; },
|
||||||
|
formatAjaxError: function() { return "La carga falló"; }
|
||||||
|
};
|
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, $.fn.select2.locales['es']);
|
||||||
|
})(jQuery);
|
||||||
19
htdocs/includes/jquery/plugins/select2/select2_locale_et.js
vendored
Normal file
19
htdocs/includes/jquery/plugins/select2/select2_locale_et.js
vendored
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
/**
|
||||||
|
* Select2 Estonian translation.
|
||||||
|
*
|
||||||
|
* Author: Kuldar Kalvik <kuldar@kalvik.ee>
|
||||||
|
*/
|
||||||
|
(function ($) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
$.fn.select2.locales['et'] = {
|
||||||
|
formatNoMatches: function () { return "Tulemused puuduvad"; },
|
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Sisesta " + n + " täht" + (n == 1 ? "" : "e") + " rohkem"; },
|
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Sisesta " + n + " täht" + (n == 1? "" : "e") + " vähem"; },
|
||||||
|
formatSelectionTooBig: function (limit) { return "Saad vaid " + limit + " tulemus" + (limit == 1 ? "e" : "t") + " valida"; },
|
||||||
|
formatLoadMore: function (pageNumber) { return "Laen tulemusi.."; },
|
||||||
|
formatSearching: function () { return "Otsin.."; }
|
||||||
|
};
|
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, $.fn.select2.locales['et']);
|
||||||
|
})(jQuery);
|
||||||
45
htdocs/includes/jquery/plugins/select2/select2_locale_eu.js
vendored
Normal file
45
htdocs/includes/jquery/plugins/select2/select2_locale_eu.js
vendored
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
/**
|
||||||
|
* Select2 Basque translation.
|
||||||
|
*
|
||||||
|
* Author: Julen Ruiz Aizpuru <julenx at gmail dot com>
|
||||||
|
*/
|
||||||
|
(function ($) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
$.fn.select2.locales['eu'] = {
|
||||||
|
formatNoMatches: function () {
|
||||||
|
return "Ez da bat datorrenik aurkitu";
|
||||||
|
},
|
||||||
|
formatInputTooShort: function (input, min) {
|
||||||
|
var n = min - input.length;
|
||||||
|
if (n === 1) {
|
||||||
|
return "Idatzi karaktere bat gehiago";
|
||||||
|
} else {
|
||||||
|
return "Idatzi " + n + " karaktere gehiago";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
formatInputTooLong: function (input, max) {
|
||||||
|
var n = input.length - max;
|
||||||
|
if (n === 1) {
|
||||||
|
return "Idatzi karaktere bat gutxiago";
|
||||||
|
} else {
|
||||||
|
return "Idatzi " + n + " karaktere gutxiago";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
formatSelectionTooBig: function (limit) {
|
||||||
|
if (limit === 1 ) {
|
||||||
|
return "Elementu bakarra hauta dezakezu";
|
||||||
|
} else {
|
||||||
|
return limit + " elementu hauta ditzakezu soilik";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
formatLoadMore: function (pageNumber) {
|
||||||
|
return "Emaitza gehiago kargatzen…";
|
||||||
|
},
|
||||||
|
formatSearching: function () {
|
||||||
|
return "Bilatzen…";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, $.fn.select2.locales['eu']);
|
||||||
|
})(jQuery);
|
||||||
21
htdocs/includes/jquery/plugins/select2/select2_locale_fa.js
vendored
Normal file
21
htdocs/includes/jquery/plugins/select2/select2_locale_fa.js
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
/**
|
||||||
|
* Select2 Persian translation.
|
||||||
|
*
|
||||||
|
* Author: Ali Choopan <choopan@arsh.co>
|
||||||
|
* Author: Ebrahim Byagowi <ebrahim@gnu.org>
|
||||||
|
*/
|
||||||
|
(function ($) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
$.fn.select2.locales['fa'] = {
|
||||||
|
formatMatches: function (matches) { return matches + " نتیجه موجود است، کلیدهای جهت بالا و پایین را برای گشتن استفاده کنید."; },
|
||||||
|
formatNoMatches: function () { return "نتیجهای یافت نشد."; },
|
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "لطفاً " + n + " نویسه بیشتر وارد نمایید"; },
|
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "لطفاً " + n + " نویسه را حذف کنید."; },
|
||||||
|
formatSelectionTooBig: function (limit) { return "شما فقط میتوانید " + limit + " مورد را انتخاب کنید"; },
|
||||||
|
formatLoadMore: function (pageNumber) { return "در حال بارگیری موارد بیشتر…"; },
|
||||||
|
formatSearching: function () { return "در حال جستجو…"; }
|
||||||
|
};
|
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, $.fn.select2.locales['fa']);
|
||||||
|
})(jQuery);
|
||||||
30
htdocs/includes/jquery/plugins/select2/select2_locale_fi.js
vendored
Normal file
30
htdocs/includes/jquery/plugins/select2/select2_locale_fi.js
vendored
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
/**
|
||||||
|
* Select2 Finnish translation
|
||||||
|
*/
|
||||||
|
(function ($) {
|
||||||
|
"use strict";
|
||||||
|
$.fn.select2.locales['fi'] = {
|
||||||
|
formatNoMatches: function () {
|
||||||
|
return "Ei tuloksia";
|
||||||
|
},
|
||||||
|
formatInputTooShort: function (input, min) {
|
||||||
|
var n = min - input.length;
|
||||||
|
return "Ole hyvä ja anna " + n + " merkkiä lisää";
|
||||||
|
},
|
||||||
|
formatInputTooLong: function (input, max) {
|
||||||
|
var n = input.length - max;
|
||||||
|
return "Ole hyvä ja anna " + n + " merkkiä vähemmän";
|
||||||
|
},
|
||||||
|
formatSelectionTooBig: function (limit) {
|
||||||
|
return "Voit valita ainoastaan " + limit + " kpl";
|
||||||
|
},
|
||||||
|
formatLoadMore: function (pageNumber) {
|
||||||
|
return "Ladataan lisää tuloksia…";
|
||||||
|
},
|
||||||
|
formatSearching: function () {
|
||||||
|
return "Etsitään…";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, $.fn.select2.locales['fi']);
|
||||||
|
})(jQuery);
|
||||||
18
htdocs/includes/jquery/plugins/select2/select2_locale_fr.js
vendored
Normal file
18
htdocs/includes/jquery/plugins/select2/select2_locale_fr.js
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
/**
|
||||||
|
* Select2 French translation
|
||||||
|
*/
|
||||||
|
(function ($) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
$.fn.select2.locales['fr'] = {
|
||||||
|
formatMatches: function (matches) { return matches + " résultats sont disponibles, utilisez les flèches haut et bas pour naviguer."; },
|
||||||
|
formatNoMatches: function () { return "Aucun résultat trouvé"; },
|
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Saisissez " + n + " caractère" + (n == 1? "" : "s") + " supplémentaire" + (n == 1? "" : "s") ; },
|
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Supprimez " + n + " caractère" + (n == 1? "" : "s"); },
|
||||||
|
formatSelectionTooBig: function (limit) { return "Vous pouvez seulement sélectionner " + limit + " élément" + (limit == 1 ? "" : "s"); },
|
||||||
|
formatLoadMore: function (pageNumber) { return "Chargement de résultats supplémentaires…"; },
|
||||||
|
formatSearching: function () { return "Recherche en cours…"; }
|
||||||
|
};
|
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, $.fn.select2.locales['fr']);
|
||||||
|
})(jQuery);
|
||||||
45
htdocs/includes/jquery/plugins/select2/select2_locale_gl.js
vendored
Normal file
45
htdocs/includes/jquery/plugins/select2/select2_locale_gl.js
vendored
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
/**
|
||||||
|
* Select2 Galician translation
|
||||||
|
*
|
||||||
|
* Author: Leandro Regueiro <leandro.regueiro@gmail.com>
|
||||||
|
*/
|
||||||
|
(function ($) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
$.fn.select2.locales['gl'] = {
|
||||||
|
formatNoMatches: function () {
|
||||||
|
return "Non se atoparon resultados";
|
||||||
|
},
|
||||||
|
formatInputTooShort: function (input, min) {
|
||||||
|
var n = min - input.length;
|
||||||
|
if (n === 1) {
|
||||||
|
return "Engada un carácter";
|
||||||
|
} else {
|
||||||
|
return "Engada " + n + " caracteres";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
formatInputTooLong: function (input, max) {
|
||||||
|
var n = input.length - max;
|
||||||
|
if (n === 1) {
|
||||||
|
return "Elimine un carácter";
|
||||||
|
} else {
|
||||||
|
return "Elimine " + n + " caracteres";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
formatSelectionTooBig: function (limit) {
|
||||||
|
if (limit === 1 ) {
|
||||||
|
return "Só pode seleccionar un elemento";
|
||||||
|
} else {
|
||||||
|
return "Só pode seleccionar " + limit + " elementos";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
formatLoadMore: function (pageNumber) {
|
||||||
|
return "Cargando máis resultados…";
|
||||||
|
},
|
||||||
|
formatSearching: function () {
|
||||||
|
return "Buscando…";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, $.fn.select2.locales['gl']);
|
||||||
|
})(jQuery);
|
||||||
19
htdocs/includes/jquery/plugins/select2/select2_locale_he.js
vendored
Normal file
19
htdocs/includes/jquery/plugins/select2/select2_locale_he.js
vendored
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
/**
|
||||||
|
* Select2 Hebrew translation.
|
||||||
|
*
|
||||||
|
* Author: Yakir Sitbon <http://www.yakirs.net/>
|
||||||
|
*/
|
||||||
|
(function ($) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
$.fn.select2.locales['he'] = {
|
||||||
|
formatNoMatches: function () { return "לא נמצאו התאמות"; },
|
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "נא להזין עוד " + n + " תווים נוספים"; },
|
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "נא להזין פחות " + n + " תווים"; },
|
||||||
|
formatSelectionTooBig: function (limit) { return "ניתן לבחור " + limit + " פריטים"; },
|
||||||
|
formatLoadMore: function (pageNumber) { return "טוען תוצאות נוספות…"; },
|
||||||
|
formatSearching: function () { return "מחפש…"; }
|
||||||
|
};
|
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, $.fn.select2.locales['he']);
|
||||||
|
})(jQuery);
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user