From ae84a5dc249753a350eefdb0fe91ba1f1d986ea7 Mon Sep 17 00:00:00 2001 From: z Date: Wed, 5 Aug 2020 16:33:57 +0800 Subject: [PATCH] * code for task #7600. --- module/bug/control.php | 2 +- module/bug/js/batchcreate.js | 3 ++ module/bug/view/batchedit.html.php | 2 ++ module/product/control.php | 49 +++++++++++++++++++++----- module/product/view/batchedit.html.php | 10 ++++++ module/project/control.php | 46 ++++++++++++++++++------ module/project/js/managemembers.js | 15 ++++++-- module/project/view/batchedit.html.php | 12 +++++++ module/story/js/batchcreate.js | 2 ++ module/task/js/batchcreate.js | 1 + module/task/js/create.js | 7 ++++ module/testcase/js/batchcreate.js | 1 + module/testcase/js/common.js | 1 + www/js/zui/picker/zui.picker.min.css | 4 ++- 14 files changed, 131 insertions(+), 24 deletions(-) diff --git a/module/bug/control.php b/module/bug/control.php index 66e2107a8d..99fda229b3 100644 --- a/module/bug/control.php +++ b/module/bug/control.php @@ -843,7 +843,7 @@ class bug extends control $appendUsers[$bug->assignedTo] = $bug->assignedTo; $appendUsers[$bug->resolvedBy] = $bug->resolvedBy; } - $users = $this->user->getPairs('devfirst|nodeleted', $appendUsers); + $users = $this->user->getPairs('devfirst|nodeleted', $appendUsers, $this->config->maxCount); $users = array('' => '', 'ditto' => $this->lang->bug->ditto) + $users; /* Assign. */ diff --git a/module/bug/js/batchcreate.js b/module/bug/js/batchcreate.js index 0195d8d71e..400b9763b7 100644 --- a/module/bug/js/batchcreate.js +++ b/module/bug/js/batchcreate.js @@ -23,6 +23,7 @@ function setBranchRelated(branchID, productID, num) if(!modules) modules = ''; $('#modules' + num).replaceWith(modules); $("#modules" + num + "_chosen").remove(); + $("#modules" + num).next('.picker').remove(); $("#modules" + num).chosen(); }); @@ -32,6 +33,7 @@ function setBranchRelated(branchID, productID, num) if(!projects) projects = ''; $('#projects' + num).replaceWith(projects); $("#projects" + num + "_chosen").remove(); + $("#projects" + num).next('.picker').remove(); $("#projects" + num).chosen(); }); @@ -59,6 +61,7 @@ function setOpenedBuilds(link, index) $('#buildBox' + index).html(builds); $('#buildBox' + index).find('select').val(selected); $('#openedBuilds' + index + '_chosen').remove(); + $('#openedBuilds' + index).next('.picker').remove(); $('#buildBox' + index + ' select').removeClass('select-3'); $('#buildBox' + index + ' select').addClass('select-1'); $('#buildBox' + index + ' select').attr('name','openedBuilds[' + index + '][]'); diff --git a/module/bug/view/batchedit.html.php b/module/bug/view/batchedit.html.php index 8395417e8f..f8e3f132c0 100644 --- a/module/bug/view/batchedit.html.php +++ b/module/bug/view/batchedit.html.php @@ -73,6 +73,7 @@ $bug):?> config->user->moreLink)) $this->config->moreLinks["assignedTos[$bugID]"] = $this->config->user->moreLink; if(!$productID) { $product = $this->product->getByID($bug->product); @@ -134,6 +135,7 @@ control == 'select' or $extendField->control == 'multi-select') ? " style='overflow:visible'" : '') . ">" . $this->loadModel('flow')->getFieldControl($extendField, $bug, $extendField->field . "[{$bugID}]") . "";?> + config->moreLinks["assignedTos[$bugID]"])) unset($this->config->moreLinks["assignedTos[$bugID]"]);?> diff --git a/module/product/control.php b/module/product/control.php index 69132d34cd..7be3fa71c4 100644 --- a/module/product/control.php +++ b/module/product/control.php @@ -261,12 +261,22 @@ class product extends control if($this->session->product) $rootID = $this->session->product; $this->product->setMenu($this->products, $rootID); + $this->loadModel('user'); + $poUsers = $this->user->getPairs('nodeleted|pofirst|noclosed', '', $this->config->maxCount); + if(!empty($this->config->user->moreLink)) $this->config->moreLinks["PO"] = $this->config->user->moreLink; + + $qdUsers = $this->user->getPairs('nodeleted|qdfirst|noclosed', '', $this->config->maxCount); + if(!empty($this->config->user->moreLink)) $this->config->moreLinks["QD"] = $this->config->user->moreLink; + + $rdUsers = $this->user->getPairs('nodeleted|devfirst|noclosed', '', $this->config->maxCount); + if(!empty($this->config->user->moreLink)) $this->config->moreLinks["RD"] = $this->config->user->moreLink; + $this->view->title = $this->lang->product->create; $this->view->position[] = $this->view->title; $this->view->groups = $this->loadModel('group')->getPairs(); - $this->view->poUsers = $this->loadModel('user')->getPairs('nodeleted|pofirst|noclosed', '', $this->config->maxCount); - $this->view->qdUsers = $this->loadModel('user')->getPairs('nodeleted|qdfirst|noclosed', '', $this->config->maxCount); - $this->view->rdUsers = $this->loadModel('user')->getPairs('nodeleted|devfirst|noclosed', '', $this->config->maxCount); + $this->view->poUsers = $poUsers; + $this->view->qdUsers = $qdUsers; + $this->view->rdUsers = $rdUsers; $this->view->lines = array('') + $this->loadModel('tree')->getLinePairs(); $this->view->rootID = $rootID; @@ -307,14 +317,25 @@ class product extends control $this->product->setMenu($this->products, $productID); $product = $this->product->getById($productID); + + $this->loadModel('user'); + $poUsers = $this->user->getPairs('nodeleted|pofirst', $product->PO, $this->config->maxCount); + if(!empty($this->config->user->moreLink)) $this->config->moreLinks["PO"] = $this->config->user->moreLink; + + $qdUsers = $this->user->getPairs('nodeleted|qdfirst', $product->QD, $this->config->maxCount); + if(!empty($this->config->user->moreLink)) $this->config->moreLinks["QD"] = $this->config->user->moreLink; + + $rdUsers = $this->user->getPairs('nodeleted|devfirst', $product->RD, $this->config->maxCount); + if(!empty($this->config->user->moreLink)) $this->config->moreLinks["RD"] = $this->config->user->moreLink; + $this->view->title = $this->lang->product->edit . $this->lang->colon . $product->name; $this->view->position[] = html::a($this->createLink($this->moduleName, 'browse'), $product->name); $this->view->position[] = $this->lang->product->edit; $this->view->product = $product; $this->view->groups = $this->loadModel('group')->getPairs(); - $this->view->poUsers = $this->loadModel('user')->getPairs('nodeleted|pofirst', $product->PO); - $this->view->qdUsers = $this->loadModel('user')->getPairs('nodeleted|qdfirst', $product->QD); - $this->view->rdUsers = $this->loadModel('user')->getPairs('nodeleted|devfirst', $product->RD); + $this->view->poUsers = $poUsers; + $this->view->qdUsers = $qdUsers; + $this->view->rdUsers = $rdUsers; $this->view->lines = array('') + $this->loadModel('tree')->getLinePairs(); unset($this->lang->product->typeList['']); @@ -364,14 +385,24 @@ class product extends control $appendRdUsers[$product->RD] = $product->RD; } + $this->loadModel('user'); + $poUsers = $this->user->getPairs('nodeleted|pofirst', $appendPoUsers); + if(!empty($this->config->user->moreLink)) $this->config->moreLinks["PO"] = $this->config->user->moreLink; + + $qdUsers = $this->user->getPairs('nodeleted|qdfirst', $appendQdUsers); + if(!empty($this->config->user->moreLink)) $this->config->moreLinks["QD"] = $this->config->user->moreLink; + + $rdUsers = $this->user->getPairs('nodeleted|devfirst', $appendRdUsers); + if(!empty($this->config->user->moreLink)) $this->config->moreLinks["RD"] = $this->config->user->moreLink; + $this->view->title = $this->lang->product->batchEdit; $this->view->position[] = $this->lang->product->batchEdit; $this->view->lines = array('') + $this->tree->getLinePairs(); $this->view->productIDList = $productIDList; $this->view->products = $products; - $this->view->poUsers = $this->loadModel('user')->getPairs('nodeleted|pofirst', $appendPoUsers); - $this->view->qdUsers = $this->loadModel('user')->getPairs('nodeleted|qdfirst', $appendQdUsers); - $this->view->rdUsers = $this->loadModel('user')->getPairs('nodeleted|devfirst', $appendRdUsers); + $this->view->poUsers = $poUsers; + $this->view->qdUsers = $qdUsers; + $this->view->rdUsers = $rdUsers; unset($this->lang->product->typeList['']); $this->display(); diff --git a/module/product/view/batchedit.html.php b/module/product/view/batchedit.html.php index 81c37c66a0..480b6b61fc 100755 --- a/module/product/view/batchedit.html.php +++ b/module/product/view/batchedit.html.php @@ -54,6 +54,11 @@ + config->moreLinks["PO"])) $this->config->moreLinks["POs[$productID]"] = $this->config->moreLinks["PO"]; + if(!empty($this->config->moreLinks["QD"])) $this->config->moreLinks["QDs[$productID]"] = $this->config->moreLinks["QD"]; + if(!empty($this->config->moreLinks["RD"])) $this->config->moreLinks["RDs[$productID]"] = $this->config->moreLinks["RD"]; + ?> name, "class='form-control'");?> @@ -67,6 +72,11 @@ '>desc), "rows='1' class='form-control autosize'");?> order, "class='form-control'");?> + config->moreLinks["POs[$productID]"])) unset($this->config->moreLinks["POs[$productID]"]); + if(isset($this->config->moreLinks["QDs[$productID]"])) unset($this->config->moreLinks["QDs[$productID]"]); + if(isset($this->config->moreLinks["RDs[$productID]"])) unset($this->config->moreLinks["RDs[$productID]"]); + ?> diff --git a/module/project/control.php b/module/project/control.php index 6631a89c6e..b9766167f9 100644 --- a/module/project/control.php +++ b/module/project/control.php @@ -1249,20 +1249,32 @@ class project extends control unset($this->lang->project->endList[365]); } + $this->loadModel('user'); + $poUsers = $this->user->getPairs('noclosed|nodeleted|pofirst', $project->PO, $this->config->maxCount); + if(!empty($this->config->user->moreLink)) $this->config->moreLinks["PM"] = $this->config->user->moreLink; + + $pmUsers = $this->user->getPairs('noclosed|nodeleted|pmfirst', $project->PM, $this->config->maxCount); + if(!empty($this->config->user->moreLink)) $this->config->moreLinks["PO"] = $this->config->user->moreLink; + + $qdUsers = $this->user->getPairs('noclosed|nodeleted|qdfirst', $project->QD, $this->config->maxCount); + if(!empty($this->config->user->moreLink)) $this->config->moreLinks["QD"] = $this->config->user->moreLink; + + $rdUsers = $this->user->getPairs('noclosed|nodeleted|devfirst', $project->RD, $this->config->maxCount); + if(!empty($this->config->user->moreLink)) $this->config->moreLinks["RD"] = $this->config->user->moreLink; + $this->view->title = $title; $this->view->position = $position; $this->view->projects = $projects; $this->view->project = $project; - $this->view->poUsers = $this->loadModel('user')->getPairs('noclosed|nodeleted|pofirst', $project->PO); - $this->view->pmUsers = $this->user->getPairs('noclosed|nodeleted|pmfirst', $project->PM); - $this->view->qdUsers = $this->user->getPairs('noclosed|nodeleted|qdfirst', $project->QD); - $this->view->rdUsers = $this->user->getPairs('noclosed|nodeleted|devfirst', $project->RD); + $this->view->poUsers = $poUsers; + $this->view->pmUsers = $pmUsers; + $this->view->qdUsers = $qdUsers; + $this->view->rdUsers = $rdUsers; $this->view->groups = $this->loadModel('group')->getPairs(); $this->view->allProducts = $allProducts; $this->view->linkedProducts = $linkedProducts; $this->view->productPlans = $productPlans; $this->view->branchGroups = $this->loadModel('branch')->getByProducts(array_keys($linkedProducts), '', $linkedBranches); - $this->display(); } @@ -1310,14 +1322,27 @@ class project extends control $this->view->customFields = $customFields; $this->view->showFields = $this->config->project->custom->batchEditFields; + $this->loadModel('user'); + $pmUsers = $this->user->getPairs('noclosed|nodeleted|pmfirst', $appendPmUsers, $this->config->maxCount); + if(!empty($this->config->user->moreLink)) $this->config->moreLinks["PM"] = $this->config->user->moreLink; + + $poUsers = $this->user->getPairs('noclosed|nodeleted|pofirst', $appendPoUsers, $this->config->maxCount); + if(!empty($this->config->user->moreLink)) $this->config->moreLinks["PO"] = $this->config->user->moreLink; + + $qdUsers = $this->user->getPairs('noclosed|nodeleted|qdfirst', $appendQdUsers, $this->config->maxCount); + if(!empty($this->config->user->moreLink)) $this->config->moreLinks["QD"] = $this->config->user->moreLink; + + $rdUsers = $this->user->getPairs('noclosed|nodeleted|devfirst', $appendRdUsers, $this->config->maxCount); + if(!empty($this->config->user->moreLink)) $this->config->moreLinks["RD"] = $this->config->user->moreLink; + $this->view->title = $this->lang->project->batchEdit; $this->view->position[] = $this->lang->project->batchEdit; $this->view->projectIDList = $projectIDList; $this->view->projects = $projects; - $this->view->pmUsers = $this->loadModel('user')->getPairs('noclosed|nodeleted|pmfirst', $appendPmUsers); - $this->view->poUsers = $this->user->getPairs('noclosed|nodeleted|pofirst', $appendPoUsers); - $this->view->qdUsers = $this->user->getPairs('noclosed|nodeleted|qdfirst', $appendQdUsers); - $this->view->rdUsers = $this->user->getPairs('noclosed|nodeleted|devfirst', $appendRdUsers); + $this->view->pmUsers = $pmUsers; + $this->view->poUsers = $poUsers; + $this->view->qdUsers = $qdUsers; + $this->view->rdUsers = $rdUsers; $this->display(); } @@ -1893,7 +1918,7 @@ class project extends control $this->loadModel('dept'); $project = $this->project->getById($projectID); - $users = $this->user->getPairs('noclosed|nodeleted|devfirst|nofeedback'); + $users = $this->user->getPairs('noclosed|nodeleted|devfirst|nofeedback', '', $this->config->maxCount); $roles = $this->user->getUserRoles(array_keys($users)); $deptUsers = $dept === '' ? array() : $this->dept->getDeptUserPairs($dept); $currentMembers = $this->project->getTeamMembers($projectID); @@ -1903,6 +1928,7 @@ class project extends control /* Set menu. */ $this->project->setMenu($this->projects, $project->id); + if(!empty($this->config->user->moreLink)) $this->config->moreLinks["accounts[]"] = $this->config->user->moreLink; $title = $this->lang->project->manageMembers . $this->lang->colon . $project->name; $position[] = html::a($this->createLink('project', 'browse', "projectID=$projectID"), $project->name); diff --git a/module/project/js/managemembers.js b/module/project/js/managemembers.js index ad634b0871..db7fa3260f 100644 --- a/module/project/js/managemembers.js +++ b/module/project/js/managemembers.js @@ -17,9 +17,18 @@ function addItem(obj) { var item = $('#addItem').html().replace(/%i%/g, i); $(obj).closest('tr').after('' + item + ''); - var accounts = $('#hours' + i).closest('tr').find('select:first') - accounts.trigger('liszt:updated'); - accounts.chosen(); + var $accounts = $('#hours' + i).closest('tr').find('select:first') + + if($accounts.attr('data-pickertype') != 'remote') + { + $accounts.chosen(); + } + else + { + $accounts.parent().find('.picker.picker-ready').remove(); + var pickerremote = $accounts.attr('data-pickerremote'); + $accounts.picker({chosenMode: true, remote: pickerremote}); + } i ++; } diff --git a/module/project/view/batchedit.html.php b/module/project/view/batchedit.html.php index 437e5d8b1a..e6da13707a 100755 --- a/module/project/view/batchedit.html.php +++ b/module/project/view/batchedit.html.php @@ -60,6 +60,12 @@ + config->moreLinks["PM"])) $this->config->moreLinks["PMs[$projectID]"] = $this->config->moreLinks["PM"]; + if(!empty($this->config->moreLinks["PO"])) $this->config->moreLinks["POs[$projectID]"] = $this->config->moreLinks["PO"]; + if(!empty($this->config->moreLinks["QD"])) $this->config->moreLinks["QDs[$projectID]"] = $this->config->moreLinks["QD"]; + if(!empty($this->config->moreLinks["RD"])) $this->config->moreLinks["RDs[$projectID]"] = $this->config->moreLinks["RD"]; + ?> name, "class='form-control'");?> @@ -82,6 +88,12 @@ order, "class='form-control'")?> + config->moreLinks["PMs[$projectID]"])) unset($this->config->moreLinks["PMs[$projectID]"]); + if(isset($this->config->moreLinks["POs[$projectID]"])) unset($this->config->moreLinks["POs[$projectID]"]); + if(isset($this->config->moreLinks["QDs[$projectID]"])) unset($this->config->moreLinks["QDs[$projectID]"]); + if(isset($this->config->moreLinks["RDs[$projectID]"])) unset($this->config->moreLinks["RDs[$projectID]"]); + ?> diff --git a/module/story/js/batchcreate.js b/module/story/js/batchcreate.js index 3122a78161..1bee68b060 100644 --- a/module/story/js/batchcreate.js +++ b/module/story/js/batchcreate.js @@ -54,6 +54,7 @@ function setModuleAndPlan(branchID, productID, num) if(!modules) modules = ''; $('#module' + num).replaceWith(modules); $("#module" + num + "_chosen").remove(); + $("#module" + num).next('.picker').remove(); $("#module" + num).chosen(); }); @@ -63,6 +64,7 @@ function setModuleAndPlan(branchID, productID, num) if(!plans) plans = ''; $('#plan' + num).replaceWith(plans); $("#plan" + num + "_chosen").remove(); + $("#plan" + num).next('.picker').remove(); $("#plan" + num).chosen(); }); } diff --git a/module/task/js/batchcreate.js b/module/task/js/batchcreate.js index 185a1b727e..795e7fab84 100755 --- a/module/task/js/batchcreate.js +++ b/module/task/js/batchcreate.js @@ -30,6 +30,7 @@ function setStories(moduleID, projectID, num) } var chosenWidth = $("#story" + num + "_chosen").css('max-width'); $("#story" + num + "_chosen").remove(); + $("#story" + num).next('.picker').remove(); $("#story" + num).chosen(); $("#story" + num + "_chosen").width(chosenWidth).css('max-width', chosenWidth); }); diff --git a/module/task/js/create.js b/module/task/js/create.js index a1fdf96fb4..f9639775b3 100644 --- a/module/task/js/create.js +++ b/module/task/js/create.js @@ -24,12 +24,14 @@ function loadProjectMembers(projectID) $.get(createLink('project', 'ajaxGetMembers', 'projectID=' + projectID + '&assignedTo=' + $('#assignedTo').val()), function(data) { $('#assignedTo_chosen').remove(); + $('#assignedTo').next('.picker').remove(); $('#assignedTo').replaceWith(data); $('#assignedTo').attr('name', 'assignedTo[]').chosen(); $('.modal-dialog #taskTeamEditor tr').each(function() { $(this).find('#team_chosen').remove(); + $(this).find('#team').next('.picker').remove(); $(this).find('#team').replaceWith(data); $(this).find('#assignedTo').attr('id', 'team').attr('name', 'team[]').chosen(); }); @@ -48,6 +50,7 @@ function loadProjectStories(projectID) $.get(createLink('story', 'ajaxGetProjectStories', 'projectID=' + projectID + '&productID=0&branch=0&moduleID=0&storyID=' + $('#story').val()), function(data) { $('#story_chosen').remove(); + $('#story').next('.picker').remove(); $('#story').replaceWith(data); $('#story').addClass('filled').chosen(); }); @@ -93,6 +96,7 @@ function setOwners(result) $("#multipleBox").removeAttr("checked"); $('.team-group').addClass('hidden'); $('#assignedTo, #assignedTo_chosen').removeClass('hidden'); + $('#assignedTo').next('.picker').removeClass('hidden'); if(result == 'affair') { $('#assignedTo').attr('multiple', 'multiple'); @@ -228,6 +232,7 @@ function setStories(moduleID, projectID) $('#story').val(storyID); setPreview(); $('#story_chosen').remove(); + $('#story').next('.picker').remove(); $("#story").addClass('filled').chosen(); }); } @@ -365,12 +370,14 @@ $(document).ready(function() if($(this).prop('checked')) { $('#assignedTo, #assignedTo_chosen').addClass('hidden'); + $('#assignedTo').next('.picker').addClass('hidden'); $('.team-group').removeClass('hidden'); $('#estimate').attr('readonly', true); } else { $('#assignedTo, #assignedTo_chosen').removeClass('hidden'); + $('#assignedTo').next('.picker').removeClass('hidden'); $('.team-group').addClass('hidden'); $('#estimate').attr('readonly', false); } diff --git a/module/testcase/js/batchcreate.js b/module/testcase/js/batchcreate.js index d6153d2d5f..adfc541b4f 100644 --- a/module/testcase/js/batchcreate.js +++ b/module/testcase/js/batchcreate.js @@ -105,6 +105,7 @@ function setModules(branchID, productID, num) if(!modules) modules = ''; $('#module' + num).replaceWith(modules); $("#module" + num + "_chosen").remove(); + $("#module" + num).next('.picker').remove(); $("#module" + num).chosen(); }); } diff --git a/module/testcase/js/common.js b/module/testcase/js/common.js index a238e29b90..cc09050347 100644 --- a/module/testcase/js/common.js +++ b/module/testcase/js/common.js @@ -132,6 +132,7 @@ function setStories() $('#story').replaceWith(stories); $('#story').val(value); $('#story_chosen').remove(); + $('#story').next('.picker').remove(); $("#story").chosen(); }); } diff --git a/www/js/zui/picker/zui.picker.min.css b/www/js/zui/picker/zui.picker.min.css index b358312759..5587c1fa44 100644 --- a/www/js/zui/picker/zui.picker.min.css +++ b/www/js/zui/picker/zui.picker.min.css @@ -3,4 +3,6 @@ * http://openzui.com * GitHub: https://github.com/easysoft/zui.git * Copyright (c) 2020 cnezsoft.com; Licensed MIT - */.picker{min-height:32px;background-color:#eee}.picker:not(.picker-ready)>*{display:none}.picker-selections{position:relative;min-height:32px;color:#222;background-color:#fff;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.picker-focus .picker-selections{border-color:#145ccd;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(20,92,205,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(20,92,205,.6)}.picker-multi .picker-selections{padding:3px}.picker-multi.picker-focus .picker-selections:before{position:absolute;right:0;bottom:8px;display:block;width:24px;height:14px;font-family:ZenIcon;font-size:14px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;text-align:center;text-transform:none;content:'\e603';opacity:.4;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.picker-multi.picker-focus.picker-loading .picker-selections::before{display:inline-block;content:'\e97c';-webkit-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}.picker-multi .picker-selection{position:relative;display:inline-block;padding:0 20px 0 5px;margin:2px;line-height:18px;background-color:#f1f1f1;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ddd;border-radius:3px;-webkit-box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05)}.picker-selection-single{max-width:100%;padding:5px 20px 5px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-focus .picker-selection-single .picker-selection-text{display:none}.picker-selection-single:after{position:absolute;top:7px;right:0;display:block;width:24px;height:14px;font-family:ZenIcon;font-size:14px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;text-align:center;text-transform:none;content:'\e6b8';opacity:.4;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.picker-focus .picker-selection-single::after{content:'\e603'}.picker-focus.picker-loading .picker-selection-single::after{display:inline-block;content:'\e97c';-webkit-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}.picker-selection-remove{position:absolute;top:0;right:0;width:20px;height:20px;text-align:center;cursor:pointer;opacity:.2}.picker-selection-remove:before{font-family:ZenIcon;font-size:14px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;text-shadow:0 1px 0 #fff;text-transform:none;content:'\d7';speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.picker-selection-remove:hover{opacity:.5}.picker-single .picker-selection-remove{top:5px;right:20px}.picker-no-value .picker-selection-remove,.picker-single.picker-focus .picker-selection-remove{display:none}.picker-search{color:transparent;background:0 0;border:none}.picker-search:focus{color:inherit;outline:0}.picker-single .picker-search{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;padding:5px 8px}.picker-multi .picker-search{display:inline-block;width:10px;min-width:10px;max-width:100%;padding:0 2px;margin:2px 0}.picker-placeholder{position:absolute;top:5px;right:20px;left:8px;z-index:0;display:none;overflow:hidden;color:grey;text-overflow:ellipsis;white-space:nowrap}.picker-no-value .picker-placeholder{display:block}.picker-drop-menu{position:fixed;z-index:1200;display:none;min-width:100px;background-color:#fff;border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);opacity:0}.picker-drop-menu.picker-drop-show{display:block}.picker-drop-menu.picker-has-message{min-height:22px;padding-bottom:22px}.picker-option-list{padding:5px 0;margin:0;overflow-y:auto}.picker-no-options .picker-option-list{display:none}.picker-option{display:block;min-height:30px;padding:5px 10px;overflow:hidden;clear:both;font-weight:400;line-height:1.53846154;color:#353535;text-overflow:ellipsis;white-space:nowrap;-webkit-transition:none;-o-transition:none;transition:none}.picker-single .picker-option.picker-option-selected{color:#3280fc;background:#ebf2f9}.picker-option:focus,.picker-option:hover{text-decoration:none}.picker-option.picker-option-active,.picker-single .picker-option.picker-option-selected.picker-option-active{color:#fff;background-color:#3280fc}.picker-multi .picker-option.picker-option-selected,.picker-multi .picker-option.picker-option-selected.picker-option-active{color:#ccc;cursor:not-allowed;background-color:#fff}.picker-option-text-matched{position:relative;color:#3280fc}.picker-option-text-matched:before{position:absolute;right:0;bottom:-4px;left:0;display:block;height:3px;content:' ';background-color:#3280fc;border-radius:2px;opacity:.5}.picker-option:hover .picker-option-text-matched{color:#fff}.picker-option:hover .picker-option-text-matched:before{background-color:#fff}.picker-message{position:absolute;right:0;bottom:0;left:0;display:none;height:22px;padding:2px 5px;overflow:hidden;font-size:12px;color:grey;text-overflow:ellipsis;white-space:nowrap;background-color:#f1f1f1}.picker-has-message .picker-message{display:block}.picker-message[data-type=danger]{color:#ea644a} \ No newline at end of file + */ +.picker{min-height:32px;background-color:#eee}.picker:not(.picker-ready)>*{display:none}.picker-selections{position:relative;min-height:32px;color:#222;background-color:#fff;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.picker-focus .picker-selections{border-color:#145ccd;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(20,92,205,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(20,92,205,.6)}.picker-multi .picker-selections{padding:3px}.picker-multi.picker-focus .picker-selections:before{position:absolute;right:0;bottom:8px;display:block;width:24px;height:14px;font-family:ZenIcon;font-size:14px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;text-align:center;text-transform:none;content:'\e603';opacity:.4;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.picker-multi.picker-focus.picker-loading .picker-selections::before{display:inline-block;content:'\e97c';-webkit-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}.picker-multi .picker-selection{position:relative;display:inline-block;padding:0 20px 0 5px;margin:2px;line-height:18px;background-color:#f1f1f1;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ddd;border-radius:3px;-webkit-box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05)}.picker-selection-single{max-width:100%;padding:5px 20px 5px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-focus .picker-selection-single .picker-selection-text{display:none}.picker-selection-single:after{position:absolute;top:7px;right:0;display:block;width:24px;height:14px;font-family:ZenIcon;font-size:14px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;text-align:center;text-transform:none;content:'\e6b8';opacity:.4;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.picker-focus .picker-selection-single::after{content:'\e603'}.picker-focus.picker-loading .picker-selection-single::after{display:inline-block;content:'\e97c';-webkit-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}.picker-selection-remove{position:absolute;top:0;right:0;width:20px;height:20px;text-align:center;cursor:pointer;opacity:.2}.picker-selection-remove:before{font-family:ZenIcon;font-size:14px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;text-shadow:0 1px 0 #fff;text-transform:none;content:'\d7';speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.picker-selection-remove:hover{opacity:.5}.picker-single .picker-selection-remove{top:5px;right:20px}.picker-no-value .picker-selection-remove,.picker-single.picker-focus .picker-selection-remove{display:none}.picker-search{color:transparent;background:0 0;border:none}.picker-search:focus{color:inherit;outline:0}.picker-single .picker-search{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;padding:5px 8px}.picker-multi .picker-search{display:inline-block;width:10px;min-width:10px;max-width:100%;padding:0 2px;margin:2px 0}.picker-placeholder{position:absolute;top:5px;right:20px;left:8px;z-index:0;display:none;overflow:hidden;color:grey;text-overflow:ellipsis;white-space:nowrap}.picker-no-value .picker-placeholder{display:block}.picker-drop-menu{position:fixed;z-index:1200;display:none;min-width:100px;background-color:#fff;border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);opacity:0}.picker-drop-menu.picker-drop-show{display:block}.picker-drop-menu.picker-has-message{min-height:22px;padding-bottom:22px}.picker-option-list{padding:5px 0;margin:0;overflow-y:auto}.picker-no-options .picker-option-list{display:none}.picker-option{display:block;min-height:30px;padding:5px 10px;overflow:hidden;clear:both;font-weight:400;line-height:1.53846154;color:#353535;text-overflow:ellipsis;white-space:nowrap;-webkit-transition:none;-o-transition:none;transition:none}.picker-single .picker-option.picker-option-selected{color:#3280fc;background:#ebf2f9}.picker-option:focus,.picker-option:hover{text-decoration:none}.picker-option.picker-option-active,.picker-single .picker-option.picker-option-selected.picker-option-active{color:#fff;background-color:#3280fc}.picker-multi .picker-option.picker-option-selected,.picker-multi .picker-option.picker-option-selected.picker-option-active{color:#ccc;cursor:not-allowed;background-color:#fff}.picker-option-text-matched{position:relative;color:#3280fc}.picker-option-text-matched:before{position:absolute;right:0;bottom:-4px;left:0;display:block;height:3px;content:' ';background-color:#3280fc;border-radius:2px;opacity:.5}.picker-option:hover .picker-option-text-matched{color:#fff}.picker-option:hover .picker-option-text-matched:before{background-color:#fff}.picker-message{position:absolute;right:0;bottom:0;left:0;display:none;height:22px;padding:2px 5px;overflow:hidden;font-size:12px;color:grey;text-overflow:ellipsis;white-space:nowrap;background-color:#f1f1f1}.picker-has-message .picker-message{display:block}.picker-message[data-type=danger]{color:#ea644a} +.picker-single .picker-selection-remove{z-index:1000;}