commit
edca938fe0
@ -0,0 +1,84 @@ |
||||
<?php /* For licensing terms, see /license.txt */ |
||||
// External login module : WS (for Web Services) |
||||
/** |
||||
* |
||||
* This file is included in main/inc/local.inc.php at user login if the user |
||||
* have 'ws' in his auth_source field instead of 'platform' |
||||
* |
||||
* Variables that can be used : |
||||
* - $uData : associative array with those keys : |
||||
* -username |
||||
* -password |
||||
* -auth_source |
||||
* -active |
||||
* -expiration_date |
||||
* |
||||
* If login succeeds, we have 2 choices : |
||||
* 1. - set $loginFailed to false, |
||||
* - set $_SESSION['_user']['user_id'] with the Chamilo user_id |
||||
* - set $uidReset to true |
||||
* - upgrade user info in Chamilo database if needed |
||||
* - let the script local.inc.php continue |
||||
* |
||||
* 2. - set $_SESSION['_user']['user_id'] with the Chamilo user_id |
||||
* - set $_SESSION['_user']['uidReset'] to true |
||||
* - upgrade user info in Chamilo database if needed |
||||
* - redirect to any page and let local.inc.php do the magic |
||||
* |
||||
* If login fails we have to redirect to index.php with the right message |
||||
* Possible messages are : |
||||
* - index.php?loginFailed=1&error=access_url_inactive |
||||
* - index.php?loginFailed=1&error=account_expired |
||||
* - index.php?loginFailed=1&error=account_inactive |
||||
* - index.php?loginFailed=1&error=user_password_incorrect |
||||
* - index.php?loginFailed=1&error=unrecognize_sso_origin'); |
||||
* |
||||
* */ |
||||
|
||||
use \ChamiloSession as Session; |
||||
|
||||
// Configure the web service URL here. e.g. http://190.1.1.19:8051/login.asmx?WSDL |
||||
$wsUrl = ''; |
||||
|
||||
require_once dirname(__FILE__) . '/functions.inc.php'; |
||||
//error_log('Entering login.ws.php'); |
||||
$isValid = loginWSAuthenticate($login, $password, $wsUrl); |
||||
if ($isValid !== 0) { |
||||
//error_log('ws_authenticate worked'); |
||||
$chamiloUser = UserManager::get_user_info($login); |
||||
|
||||
$loginFailed = false; |
||||
$_user['user_id'] = $chamiloUser['user_id']; |
||||
$_user['status'] = (isset($chamiloUser['status']) ? $chamiloUser['status'] : 5); |
||||
$_user['uidReset'] = true; |
||||
Session::write('_user', $_user); |
||||
$uidReset = true; |
||||
$logging_in = true; |
||||
event_login(); |
||||
//error_log('Calling event_login'); |
||||
} else { |
||||
//error_log('ws_authenticate error'); |
||||
$loginFailed = true; |
||||
$uidReset = false; |
||||
if (isset($_user) && isset($_user['user_id'])) { |
||||
unset($_user['user_id']); |
||||
} |
||||
} |
||||
|
||||
/** |
||||
* Checks whether a user has the right to enter on the platform or not |
||||
* @param $username |
||||
* @param $password |
||||
*/ |
||||
function loginWSAuthenticate($username, $password, $wsUrl) { |
||||
if (empty($username) or empty($password) or empty($wsUrl)) { |
||||
return false; |
||||
} |
||||
$client = new SoapClient($wsUrl); |
||||
if (!$client) { |
||||
return false; |
||||
} |
||||
$something = $client->validaUsuarioAD(array($username, $password, 'chamilo')); |
||||
error_log(print_r($something,1)); |
||||
return $something->validaUsuarioADResult; |
||||
} |
||||
@ -0,0 +1,101 @@ |
||||
<?php |
||||
/* For licensing terms, see /license.txt */ |
||||
/** |
||||
* Code for Aiken import integration. |
||||
* @package chamilo.exercise |
||||
* @author Ronny Velasquez |
||||
* @author César Perales <cesar.perales@gmail.com> Updated function names and import files for Aiken format support |
||||
* @version $Id: Aiken.php 2010-03-12 12:14:25Z $ |
||||
*/ |
||||
/** |
||||
* Code |
||||
*/ |
||||
// name of the language file that needs to be included |
||||
$language_file = 'exercice'; |
||||
|
||||
// including the global Chamilo file |
||||
require_once '../inc/global.inc.php'; |
||||
require_once api_get_path(LIBRARY_PATH).'document.lib.php'; |
||||
|
||||
// including additional libraries |
||||
require_once 'exercise.class.php'; |
||||
require_once 'question.class.php'; |
||||
require_once 'answer.class.php'; |
||||
require_once 'unique_answer.class.php'; |
||||
|
||||
|
||||
// section (for the tabs) |
||||
$this_section = SECTION_COURSES; |
||||
|
||||
// access restriction: only teachers are allowed here |
||||
if (!api_is_allowed_to_edit(null, true)) { |
||||
api_not_allowed(); |
||||
} |
||||
|
||||
// the breadcrumbs |
||||
$interbreadcrumb[]= array ("url"=>"exercice.php", "name"=> get_lang('Exercices')); |
||||
$is_allowedToEdit = api_is_allowed_to_edit(null, true); |
||||
|
||||
/** |
||||
* This function displays the form for import of the zip file with qti2 |
||||
*/ |
||||
function aiken_display_form() { |
||||
$name_tools = get_lang('ImportAikenQuiz'); |
||||
$form = '<div class="actions">'; |
||||
$form .= '<a href="exercice.php?show=test">' . Display :: return_icon('back.png', get_lang('BackToExercisesList'),'',ICON_SIZE_MEDIUM).'</a>'; |
||||
$form .= '</div>'; |
||||
$form_validator = new FormValidator('aiken_upload', 'post',api_get_self()."?".api_get_cidreq(), null, array('enctype' => 'multipart/form-data') ); |
||||
$form_validator->addElement('header', $name_tools); |
||||
$form_validator->addElement('file', 'userFile', get_lang('DownloadFile')); |
||||
$form_validator->addElement('style_submit_button', 'submit', get_lang('Send'), 'class="upload"'); |
||||
$form .= $form_validator->return_form(); |
||||
|
||||
echo $form; |
||||
} |
||||
|
||||
/** |
||||
* This function will import the zip file with the respective qti2 |
||||
* @param array $uploaded_file ($_FILES) |
||||
*/ |
||||
function aiken_import_file($array_file) { |
||||
|
||||
$unzip = 0; |
||||
$lib_path = api_get_path(LIBRARY_PATH); |
||||
require_once $lib_path.'fileUpload.lib.php'; |
||||
require_once $lib_path.'fileManage.lib.php'; |
||||
$process = process_uploaded_file($array_file); |
||||
if (preg_match('/\.zip$/i', $array_file['name'])) { |
||||
// if it's a zip, allow zip upload |
||||
$unzip = 1; |
||||
} |
||||
|
||||
if ($process && $unzip == 1) { |
||||
$main_path = api_get_path(SYS_CODE_PATH); |
||||
require_once $main_path.'exercice/export/aiken/aiken_import.inc.php'; |
||||
require_once $main_path.'exercice/export/aiken/aiken_classes.php'; |
||||
$imported = import_exercise($array_file['name']); |
||||
|
||||
if ($imported) { |
||||
header('Location: exercice.php?'.api_get_cidreq()); |
||||
} else { |
||||
Display::display_error_message(get_lang('UplNoFileUploaded')); |
||||
return false; |
||||
} |
||||
} |
||||
} |
||||
|
||||
// display header |
||||
Display::display_header(get_lang('ImportAikenQuiz'), 'Exercises'); |
||||
|
||||
// import file |
||||
if ((api_is_allowed_to_edit(null, true))) { |
||||
if (isset($_POST['submit'])) { |
||||
aiken_import_file($_FILES['userFile']); |
||||
} |
||||
} |
||||
|
||||
// display Aiken form |
||||
aiken_display_form(); |
||||
|
||||
// display the footer |
||||
Display::display_footer(); |
||||
@ -0,0 +1,142 @@ |
||||
<?php // $Id: $
|
||||
/* For licensing terms, see /license.txt */ |
||||
/** |
||||
* @author Claro Team <cvs@claroline.net> |
||||
* @author Yannick Warnier <yannick.warnier@beeznest.com> - updated ImsAnswerHotspot to match QTI norms |
||||
* @author César Perales <cesar.perales@gmail.com> Updated function names and import files for Aiken format support |
||||
* @package chamilo.exercise |
||||
*/ |
||||
/** |
||||
* Code |
||||
*/ |
||||
if ( count( get_included_files() ) == 1 ) die( '---' ); |
||||
|
||||
if (!function_exists('mime_content_type')) { |
||||
require_once api_get_path(LIBRARY_PATH).'document.lib.php'; |
||||
function mime_content_type($filename) { |
||||
return DocumentManager::file_get_mime_type((string)$filename); |
||||
} |
||||
} |
||||
|
||||
require_once(api_get_path(SYS_CODE_PATH).'/exercice/answer.class.php'); |
||||
require_once(api_get_path(SYS_CODE_PATH).'/exercice/exercise.class.php'); |
||||
require_once(api_get_path(SYS_CODE_PATH).'/exercice/question.class.php'); |
||||
//require_once(api_get_path(SYS_CODE_PATH).'/exercice/hotspot.class.php'); |
||||
require_once(api_get_path(SYS_CODE_PATH).'/exercice/unique_answer.class.php'); |
||||
//require_once(api_get_path(SYS_CODE_PATH).'/exercice/multiple_answer.class.php'); |
||||
//require_once(api_get_path(SYS_CODE_PATH).'/exercice/multiple_answer_combination.class.php'); |
||||
//require_once(api_get_path(SYS_CODE_PATH).'/exercice/matching.class.php'); |
||||
//require_once(api_get_path(SYS_CODE_PATH).'/exercice/freeanswer.class.php'); |
||||
//require_once(api_get_path(SYS_CODE_PATH).'/exercice/fill_blanks.class.php'); |
||||
//include_once $path . '/../../lib/answer_multiplechoice.class.php'; |
||||
//include_once $path . '/../../lib/answer_truefalse.class.php'; |
||||
//include_once $path . '/../../lib/answer_fib.class.php'; |
||||
//include_once $path . '/../../lib/answer_matching.class.php'; |
||||
/** |
||||
* |
||||
* @package chamilo.exercise |
||||
*/ |
||||
class Aiken2Question extends Question |
||||
{ |
||||
/** |
||||
* Include the correct answer class and create answer |
||||
*/ |
||||
function setAnswer() |
||||
{ |
||||
switch($this->type) |
||||
{ |
||||
case MCUA : |
||||
$answer = new AikenAnswerMultipleChoice($this->id); |
||||
return $answer; |
||||
default : |
||||
$answer = null; |
||||
break; |
||||
} |
||||
return $answer; |
||||
} |
||||
function createAnswersForm($form) |
||||
{ |
||||
return true; |
||||
} |
||||
function processAnswersCreation($form) |
||||
{ |
||||
return true; |
||||
} |
||||
} |
||||
|
||||
|
||||
/** |
||||
* Class |
||||
* @package chamilo.exercise |
||||
*/ |
||||
class AikenAnswerMultipleChoice extends Answer |
||||
{ |
||||
/** |
||||
* Return the XML flow for the possible answers. |
||||
* |
||||
*/ |
||||
function imsExportResponses($questionIdent, $questionStatment) |
||||
{ |
||||
$this->answerList = $this->getAnswersList(true); |
||||
$out = ' <choiceInteraction responseIdentifier="' . $questionIdent . '" >' . "\n"; |
||||
$out .= ' <prompt> ' . $questionStatment . ' </prompt>'. "\n"; |
||||
if (is_array($this->answerList)) { |
||||
foreach ($this->answerList as $current_answer) { |
||||
|
||||
|
||||
$out .= ' <simpleChoice identifier="answer_' . $current_answer['id'] . '" fixed="false">' . $current_answer['answer']; |
||||
if (isset($current_answer['comment']) && $current_answer['comment'] != '') |
||||
{ |
||||
$out .= '<feedbackInline identifier="answer_' . $current_answer['id'] . '">' . $current_answer['comment'] . '</feedbackInline>'; |
||||
} |
||||
$out .= '</simpleChoice>'. "\n"; |
||||
} |
||||
} |
||||
$out .= ' </choiceInteraction>'. "\n"; |
||||
return $out; |
||||
} |
||||
|
||||
/** |
||||
* Return the XML flow of answer ResponsesDeclaration |
||||
* |
||||
*/ |
||||
function imsExportResponsesDeclaration($questionIdent) |
||||
{ |
||||
$this->answerList = $this->getAnswersList(true); |
||||
$type = $this->getQuestionType(); |
||||
if ($type == MCMA) $cardinality = 'multiple'; else $cardinality = 'single'; |
||||
|
||||
$out = ' <responseDeclaration identifier="' . $questionIdent . '" cardinality="' . $cardinality . '" baseType="identifier">' . "\n"; |
||||
|
||||
//Match the correct answers |
||||
|
||||
$out .= ' <correctResponse>'. "\n"; |
||||
if (is_array($this->answerList)) { |
||||
foreach($this->answerList as $current_answer) { |
||||
if ($current_answer['correct']) |
||||
{ |
||||
$out .= ' <value>answer_'. $current_answer['id'] .'</value>'. "\n"; |
||||
} |
||||
} |
||||
} |
||||
$out .= ' </correctResponse>'. "\n"; |
||||
|
||||
//Add the grading |
||||
|
||||
$out .= ' <mapping>'. "\n"; |
||||
if (is_array($this->answerList)) { |
||||
foreach($this->answerList as $current_answer) |
||||
{ |
||||
if (isset($current_answer['grade'])) |
||||
{ |
||||
$out .= ' <mapEntry mapKey="answer_'. $current_answer['id'] .'" mappedValue="'.$current_answer['grade'].'" />'. "\n"; |
||||
} |
||||
} |
||||
} |
||||
$out .= ' </mapping>'. "\n"; |
||||
|
||||
$out .= ' </responseDeclaration>'. "\n"; |
||||
|
||||
return $out; |
||||
} |
||||
} |
||||
@ -0,0 +1,224 @@ |
||||
<?php |
||||
/** |
||||
* @copyright (c) 2001-2006 Universite catholique de Louvain (UCL) |
||||
* |
||||
* @license http://www.gnu.org/copyleft/gpl.html (GPL) GENERAL PUBLIC LICENSE |
||||
* |
||||
* @package chamilo.exercise |
||||
* |
||||
* @author claro team <cvs@claroline.net> |
||||
* @author Guillaume Lederer <guillaume@claroline.net> |
||||
* @author César Perales <cesar.perales@gmail.com> Parse function for Aiken format |
||||
*/ |
||||
/** |
||||
* Security check |
||||
*/ |
||||
if (count(get_included_files()) == 1) |
||||
die('---'); |
||||
|
||||
/** |
||||
* function to create a temporary directory (SAME AS IN MODULE ADMIN) |
||||
*/ |
||||
|
||||
function tempdir($dir, $prefix = 'tmp', $mode = 0777) { |
||||
if (substr($dir, -1) != '/') |
||||
$dir .= '/'; |
||||
|
||||
do { |
||||
$path = $dir . $prefix . mt_rand(0, 9999999); |
||||
} while (!mkdir($path, $mode)); |
||||
|
||||
return $path; |
||||
} |
||||
|
||||
/** |
||||
* @return the path of the temporary directory where the exercise was uploaded and unzipped |
||||
*/ |
||||
|
||||
function get_and_unzip_uploaded_exercise($baseWorkDir, $uploadPath) { |
||||
global $_course, $_user; |
||||
//Check if the file is valid (not to big and exists) |
||||
if (!isset ($_FILES['userFile']) || !is_uploaded_file($_FILES['userFile']['tmp_name'])) { |
||||
// upload failed |
||||
return false; |
||||
} |
||||
if (preg_match('/.zip$/i', $_FILES['userFile']['name']) && handle_uploaded_document($_course, $_FILES['userFile'], $baseWorkDir, $uploadPath, $_user['user_id'], 0, null, 1)) { |
||||
if (!function_exists('gzopen')) { |
||||
//claro_delete_file($uploadPath); |
||||
return false; |
||||
} |
||||
// upload successfull |
||||
return true; |
||||
} else { |
||||
//claro_delete_file($uploadPath); |
||||
return false; |
||||
} |
||||
} |
||||
/** |
||||
* main function to import an exercise, |
||||
* |
||||
* @return an array as a backlog of what was really imported, and error or debug messages to display |
||||
*/ |
||||
|
||||
function import_exercise($file) { |
||||
global $exercise_info; |
||||
global $element_pile; |
||||
global $non_HTML_tag_to_avoid; |
||||
global $record_item_body; |
||||
// used to specify the question directory where files could be found in relation in any question |
||||
global $questionTempDir; |
||||
|
||||
$archive_path = api_get_path(SYS_ARCHIVE_PATH) . 'aiken'; |
||||
$baseWorkDir = $archive_path; |
||||
|
||||
if (!is_dir($baseWorkDir)) { |
||||
mkdir($baseWorkDir, api_get_permissions_for_new_directories(), true); |
||||
} |
||||
|
||||
$uploadPath = '/'; |
||||
|
||||
// set some default values for the new exercise |
||||
$exercise_info = array (); |
||||
$exercise_info['name'] = preg_replace('/.zip$/i', '', $file); |
||||
$exercise_info['question'] = array(); |
||||
$element_pile = array (); |
||||
|
||||
// create parser and array to retrieve info from manifest |
||||
$element_pile = array (); //pile to known the depth in which we are |
||||
//$module_info = array (); //array to store the info we need |
||||
|
||||
// if file is not a .zip, then we cancel all |
||||
if (!preg_match('/.zip$/i', $file)) { |
||||
Display :: display_error_message(get_lang('You must upload a zip file')); |
||||
return false; |
||||
} |
||||
|
||||
// unzip the uploaded file in a tmp directory |
||||
if (!get_and_unzip_uploaded_exercise($baseWorkDir, $uploadPath)) { |
||||
Display :: display_error_message(get_lang('You must upload a zip file')); |
||||
return false; |
||||
} |
||||
|
||||
// find the different manifests for each question and parse them. |
||||
$exerciseHandle = opendir($baseWorkDir); |
||||
//$question_number = 0; |
||||
$file_found = false; |
||||
$operation = false; |
||||
$result = false; |
||||
// parse every subdirectory to search txt question files |
||||
while (false !== ($file = readdir($exerciseHandle))) { |
||||
if (is_dir($baseWorkDir . '/' . $file) && $file != "." && $file != "..") { |
||||
//find each manifest for each question repository found |
||||
$questionHandle = opendir($baseWorkDir . '/' . $file); |
||||
while (false !== ($questionFile = readdir($questionHandle))) { |
||||
if (preg_match('/.txt$/i', $questionFile)) { |
||||
$result = parse_file($baseWorkDir, $file, $questionFile); |
||||
$file_found = true; |
||||
} |
||||
} |
||||
} elseif (preg_match('/.txt$/i', $file)) { |
||||
$result = parse_file($baseWorkDir, '', $file); |
||||
$file_found = true; |
||||
} // else ignore file |
||||
} |
||||
if (!$file_found) { |
||||
Display :: display_error_message(get_lang('No TXT file found in the zip')); |
||||
return false; |
||||
} |
||||
if ($result == false ) { |
||||
return false; |
||||
} |
||||
|
||||
//add exercise in tool |
||||
|
||||
//1.create exercise |
||||
$exercise = new Exercise(); |
||||
$exercise->exercise = $exercise_info['name']; |
||||
|
||||
$exercise->save(); |
||||
$last_exercise_id = $exercise->selectId(); |
||||
if (!empty($last_exercise_id)) { |
||||
//For each question found... |
||||
foreach ($exercise_info['question'] as $key => $question_array) { |
||||
//2.create question |
||||
$question = new Aiken2Question(); |
||||
$question->type = $question_array['type']; |
||||
$question->setAnswer(); |
||||
$question->updateTitle($question_array['title']); // question ... |
||||
$type = $question->selectType(); |
||||
$question->type = constant($type); // type ... |
||||
$question->save($last_exercise_id); // save computed grade |
||||
$last_question_id = $question->selectId(); |
||||
//3.create answer |
||||
$answer = new Answer($last_question_id); |
||||
$answer->new_nbrAnswers = count($question_array['answer']); |
||||
foreach ($question_array['answer'] as $key => $answers) { |
||||
$key++; |
||||
$answer->new_answer[$key] = $answers['value']; // answer ... |
||||
$answer->new_comment[$key] = $answers['feedback']; // comment ... |
||||
$answer->new_position[$key] = $key; // position ... |
||||
// correct answers ... |
||||
if (in_array($key, $question_array['correct_answers'])) { |
||||
$answer->new_correct[$key] = 1; |
||||
} else { |
||||
$answer->new_correct[$key] = 0; |
||||
} |
||||
error_log($question_array['weighting']); |
||||
$answer->new_weighting[$key] = $question_array['weighting'][$key - 1]; |
||||
} |
||||
$answer->save(); |
||||
} |
||||
// delete the temp dir where the exercise was unzipped |
||||
my_delete($baseWorkDir . $uploadPath); |
||||
$operation = true; |
||||
} |
||||
return $operation; |
||||
} |
||||
|
||||
function parse_file($exercisePath, $file, $questionFile) { |
||||
global $exercise_info; |
||||
global $questionTempDir; |
||||
|
||||
$questionTempDir = $exercisePath . '/' . $file . '/'; |
||||
$questionFilePath = $questionTempDir . $questionFile; |
||||
|
||||
|
||||
$data = file($questionFilePath); |
||||
|
||||
$question_index = 0; |
||||
$correct_answer = ''; |
||||
$answers_array = array(); |
||||
foreach ($data as $linea => $info) { |
||||
$exercise_info['question'][$question_index]['type'] = 'MCUA'; |
||||
if (preg_match('/^([A-Z])(\)|\.)\s(.*)/', $info, $matches)) { |
||||
//adding one of the posible answers |
||||
$exercise_info['question'][$question_index]['answer'][]['value'] = $matches[3]; |
||||
$answers_array[] = $matches[1]; |
||||
} elseif (preg_match('/^ANSWER:\s?([A-Z])\s?/', $info, $matches)) { |
||||
//the correct answers |
||||
$correct_answer_index = array_search($matches[1], $answers_array); |
||||
$exercise_info['question'][$question_index]['correct_answers'][] = $correct_answer_index + 1; |
||||
//weight for correct answer |
||||
$exercise_info['question'][$question_index]['weighting'][$correct_answer_index] = 1; |
||||
} elseif (preg_match('/^ANSWER_EXPLANATION:\s?(.*)\s?/', $info, $matches)) { |
||||
//Comment of correct answer |
||||
$exercise_info['question'][$question_index]['answer'][$correct_answer_index]['feedback'] = $matches[1]; |
||||
} elseif (preg_match('/^TAGS:\s?([A-Z])\s?/', $info, $matches)) { |
||||
//TAGS for chamilo >= 1.10 |
||||
$exercise_info['question'][$question_index]['answer_tags'] = explode(',', $matches[1]); |
||||
} elseif (preg_match('/^\n/',$info)) { |
||||
//moving to next question |
||||
$question_index++; |
||||
//emptying answers array when moving to next question |
||||
$answers_array = array(); |
||||
} else { |
||||
//Question itself |
||||
$exercise_info['question'][$question_index]['title'] = $info; |
||||
} |
||||
} |
||||
$total_questions = count($exercise_info['question']); |
||||
foreach ($exercise_info['question'] as $key => $question) { |
||||
$exercise_info['question'][$key]['weighting'][current(array_keys($exercise_info['question'][$key]['weighting']))] = 20 / $total_questions; |
||||
} |
||||
return true; |
||||
} |
||||
@ -0,0 +1,93 @@ |
||||
<?php |
||||
/* For licensing terms, see /license.txt */ |
||||
|
||||
require_once 'HTML/QuickForm/select.php'; |
||||
require_once 'HTML/QuickForm/html.php'; |
||||
|
||||
/** |
||||
* A drop down list with all languages to use with QuickForm |
||||
*/ |
||||
class HTML_QuickForm_Select_Ajax extends HTML_QuickForm_select |
||||
{ |
||||
/** |
||||
* Class constructor |
||||
*/ |
||||
function HTML_QuickForm_Select_Ajax($elementName = null, $elementLabel = null, $options = null, $attributes = null) |
||||
{ |
||||
parent::HTML_QuickForm_Select($elementName, $elementLabel, $options, $attributes); |
||||
} |
||||
|
||||
/** |
||||
* The ajax call must contain an array of id and text |
||||
* @return string |
||||
*/ |
||||
function toHtml() |
||||
{ |
||||
$html = api_get_js('select2/select2.js'); |
||||
|
||||
$iso = api_get_language_isocode(api_get_interface_language()); |
||||
$localeFile = 'select2_locale_'.$iso.'.js'; |
||||
if (file_exists(api_get_path(LIBRARY_PATH).'javascript/select2/'.$localeFile)) { |
||||
$html .= api_get_js('select2/'.$localeFile); |
||||
} |
||||
$html .= api_get_css(api_get_path(WEB_LIBRARY_PATH).'javascript/select2/select2.css'); |
||||
|
||||
$formatResult = $this->getAttribute('formatResult'); |
||||
|
||||
$formatCondition = null; |
||||
|
||||
if (!empty($formatResult)) { |
||||
$formatCondition = ', |
||||
formatResult : '.$formatResult.', |
||||
formatSelection : '.$formatResult.','; |
||||
} |
||||
|
||||
$defaultValues = $this->getAttribute('defaults'); |
||||
|
||||
$dataCondition = null; |
||||
$tags = null; |
||||
if (!empty($defaultValues)) { |
||||
|
||||
$result = json_encode($defaultValues); |
||||
$result = str_replace('"id"', 'id', $result); |
||||
$result = str_replace('"text"', 'text', $result); |
||||
$dataCondition = '$("#'.$this->getAttribute('name').'").select2("data", '.$result.')'; |
||||
$tags = ',tags : function() { return '.$result.'} '; |
||||
} |
||||
|
||||
$html .= '<script> |
||||
$(function() { |
||||
$("#'.$this->getAttribute('name').'").select2({ |
||||
placeholder: "'.get_lang('SelectAnOption').'", |
||||
allowClear: true, |
||||
width: "element", |
||||
minimumInputLength: 2, |
||||
// instead of writing the function to execute the request we use Select2s convenient helper |
||||
ajax: { |
||||
url: "'.$this->getAttribute('url').'", |
||||
dataType: "json", |
||||
data: function (term, page) { |
||||
return { |
||||
q: term, // search term |
||||
page_limit: 10, |
||||
}; |
||||
}, |
||||
results: function (data, page) { // parse the results into the format expected by Select2. |
||||
// since we are using custom formatting functions we do not need to alter remote JSON data |
||||
return { |
||||
results: data |
||||
}; |
||||
} |
||||
} |
||||
'.$tags.' |
||||
'.$formatCondition.' |
||||
}); |
||||
'.$dataCondition.' |
||||
|
||||
}); |
||||
|
||||
</script>'; |
||||
$html .= '<input id="'.$this->getAttribute('name').'" name = "'.$this->getAttribute('name').'" />'; |
||||
return $html; |
||||
} |
||||
} |
||||
@ -0,0 +1,18 @@ |
||||
Copyright 2012 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. |
||||
@ -0,0 +1,83 @@ |
||||
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+ |
||||
|
||||
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.com/#directives-select2) ([AngularJS](angularjs.org)) |
||||
* [Django](https://github.com/applegrew/django-select2) |
||||
* [Symfony](https://github.com/19Gerhard85/sfSelect2WidgetsPlugin) |
||||
* [Bootstrap](https://github.com/t0m/select2-bootstrap-css) (CSS skin) |
||||
* [Yii](https://github.com/tonybolzan/yii-select2) |
||||
|
||||
Internationalization (i18n) |
||||
--------------------------- |
||||
|
||||
Select2 supports multiple languages by simply including the right |
||||
language JS file (`select2_locale_it.js`, `select2_locale_nl.js`, etc.). |
||||
|
||||
Missing a language? Just copy `select2_locale_en.js.template`, translate |
||||
it, and make a pull request back to Select2 here on GitHub. |
||||
|
||||
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 |
||||
|
||||
|
||||
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. |
||||
@ -0,0 +1,8 @@ |
||||
{ |
||||
"name": "select2", |
||||
"version": "3.4.5", |
||||
"main": ["select2.js", "select2.css", "select2.png", "select2x2.png", "select2-spinner.gif"], |
||||
"dependencies": { |
||||
"jquery": ">= 1.7.1" |
||||
} |
||||
} |
||||
@ -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: 0px; |
||||
} |
||||
|
||||
.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; |
||||
} |
||||
|
After Width: | Height: | Size: 1.8 KiB |
@ -0,0 +1,615 @@ |
||||
/* |
||||
Version: 3.4.5 Timestamp: Mon Nov 4 08:22:42 PST 2013 |
||||
*/ |
||||
.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(top, #fff 0%, #eee 50%); |
||||
} |
||||
|
||||
.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(top, #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; |
||||
} |
||||
|
||||
.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-auto-width { |
||||
border-top: 1px solid #aaa; |
||||
width: auto; |
||||
} |
||||
|
||||
.select2-drop-auto-width .select2-search { |
||||
padding-top: 4px; |
||||
} |
||||
|
||||
.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-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(top, #ccc 0%, #eee 60%); |
||||
} |
||||
|
||||
.select2-container .select2-choice .select2-arrow b { |
||||
display: block; |
||||
width: 100%; |
||||
height: 100%; |
||||
background: url('select2.png') no-repeat 0 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(top, #fff 85%, #eee 99%); |
||||
} |
||||
|
||||
.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(top, #fff 85%, #eee 99%); |
||||
} |
||||
|
||||
.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(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(bottom, #fff 0%, #eee 50%); |
||||
} |
||||
|
||||
.select2-dropdown-open .select2-choice .select2-arrow { |
||||
background: transparent; |
||||
border-left: none; |
||||
filter: none; |
||||
} |
||||
.select2-dropdown-open .select2-choice .select2-arrow b { |
||||
background-position: -18px 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); |
||||
} |
||||
|
||||
.select2-results ul.select2-result-sub { |
||||
margin: 0; |
||||
padding-left: 0; |
||||
} |
||||
|
||||
.select2-results ul.select2-result-sub > li .select2-result-label { padding-left: 20px } |
||||
.select2-results ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 40px } |
||||
.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 60px } |
||||
.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 80px } |
||||
.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 100px } |
||||
.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 110px } |
||||
.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 120px } |
||||
|
||||
.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 .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-selection-limit { |
||||
background: #f4f4f4; |
||||
display: list-item; |
||||
} |
||||
|
||||
/* |
||||
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-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; |
||||
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(top, #eee 1%, #fff 15%); |
||||
} |
||||
|
||||
.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; |
||||
} |
||||
.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(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%); |
||||
} |
||||
.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; |
||||
} |
||||
|
||||
.select2-container-multi .select2-search-choice-close { |
||||
left: 3px; |
||||
} |
||||
|
||||
.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: 144dpi) { |
||||
.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; |
||||
} |
||||
} |
||||
@ -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.4.5", |
||||
"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" |
||||
} |
||||
} |
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 613 B |
@ -0,0 +1,17 @@ |
||||
/** |
||||
* Select2 Arabic translation. |
||||
*
|
||||
* Author: Your Name <amedhat3@gmail.com> |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
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 "جاري البحث ..."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,17 @@ |
||||
/** |
||||
* Select2 <Language> translation. |
||||
*
|
||||
* Author: Lubomir Vikev <lubomirvikev@gmail.com> |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
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 "Търсене..."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,17 @@ |
||||
/** |
||||
* Select2 Catalan translation. |
||||
*
|
||||
* Author: David Planella <david.planella@gmail.com> |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
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..."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,49 @@ |
||||
/** |
||||
* 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"; } |
||||
} |
||||
$.extend($.fn.select2.defaults, { |
||||
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í..."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,17 @@ |
||||
/** |
||||
* Select2 Danish translation. |
||||
* |
||||
* Author: Anders Jenbo <anders@jenbo.dk> |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
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…"; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,15 @@ |
||||
/** |
||||
* Select2 German translation |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
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..."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,17 @@ |
||||
/** |
||||
* Select2 <Language> translation. |
||||
*
|
||||
* Author: Your Name <your@email> |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
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 "Αναζήτηση..."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,17 @@ |
||||
/** |
||||
* Select2 <Language> translation. |
||||
* |
||||
* Author: Your Name <your@email> |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
formatNoMatches: function () { return "No matches found"; }, |
||||
formatInputTooShort: function (input, min) { var n = min - input.length; return "Please enter " + n + " 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..."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,15 @@ |
||||
/** |
||||
* Select2 Spanish translation |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
formatNoMatches: function () { return "No se encontraron resultados"; }, |
||||
formatInputTooShort: function (input, min) { var n = min - input.length; return "Por favor, introduzca " + n + " car" + (n == 1? "á" : "a") + "cter" + (n == 1? "" : "es"); }, |
||||
formatInputTooLong: function (input, max) { var n = input.length - max; return "Por favor, elimine " + n + " car" + (n == 1? "á" : "a") + "cter" + (n == 1? "" : "es"); }, |
||||
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..."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,17 @@ |
||||
/** |
||||
* Select2 Estonian translation. |
||||
* |
||||
* Author: Kuldar Kalvik <kuldar@kalvik.ee> |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
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.."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,43 @@ |
||||
/** |
||||
* Select2 Basque translation. |
||||
* |
||||
* Author: Julen Ruiz Aizpuru <julenx at gmail dot com> |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
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..."; |
||||
} |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,28 @@ |
||||
/** |
||||
* Select2 Finnish translation |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
$.extend($.fn.select2.defaults, { |
||||
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..."; |
||||
} |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,15 @@ |
||||
/** |
||||
* Select2 French translation |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
formatNoMatches: function () { return "Aucun résultat trouvé"; }, |
||||
formatInputTooShort: function (input, min) { var n = min - input.length; return "Merci de saisir " + n + " caractère" + (n == 1? "" : "s") + " de plus"; }, |
||||
formatInputTooLong: function (input, max) { var n = input.length - max; return "Merci de supprimer " + 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..."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,43 @@ |
||||
/** |
||||
* Select2 Galician translation |
||||
*
|
||||
* Author: Leandro Regueiro <leandro.regueiro@gmail.com> |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
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..."; |
||||
} |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,17 @@ |
||||
/** |
||||
* Select2 Hebrew translation. |
||||
* |
||||
* Author: Yakir Sitbon <http://www.yakirs.net/>
|
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
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 "מחפש..."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,42 @@ |
||||
/** |
||||
* Select2 Croatian translation. |
||||
* |
||||
* Author: Edi Modrić <edi.modric@gmail.com> |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
var specialNumbers = { |
||||
1: function(n) { return (n % 100 != 11 ? "znak" : "znakova"); }, |
||||
2: function(n) { return (n % 100 != 12 ? "znaka" : "znakova"); }, |
||||
3: function(n) { return (n % 100 != 13 ? "znaka" : "znakova"); }, |
||||
4: function(n) { return (n % 100 != 14 ? "znaka" : "znakova"); } |
||||
}; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
formatNoMatches: function () { return "Nema rezultata"; }, |
||||
formatInputTooShort: function (input, min) { |
||||
var n = min - input.length; |
||||
var nMod10 = n % 10; |
||||
|
||||
if (nMod10 > 0 && nMod10 < 5) { |
||||
return "Unesite još " + n + " " + specialNumbers[nMod10](n); |
||||
} |
||||
|
||||
return "Unesite još " + n + " znakova"; |
||||
}, |
||||
formatInputTooLong: function (input, max) { |
||||
var n = input.length - max; |
||||
var nMod10 = n % 10; |
||||
|
||||
if (nMod10 > 0 && nMod10 < 5) { |
||||
return "Unesite " + n + " " + specialNumbers[nMod10](n) + " manje"; |
||||
} |
||||
|
||||
return "Unesite " + n + " znakova manje"; |
||||
}, |
||||
formatSelectionTooBig: function (limit) { return "Maksimalan broj odabranih stavki je " + limit; }, |
||||
formatLoadMore: function (pageNumber) { return "Učitavanje rezultata..."; }, |
||||
formatSearching: function () { return "Pretraga..."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,15 @@ |
||||
/** |
||||
* Select2 Hungarian translation |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
formatNoMatches: function () { return "Nincs találat."; }, |
||||
formatInputTooShort: function (input, min) { var n = min - input.length; return "Túl rövid. Még " + n + " karakter hiányzik."; }, |
||||
formatInputTooLong: function (input, max) { var n = input.length - max; return "Túl hosszú. " + n + " kerekterrel több mint kellene."; }, |
||||
formatSelectionTooBig: function (limit) { return "Csak " + limit + " elemet lehet kiválasztani."; }, |
||||
formatLoadMore: function (pageNumber) { return "Töltés..."; }, |
||||
formatSearching: function () { return "Keresés..."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,17 @@ |
||||
/** |
||||
* Select2 Indonesian translation. |
||||
*
|
||||
* Author: Ibrahim Yusuf <ibrahim7usuf@gmail.com> |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
formatNoMatches: function () { return "Tidak ada data yang sesuai"; }, |
||||
formatInputTooShort: function (input, min) { var n = min - input.length; return "Masukkan " + n + " huruf lagi" + (n == 1 ? "" : "s"); }, |
||||
formatInputTooLong: function (input, max) { var n = input.length - max; return "Hapus " + n + " huruf" + (n == 1 ? "" : "s"); }, |
||||
formatSelectionTooBig: function (limit) { return "Anda hanya dapat memilih " + limit + " pilihan" + (limit == 1 ? "" : "s"); }, |
||||
formatLoadMore: function (pageNumber) { return "Mengambil data..."; }, |
||||
formatSearching: function () { return "Mencari..."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,16 @@ |
||||
/** |
||||
* Select2 Icelandic translation. |
||||
*
|
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
formatNoMatches: function () { return "Ekkert fannst"; }, |
||||
formatInputTooShort: function (input, min) { var n = min - input.length; return "Vinsamlegast skrifið " + n + " staf" + (n == 1 ? "" : "i") + " í viðbót"; }, |
||||
formatInputTooLong: function (input, max) { var n = input.length - max; return "Vinsamlegast styttið texta um " + n + " staf" + (n == 1 ? "" : "i"); }, |
||||
formatSelectionTooBig: function (limit) { return "Þú getur aðeins valið " + limit + " atriði"; }, |
||||
formatLoadMore: function (pageNumber) { return "Sæki fleiri niðurstöður..."; },
|
||||
formatSearching: function () { return "Leita..."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,15 @@ |
||||
/** |
||||
* Select2 Italian translation |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
formatNoMatches: function () { return "Nessuna corrispondenza trovata"; }, |
||||
formatInputTooShort: function (input, min) { var n = min - input.length; return "Inserisci ancora " + n + " caratter" + (n == 1? "e" : "i"); }, |
||||
formatInputTooLong: function (input, max) { var n = input.length - max; return "Inserisci " + n + " caratter" + (n == 1? "e" : "i") + " in meno"; }, |
||||
formatSelectionTooBig: function (limit) { return "Puoi selezionare solo " + limit + " element" + (limit == 1 ? "o" : "i"); }, |
||||
formatLoadMore: function (pageNumber) { return "Caricamento in corso..."; }, |
||||
formatSearching: function () { return "Ricerca..."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,15 @@ |
||||
/** |
||||
* Select2 Japanese translation. |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
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 "検索中・・・"; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,17 @@ |
||||
/** |
||||
* Select2 <Language> translation. |
||||
*
|
||||
* Author: Swen Mun <longfinfunnel@gmail.com> |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
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 "검색 중…"; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,29 @@ |
||||
/** |
||||
* Select2 lithuanian translation. |
||||
*
|
||||
* Author: CRONUS Karmalakas <cronus dot karmalakas at gmail dot com> |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
formatNoMatches: function () { return "Atitikmenų nerasta"; }, |
||||
formatInputTooShort: function (input, min) { |
||||
var n = min - input.length, |
||||
suffix = (n % 10 == 1) && (n % 100 != 11) ? 'į' : (((n % 10 >= 2) && ((n % 100 < 10) || (n % 100 >= 20))) ? 'ius' : 'ių'); |
||||
return "Įrašykite dar " + n + " simbol" + suffix; |
||||
}, |
||||
formatInputTooLong: function (input, max) { |
||||
var n = input.length - max, |
||||
suffix = (n % 10 == 1) && (n % 100 != 11) ? 'į' : (((n % 10 >= 2) && ((n % 100 < 10) || (n % 100 >= 20))) ? 'ius' : 'ių'); |
||||
return "Pašalinkite " + n + " simbol" + suffix; |
||||
}, |
||||
formatSelectionTooBig: function (limit) { |
||||
var n = limit, |
||||
suffix = (n % 10 == 1) && (n % 100 != 11) ? 'ą' : (((n % 10 >= 2) && ((n % 100 < 10) || (n % 100 >= 20))) ? 'us' : 'ų'); |
||||
return "Jūs galite pasirinkti tik " + limit + " element" + suffix; |
||||
}, |
||||
formatLoadMore: function (pageNumber) { return "Kraunama daugiau rezultatų..."; }, |
||||
formatSearching: function () { return "Ieškoma..."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,16 @@ |
||||
/** |
||||
* Select2 Latvian translation |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
formatNoMatches: function () { return "Sakritību nav"; }, |
||||
formatInputTooShort: function (input, min) { var n = min - input.length; return "Lūdzu ievadiet vēl " + n + " simbol" + (n == 11 ? "us" : (/^\d*[1]$/im.test(n)? "u" : "us")); }, |
||||
formatInputTooLong: function (input, max) { var n = input.length - max; return "Lūdzu ievadiet par " + n + " simbol" + (n == 11 ? "iem" : (/^\d*[1]$/im.test(n)? "u" : "iem")) + " mazāk"; }, |
||||
formatSelectionTooBig: function (limit) { return "Jūs varat izvēlēties ne vairāk kā " + limit + " element" + (limit == 11 ? "us" : (/^\d*[1]$/im.test(limit)? "u" : "us")); }, |
||||
formatLoadMore: function (pageNumber) { return "Datu ielāde..."; }, |
||||
formatSearching: function () { return "Meklēšana..."; } |
||||
}); |
||||
|
||||
})(jQuery); |
||||
@ -0,0 +1,17 @@ |
||||
/** |
||||
* Select2 Macedonian translation. |
||||
*
|
||||
* Author: Marko Aleksic <psybaron@gmail.com> |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
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 "Пребарување..."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,17 @@ |
||||
/** |
||||
* Select2 Malay translation. |
||||
*
|
||||
* Author: Kepoweran <kepoweran@gmail.com> |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
formatNoMatches: function () { return "Tiada padanan yang ditemui"; }, |
||||
formatInputTooShort: function (input, min) { var n = min - input.length; return "Sila masukkan " + n + " aksara lagi"; }, |
||||
formatInputTooLong: function (input, max) { var n = input.length - max; return "Sila hapuskan " + n + " aksara"; }, |
||||
formatSelectionTooBig: function (limit) { return "Anda hanya boleh memilih " + limit + " pilihan"; }, |
||||
formatLoadMore: function (pageNumber) { return "Sedang memuatkan keputusan..."; }, |
||||
formatSearching: function () { return "Mencari..."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,15 @@ |
||||
/** |
||||
* Select2 Dutch translation |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
formatNoMatches: function () { return "Geen resultaten gevonden"; }, |
||||
formatInputTooShort: function (input, min) { var n = min - input.length; return "Vul " + n + " karakter" + (n == 1? "" : "s") + " meer in"; }, |
||||
formatInputTooLong: function (input, max) { var n = input.length - max; return "Vul " + n + " karakter" + (n == 1? "" : "s") + " minder in"; }, |
||||
formatSelectionTooBig: function (limit) { return "Maximaal " + limit + " item" + (limit == 1 ? "" : "s") + " toegestaan"; }, |
||||
formatLoadMore: function (pageNumber) { return "Meer resultaten laden..."; }, |
||||
formatSearching: function () { return "Zoeken..."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,18 @@ |
||||
/** |
||||
* Select2 Norwegian translation. |
||||
* |
||||
* Author: Torgeir Veimo <torgeir.veimo@gmail.com> |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
formatNoMatches: function () { return "Ingen treff"; }, |
||||
formatInputTooShort: function (input, min) { var n = min - input.length; return "Vennligst skriv inn " + n + (n>1 ? " flere tegn" : " tegn til"); }, |
||||
formatInputTooLong: function (input, max) { var n = input.length - max; return "Vennligst fjern " + n + " tegn"; }, |
||||
formatSelectionTooBig: function (limit) { return "Du kan velge maks " + limit + " elementer"; }, |
||||
formatLoadMore: function (pageNumber) { return "Laster flere resultater..."; }, |
||||
formatSearching: function () { return "Søker..."; } |
||||
}); |
||||
})(jQuery); |
||||
|
||||
@ -0,0 +1,37 @@ |
||||
/** |
||||
* Select2 Polish translation. |
||||
*
|
||||
* Author: Jan Kondratowicz <jan@kondratowicz.pl> |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
var pl_suffix = function(n) { |
||||
if(n == 1) return ""; |
||||
if((n%100 > 1 && n%100 < 5) || (n%100 > 20 && n%10 > 1 && n%10 < 5)) return "i"; |
||||
return "ów"; |
||||
}; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
formatNoMatches: function () { |
||||
return "Brak wyników."; |
||||
}, |
||||
formatInputTooShort: function (input, min) { |
||||
var n = min - input.length; |
||||
return "Wpisz jeszcze " + n + " znak" + pl_suffix(n) + "."; |
||||
}, |
||||
formatInputTooLong: function (input, max) { |
||||
var n = input.length - max; |
||||
return "Wpisana fraza jest za długa o " + n + " znak" + pl_suffix(n) + "."; |
||||
}, |
||||
formatSelectionTooBig: function (limit) { |
||||
return "Możesz zaznaczyć najwyżej " + limit + " element" + pl_suffix(limit) + "."; |
||||
}, |
||||
formatLoadMore: function (pageNumber) { |
||||
return "Ładowanie wyników..."; |
||||
}, |
||||
formatSearching: function () { |
||||
return "Szukanie..."; |
||||
} |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,15 @@ |
||||
/** |
||||
* Select2 Brazilian Portuguese translation |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
formatNoMatches: function () { return "Nenhum resultado encontrado"; }, |
||||
formatInputTooShort: function (input, min) { var n = min - input.length; return "Informe " + n + " caractere" + (n == 1? "" : "s"); }, |
||||
formatInputTooLong: function (input, max) { var n = input.length - max; return "Apague " + n + " caractere" + (n == 1? "" : "s"); }, |
||||
formatSelectionTooBig: function (limit) { return "Só é possível selecionar " + limit + " elemento" + (limit == 1 ? "" : "s"); }, |
||||
formatLoadMore: function (pageNumber) { return "Carregando mais resultados..."; }, |
||||
formatSearching: function () { return "Buscando..."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,15 @@ |
||||
/** |
||||
* Select2 Portuguese (Portugal) translation |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
formatNoMatches: function () { return "Nenhum resultado encontrado"; }, |
||||
formatInputTooShort: function (input, min) { var n = min - input.length; return "Introduza " + n + " car" + (n == 1 ? "ácter" : "acteres"); }, |
||||
formatInputTooLong: function (input, max) { var n = input.length - max; return "Apague " + n + " car" + (n == 1 ? "ácter" : "acteres"); }, |
||||
formatSelectionTooBig: function (limit) { return "Só é possível selecionar " + limit + " elemento" + (limit == 1 ? "" : "s"); }, |
||||
formatLoadMore: function (pageNumber) { return "A carregar mais resultados..."; }, |
||||
formatSearching: function () { return "A pesquisar..."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,15 @@ |
||||
/** |
||||
* Select2 Romanian translation. |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
formatNoMatches: function () { return "Nu a fost găsit nimic"; }, |
||||
formatInputTooShort: function (input, min) { var n = min - input.length; return "Vă rugăm să introduceți incă " + n + " caracter" + (n == 1 ? "" : "e"); }, |
||||
formatInputTooLong: function (input, max) { var n = input.length - max; return "Vă rugăm să introduceți mai puțin de " + n + " caracter" + (n == 1? "" : "e"); }, |
||||
formatSelectionTooBig: function (limit) { return "Aveți voie să selectați cel mult " + limit + " element" + (limit == 1 ? "" : "e"); }, |
||||
formatLoadMore: function (pageNumber) { return "Se încarcă..."; }, |
||||
formatSearching: function () { return "Căutare..."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,15 @@ |
||||
/** |
||||
* Select2 Russian translation |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
formatNoMatches: function () { return "Совпадений не найдено"; }, |
||||
formatInputTooShort: function (input, min) { var n = min - input.length; return "Пожалуйста, введите еще " + n + " символ" + (n == 1 ? "" : ((n > 1)&&(n < 5) ? "а" : "ов")); }, |
||||
formatInputTooLong: function (input, max) { var n = input.length - max; return "Пожалуйста, введите на " + n + " символ" + (n == 1 ? "" : ((n > 1)&&(n < 5)? "а" : "ов")) + " меньше"; }, |
||||
formatSelectionTooBig: function (limit) { return "Вы можете выбрать не более " + limit + " элемент" + (limit == 1 ? "а" : "ов"); }, |
||||
formatLoadMore: function (pageNumber) { return "Загрузка данных..."; }, |
||||
formatSearching: function () { return "Поиск..."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,48 @@ |
||||
/** |
||||
* Select2 Slovak translation. |
||||
* |
||||
* Author: David Vallner <david@vallner.net> |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
// use text for the numbers 2 through 4
|
||||
var smallNumbers = { |
||||
2: function(masc) { return (masc ? "dva" : "dve"); }, |
||||
3: function() { return "tri"; }, |
||||
4: function() { return "štyri"; } |
||||
} |
||||
$.extend($.fn.select2.defaults, { |
||||
formatNoMatches: function () { return "Nenašli sa žiadne položky"; }, |
||||
formatInputTooShort: function (input, min) { |
||||
var n = min - input.length; |
||||
if (n == 1) { |
||||
return "Prosím zadajte ešte jeden znak"; |
||||
} else if (n <= 4) { |
||||
return "Prosím zadajte ešte ďalšie "+smallNumbers[n](true)+" znaky"; |
||||
} else { |
||||
return "Prosím zadajte ešte ďalších "+n+" znakov"; |
||||
} |
||||
}, |
||||
formatInputTooLong: function (input, max) { |
||||
var n = input.length - max; |
||||
if (n == 1) { |
||||
return "Prosím zadajte o jeden znak menej"; |
||||
} else if (n <= 4) { |
||||
return "Prosím zadajte o "+smallNumbers[n](true)+" znaky menej"; |
||||
} else { |
||||
return "Prosím zadajte o "+n+" znakov menej"; |
||||
} |
||||
}, |
||||
formatSelectionTooBig: function (limit) { |
||||
if (limit == 1) { |
||||
return "Môžete zvoliť len jednu položku"; |
||||
} else if (limit <= 4) { |
||||
return "Môžete zvoliť najviac "+smallNumbers[limit](false)+" položky"; |
||||
} else { |
||||
return "Môžete zvoliť najviac "+limit+" položiek"; |
||||
} |
||||
}, |
||||
formatLoadMore: function (pageNumber) { return "Načítavajú sa ďalšie výsledky..."; }, |
||||
formatSearching: function () { return "Vyhľadávanie..."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,17 @@ |
||||
/** |
||||
* Select2 Swedish translation. |
||||
* |
||||
* Author: Jens Rantil <jens.rantil@telavox.com> |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
formatNoMatches: function () { return "Inga träffar"; }, |
||||
formatInputTooShort: function (input, min) { var n = min - input.length; return "Var god skriv in " + n + (n>1 ? " till tecken" : " tecken till"); }, |
||||
formatInputTooLong: function (input, max) { var n = input.length - max; return "Var god sudda ut " + n + " tecken"; }, |
||||
formatSelectionTooBig: function (limit) { return "Du kan max välja " + limit + " element"; }, |
||||
formatLoadMore: function (pageNumber) { return "Laddar fler resultat..."; }, |
||||
formatSearching: function () { return "Söker..."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,17 @@ |
||||
/** |
||||
* Select2 Turkish translation. |
||||
*
|
||||
* Author: Salim KAYABAŞI <salim.kayabasi@gmail.com> |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
formatNoMatches: function () { return "Sonuç bulunamadı"; }, |
||||
formatInputTooShort: function (input, min) { var n = min - input.length; return "En az " + n + " karakter daha girmelisiniz"; }, |
||||
formatInputTooLong: function (input, max) { var n = input.length - max; return n + " karakter azaltmalısınız"; }, |
||||
formatSelectionTooBig: function (limit) { return "Sadece " + limit + " seçim yapabilirsiniz"; }, |
||||
formatLoadMore: function (pageNumber) { return "Daha fazla..."; }, |
||||
formatSearching: function () { return "Aranıyor..."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,17 @@ |
||||
/** |
||||
* Select2 <Language> translation. |
||||
*
|
||||
* Author: bigmihail <bigmihail@bigmir.net> |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
formatNoMatches: function () { return "Нічого не знайдено"; }, |
||||
formatInputTooShort: function (input, min) { var n = min - input.length, s = ["", "и", "ів"], p = [2,0,1,1,1,2]; return "Введіть буль ласка ще " + n + " символ" + s[ (n%100>4 && n%100<=20)? 2 : p[Math.min(n%10, 5)] ]; }, |
||||
formatInputTooLong: function (input, max) { var n = input.length - max, s = ["", "и", "ів"], p = [2,0,1,1,1,2]; return "Введіть буль ласка на " + n + " символ" + s[ (n%100>4 && n%100<=20)? 2 : p[Math.min(n%10, 5)] ] + " менше"; }, |
||||
formatSelectionTooBig: function (limit) {var s = ["", "и", "ів"], p = [2,0,1,1,1,2]; return "Ви можете вибрати лише " + limit + " елемент" + s[ (limit%100>4 && limit%100<=20)? 2 : p[Math.min(limit%10, 5)] ]; }, |
||||
formatLoadMore: function (pageNumber) { return "Завантаження даних..."; }, |
||||
formatSearching: function () { return "Пошук..."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,18 @@ |
||||
/** |
||||
* Select2 Vietnamese translation. |
||||
*
|
||||
* Author: Long Nguyen <olragon@gmail.com> |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
|
||||
$.extend($.fn.select2.defaults, { |
||||
formatNoMatches: function () { return "Không tìm thấy kết quả"; }, |
||||
formatInputTooShort: function (input, min) { var n = min - input.length; return "Vui lòng nhập nhiều hơn " + n + " ký tự" + (n == 1 ? "" : "s"); }, |
||||
formatInputTooLong: function (input, max) { var n = input.length - max; return "Vui lòng nhập ít hơn " + n + " ký tự" + (n == 1? "" : "s"); }, |
||||
formatSelectionTooBig: function (limit) { return "Chỉ có thể chọn được " + limit + " tùy chọn" + (limit == 1 ? "" : "s"); }, |
||||
formatLoadMore: function (pageNumber) { return "Đang lấy thêm kết quả..."; }, |
||||
formatSearching: function () { return "Đang tìm..."; } |
||||
}); |
||||
})(jQuery); |
||||
|
||||
@ -0,0 +1,14 @@ |
||||
/** |
||||
* Select2 Chinese translation |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
$.extend($.fn.select2.defaults, { |
||||
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 "搜索中..."; } |
||||
}); |
||||
})(jQuery); |
||||
@ -0,0 +1,14 @@ |
||||
/** |
||||
* Select2 Traditional Chinese translation |
||||
*/ |
||||
(function ($) { |
||||
"use strict"; |
||||
$.extend($.fn.select2.defaults, { |
||||
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 "搜尋中..."; } |
||||
}); |
||||
})(jQuery); |
||||
|
After Width: | Height: | Size: 845 B |
@ -0,0 +1,29 @@ |
||||
-- Extra DB changes needed for new features in work tool |
||||
|
||||
CREATE TABLE IF NOT EXISTS c_student_publication_rel_document ( |
||||
id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, |
||||
work_id INT NOT NULL, |
||||
document_id INT NOT NULL, |
||||
c_id INT NOT NULL |
||||
); |
||||
|
||||
CREATE TABLE IF NOT EXISTS c_student_publication_rel_user ( |
||||
id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, |
||||
work_id INT NOT NULL, |
||||
user_id INT NOT NULL, |
||||
c_id INT NOT NULL |
||||
); |
||||
|
||||
CREATE TABLE IF NOT EXISTS c_student_publication_comment ( |
||||
id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, |
||||
work_id INT NOT NULL, |
||||
c_id INT NOT NULL, |
||||
comment text, |
||||
user_id int NOT NULL, |
||||
sent_at datetime NOT NULL |
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8; |
||||
|
||||
ALTER TABLE c_student_publication ADD COLUMN document_id int DEFAULT 0; |
||||
|
||||
-- Update configuration.php: |
||||
-- $_configuration['add_document_to_work'] = true; |
||||
Loading…
Reference in new issue