Modify user detail of usergroup

pull/530/head
ibuler 2016-08-18 00:47:34 +08:00
parent 824b1c7f6f
commit 279987925a
16 changed files with 357 additions and 311 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -2,9 +2,9 @@
Chosen, a Select Box Enhancer for jQuery and Prototype Chosen, a Select Box Enhancer for jQuery and Prototype
by Patrick Filler for Harvest, http://getharvest.com by Patrick Filler for Harvest, http://getharvest.com
Version 1.6.2 Version 1.1.0
Full source at https://github.com/harvesthq/chosen Full source at https://github.com/harvesthq/chosen
Copyright (c) 2011-2016 Harvest http://getharvest.com Copyright (c) 2011 Harvest http://getharvest.com
MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
This file is generated by `grunt build`, do not edit it by hand. This file is generated by `grunt build`, do not edit it by hand.
@ -12,436 +12,418 @@ This file is generated by `grunt build`, do not edit it by hand.
/* @group Base */ /* @group Base */
.chosen-container { .chosen-container {
position: relative; position: relative;
display: inline-block; display: inline-block;
vertical-align: middle; vertical-align: middle;
font-size: 13px; font-size: 13px;
-webkit-user-select: none; zoom: 1;
-moz-user-select: none; *display: inline;
user-select: none; -webkit-user-select: none;
} -moz-user-select: none;
.chosen-container * { user-select: none;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
} }
.chosen-container .chosen-drop { .chosen-container .chosen-drop {
position: absolute; position: absolute;
top: 100%; top: 100%;
left: -9999px; left: -9999px;
z-index: 1010; z-index: 1010;
width: 100%; -webkit-box-sizing: border-box;
border: 1px solid #aaa; -moz-box-sizing: border-box;
border-top: 0; box-sizing: border-box;
background: #fff; width: 100%;
box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15); border: 1px solid #aaa;
border-top: 0;
background: #fff;
box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
} }
.chosen-container.chosen-with-drop .chosen-drop { .chosen-container.chosen-with-drop .chosen-drop {
left: 0; left: 0;
} }
.chosen-container a { .chosen-container a {
cursor: pointer; cursor: pointer;
}
.chosen-container .search-choice .group-name, .chosen-container .chosen-single .group-name {
margin-right: 4px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
font-weight: normal;
color: #999999;
}
.chosen-container .search-choice .group-name:after, .chosen-container .chosen-single .group-name:after {
content: ":";
padding-left: 2px;
vertical-align: top;
} }
/* @end */ /* @end */
/* @group Single Chosen */ /* @group Single Chosen */
.chosen-container-single .chosen-single { .chosen-container-single .chosen-single {
position: relative; position: relative;
display: block; display: block;
overflow: hidden; overflow: hidden;
padding: 0 0 0 8px; padding: 0 0 0 8px;
height: 25px; height: 23px;
border: 1px solid #aaa; border: 1px solid #aaa;
border-radius: 5px; border-radius: 5px;
background-color: #fff; background-color: #fff;
background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #ffffff), color-stop(50%, #f6f6f6), color-stop(52%, #eeeeee), color-stop(100%, #f4f4f4)); background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #ffffff), color-stop(50%, #f6f6f6), color-stop(52%, #eeeeee), color-stop(100%, #f4f4f4));
background: -webkit-linear-gradient(#ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%); background: -webkit-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
background: -moz-linear-gradient(#ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%); background: -moz-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
background: -o-linear-gradient(#ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%); background: -o-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
background: linear-gradient(#ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%); background: linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
background-clip: padding-box; background-clip: padding-box;
box-shadow: 0 0 3px white inset, 0 1px 1px rgba(0, 0, 0, 0.1); box-shadow: 0 0 3px white inset, 0 1px 1px rgba(0, 0, 0, 0.1);
color: #444; color: #444;
text-decoration: none; text-decoration: none;
white-space: nowrap; white-space: nowrap;
line-height: 24px; line-height: 24px;
} }
.chosen-container-single .chosen-default { .chosen-container-single .chosen-default {
color: #999; color: #999;
} }
.chosen-container-single .chosen-single span { .chosen-container-single .chosen-single span {
display: block; display: block;
overflow: hidden; overflow: hidden;
margin-right: 26px; margin-right: 26px;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
} }
.chosen-container-single .chosen-single-with-deselect span { .chosen-container-single .chosen-single-with-deselect span {
margin-right: 38px; margin-right: 38px;
} }
.chosen-container-single .chosen-single abbr { .chosen-container-single .chosen-single abbr {
position: absolute; position: absolute;
top: 6px; top: 6px;
right: 26px; right: 26px;
display: block; display: block;
width: 12px; width: 12px;
height: 12px; height: 12px;
background: url('../../../../../../../Downloads/chosen_v1.6.2/chosen-sprite.png') -42px 1px no-repeat; background: url('chosen-sprite.png') -42px 1px no-repeat;
font-size: 1px; font-size: 1px;
} }
.chosen-container-single .chosen-single abbr:hover { .chosen-container-single .chosen-single abbr:hover {
background-position: -42px -10px; background-position: -42px -10px;
} }
.chosen-container-single.chosen-disabled .chosen-single abbr:hover { .chosen-container-single.chosen-disabled .chosen-single abbr:hover {
background-position: -42px -10px; background-position: -42px -10px;
} }
.chosen-container-single .chosen-single div { .chosen-container-single .chosen-single div {
position: absolute; position: absolute;
top: 0; top: 0;
right: 0; right: 0;
display: block; display: block;
width: 18px; width: 18px;
height: 100%; height: 100%;
} }
.chosen-container-single .chosen-single div b { .chosen-container-single .chosen-single div b {
display: block; display: block;
width: 100%; width: 100%;
height: 100%; height: 100%;
background: url('../../../../../../../Downloads/chosen_v1.6.2/chosen-sprite.png') no-repeat 0px 2px; background: url('chosen-sprite.png') no-repeat 0px 2px;
} }
.chosen-container-single .chosen-search { .chosen-container-single .chosen-search {
position: relative; position: relative;
z-index: 1010; z-index: 1010;
margin: 0; margin: 0;
padding: 3px 4px; padding: 3px 4px;
white-space: nowrap; white-space: nowrap;
} }
.chosen-container-single .chosen-search input[type="text"] { .chosen-container-single .chosen-search input[type="text"] {
margin: 1px 0; -webkit-box-sizing: border-box;
padding: 4px 20px 4px 5px; -moz-box-sizing: border-box;
width: 100%; box-sizing: border-box;
height: auto; margin: 1px 0;
outline: 0; padding: 4px 20px 4px 5px;
border: 1px solid #aaa; width: 100%;
background: white url('../../../../../../../Downloads/chosen_v1.6.2/chosen-sprite.png') no-repeat 100% -20px; height: auto;
background: url('../../../../../../../Downloads/chosen_v1.6.2/chosen-sprite.png') no-repeat 100% -20px; outline: 0;
font-size: 1em; border: 1px solid #aaa;
font-family: sans-serif; background: white url('chosen-sprite.png') no-repeat 100% -20px;
line-height: normal; background: url('chosen-sprite.png') no-repeat 100% -20px;
border-radius: 0; font-size: 1em;
font-family: sans-serif;
line-height: normal;
border-radius: 0;
} }
.chosen-container-single .chosen-drop { .chosen-container-single .chosen-drop {
margin-top: -1px; margin-top: -1px;
border-radius: 0 0 4px 4px; border-radius: 0 0 4px 4px;
background-clip: padding-box; background-clip: padding-box;
} }
.chosen-container-single.chosen-container-single-nosearch .chosen-search { .chosen-container-single.chosen-container-single-nosearch .chosen-search {
position: absolute; position: absolute;
left: -9999px; left: -9999px;
} }
/* @end */ /* @end */
/* @group Results */ /* @group Results */
.chosen-container .chosen-results { .chosen-container .chosen-results {
color: #444; position: relative;
position: relative; overflow-x: hidden;
overflow-x: hidden; overflow-y: auto;
overflow-y: auto; margin: 0 4px 4px 0;
margin: 0 4px 4px 0; padding: 0 0 0 4px;
padding: 0 0 0 4px; max-height: 240px;
max-height: 240px; -webkit-overflow-scrolling: touch;
-webkit-overflow-scrolling: touch;
} }
.chosen-container .chosen-results li { .chosen-container .chosen-results li {
display: none; display: none;
margin: 0; margin: 0;
padding: 5px 6px; padding: 5px 6px;
list-style: none; list-style: none;
line-height: 15px; line-height: 15px;
word-wrap: break-word; -webkit-touch-callout: none;
-webkit-touch-callout: none;
} }
.chosen-container .chosen-results li.active-result { .chosen-container .chosen-results li.active-result {
display: list-item; display: list-item;
cursor: pointer; cursor: pointer;
} }
.chosen-container .chosen-results li.disabled-result { .chosen-container .chosen-results li.disabled-result {
display: list-item; display: list-item;
color: #ccc; color: #ccc;
cursor: default; cursor: default;
} }
.chosen-container .chosen-results li.highlighted { .chosen-container .chosen-results li.highlighted {
background-color: #3875d7; background-color: #3875d7;
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #3875d7), color-stop(90%, #2a62bc)); background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #3875d7), color-stop(90%, #2a62bc));
background-image: -webkit-linear-gradient(#3875d7 20%, #2a62bc 90%); background-image: -webkit-linear-gradient(#3875d7 20%, #2a62bc 90%);
background-image: -moz-linear-gradient(#3875d7 20%, #2a62bc 90%); background-image: -moz-linear-gradient(#3875d7 20%, #2a62bc 90%);
background-image: -o-linear-gradient(#3875d7 20%, #2a62bc 90%); background-image: -o-linear-gradient(#3875d7 20%, #2a62bc 90%);
background-image: linear-gradient(#3875d7 20%, #2a62bc 90%); background-image: linear-gradient(#3875d7 20%, #2a62bc 90%);
color: #fff; color: #fff;
} }
.chosen-container .chosen-results li.no-results { .chosen-container .chosen-results li.no-results {
color: #777; display: list-item;
display: list-item; background: #f4f4f4;
background: #f4f4f4;
} }
.chosen-container .chosen-results li.group-result { .chosen-container .chosen-results li.group-result {
display: list-item; display: list-item;
font-weight: bold; font-weight: bold;
cursor: default; cursor: default;
} }
.chosen-container .chosen-results li.group-option { .chosen-container .chosen-results li.group-option {
padding-left: 15px; padding-left: 15px;
} }
.chosen-container .chosen-results li em { .chosen-container .chosen-results li em {
font-style: normal; font-style: normal;
text-decoration: underline; text-decoration: underline;
} }
/* @end */ /* @end */
/* @group Multi Chosen */ /* @group Multi Chosen */
.chosen-container-multi .chosen-choices { .chosen-container-multi .chosen-choices {
position: relative; -moz-box-sizing: border-box;
overflow: hidden; background-color: #FFFFFF;
margin: 0; border: 1px solid #CBD5DD;
padding: 0 5px; border-radius: 2px;
width: 100%; cursor: text;
height: auto; height: auto !important;
border: 1px solid #aaa; margin: 0;
background-color: #fff; min-height: 30px;
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff)); overflow: hidden;
background-image: -webkit-linear-gradient(#eeeeee 1%, #ffffff 15%); padding: 2px;
background-image: -moz-linear-gradient(#eeeeee 1%, #ffffff 15%); position: relative;
background-image: -o-linear-gradient(#eeeeee 1%, #ffffff 15%); width: 100%;
background-image: linear-gradient(#eeeeee 1%, #ffffff 15%);
cursor: text;
} }
.chosen-container-multi .chosen-choices li { .chosen-container-multi .chosen-choices li {
float: left; float: left;
list-style: none; list-style: none;
} }
.chosen-container-multi .chosen-choices li.search-field { .chosen-container-multi .chosen-choices li.search-field {
margin: 0; margin: 0;
padding: 0; padding: 0;
white-space: nowrap; white-space: nowrap;
} }
.chosen-container-multi .chosen-choices li.search-field input[type="text"] { .chosen-container-multi .chosen-choices li.search-field input[type="text"] {
margin: 1px 0; margin: 1px 0;
padding: 0; padding: 5px;
height: 25px; height: 25px;
outline: 0; outline: 0;
border: 0 !important; border: 0 !important;
background: transparent !important; background: transparent !important;
box-shadow: none; box-shadow: none;
color: #999; color: #666;
font-size: 100%; font-size: 100%;
font-family: sans-serif; font-family: sans-serif;
line-height: normal; line-height: normal;
border-radius: 0; border-radius: 0;
}
.chosen-container-multi .chosen-choices li.search-field .default {
color: #999;
} }
.chosen-container-multi .chosen-choices li.search-choice { .chosen-container-multi .chosen-choices li.search-choice {
position: relative; position: relative;
margin: 3px 5px 3px 0; margin: 3px 0 3px 5px;
padding: 3px 20px 3px 5px; padding: 3px 20px 3px 5px;
border: 1px solid #aaa; border: 1px solid #aaa;
max-width: 100%; border-radius: 3px;
border-radius: 3px; background-color: #e4e4e4;
background-color: #eeeeee; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee)); background-image: -webkit-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-image: -webkit-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); background-image: -moz-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-image: -moz-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); background-image: -o-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-image: -o-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); background-clip: padding-box;
background-size: 100% 19px; box-shadow: 0 0 2px white inset, 0 1px 0 rgba(0, 0, 0, 0.05);
background-repeat: repeat-x; color: #333;
background-clip: padding-box; line-height: 13px;
box-shadow: 0 0 2px white inset, 0 1px 0 rgba(0, 0, 0, 0.05); cursor: default;
color: #333;
line-height: 13px;
cursor: default;
}
.chosen-container-multi .chosen-choices li.search-choice span {
word-wrap: break-word;
} }
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close { .chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
position: absolute; position: absolute;
top: 4px; top: 4px;
right: 3px; right: 3px;
display: block; display: block;
width: 12px; width: 12px;
height: 12px; height: 12px;
background: url('../../../../../../../Downloads/chosen_v1.6.2/chosen-sprite.png') -42px 1px no-repeat; background: url('chosen-sprite.png') -42px 1px no-repeat;
font-size: 1px; font-size: 1px;
} }
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover { .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover {
background-position: -42px -10px; background-position: -42px -10px;
} }
.chosen-container-multi .chosen-choices li.search-choice-disabled { .chosen-container-multi .chosen-choices li.search-choice-disabled {
padding-right: 5px; padding-right: 5px;
border: 1px solid #ccc; border: 1px solid #ccc;
background-color: #e4e4e4; background-color: #e4e4e4;
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee)); background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
background-image: -webkit-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-image: -moz-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-image: -o-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%); background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
color: #666; color: #666;
} }
.chosen-container-multi .chosen-choices li.search-choice-focus { .chosen-container-multi .chosen-choices li.search-choice-focus {
background: #d4d4d4; background: #d4d4d4;
} }
.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close { .chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close {
background-position: -42px -10px; background-position: -42px -10px;
} }
.chosen-container-multi .chosen-results { .chosen-container-multi .chosen-results {
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
.chosen-container-multi .chosen-drop .result-selected { .chosen-container-multi .chosen-drop .result-selected {
display: list-item; display: list-item;
color: #ccc; color: #ccc;
cursor: default; cursor: default;
} }
/* @end */ /* @end */
/* @group Active */ /* @group Active */
.chosen-container-active .chosen-single { .chosen-container-active .chosen-single {
border: 1px solid #5897fb; border: 1px solid #5897fb;
box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
} }
.chosen-container-active.chosen-with-drop .chosen-single { .chosen-container-active.chosen-with-drop .chosen-single {
border: 1px solid #aaa; border: 1px solid #aaa;
-moz-border-radius-bottomright: 0; -moz-border-radius-bottomright: 0;
border-bottom-right-radius: 0; border-bottom-right-radius: 0;
-moz-border-radius-bottomleft: 0; -moz-border-radius-bottomleft: 0;
border-bottom-left-radius: 0; border-bottom-left-radius: 0;
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #eeeeee), color-stop(80%, #ffffff)); background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #eeeeee), color-stop(80%, #ffffff));
background-image: -webkit-linear-gradient(#eeeeee 20%, #ffffff 80%); background-image: -webkit-linear-gradient(#eeeeee 20%, #ffffff 80%);
background-image: -moz-linear-gradient(#eeeeee 20%, #ffffff 80%); background-image: -moz-linear-gradient(#eeeeee 20%, #ffffff 80%);
background-image: -o-linear-gradient(#eeeeee 20%, #ffffff 80%); background-image: -o-linear-gradient(#eeeeee 20%, #ffffff 80%);
background-image: linear-gradient(#eeeeee 20%, #ffffff 80%); background-image: linear-gradient(#eeeeee 20%, #ffffff 80%);
box-shadow: 0 1px 0 #fff inset; box-shadow: 0 1px 0 #fff inset;
} }
.chosen-container-active.chosen-with-drop .chosen-single div { .chosen-container-active.chosen-with-drop .chosen-single div {
border-left: none; border-left: none;
background: transparent; background: transparent;
} }
.chosen-container-active.chosen-with-drop .chosen-single div b { .chosen-container-active.chosen-with-drop .chosen-single div b {
background-position: -18px 2px; background-position: -18px 2px;
} }
.chosen-container-active .chosen-choices { .chosen-container-active .chosen-choices {
border: 1px solid #5897fb; border: 1px solid #5897fb;
box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
} }
.chosen-container-active .chosen-choices li.search-field input[type="text"] { .chosen-container-active .chosen-choices li.search-field input[type="text"] {
color: #222 !important; color: #111 !important;
} }
/* @end */ /* @end */
/* @group Disabled Support */ /* @group Disabled Support */
.chosen-disabled { .chosen-disabled {
opacity: 0.5 !important; opacity: 0.5 !important;
cursor: default; cursor: default;
} }
.chosen-disabled .chosen-single { .chosen-disabled .chosen-single {
cursor: default; cursor: default;
} }
.chosen-disabled .chosen-choices .search-choice .search-choice-close { .chosen-disabled .chosen-choices .search-choice .search-choice-close {
cursor: default; cursor: default;
} }
/* @end */ /* @end */
/* @group Right to Left */ /* @group Right to Left */
.chosen-rtl { .chosen-rtl {
text-align: right; text-align: right;
} }
.chosen-rtl .chosen-single { .chosen-rtl .chosen-single {
overflow: visible; overflow: visible;
padding: 0 8px 0 0; padding: 0 8px 0 0;
} }
.chosen-rtl .chosen-single span { .chosen-rtl .chosen-single span {
margin-right: 0; margin-right: 0;
margin-left: 26px; margin-left: 26px;
direction: rtl; direction: rtl;
} }
.chosen-rtl .chosen-single-with-deselect span { .chosen-rtl .chosen-single-with-deselect span {
margin-left: 38px; margin-left: 38px;
} }
.chosen-rtl .chosen-single div { .chosen-rtl .chosen-single div {
right: auto; right: auto;
left: 3px; left: 3px;
} }
.chosen-rtl .chosen-single abbr { .chosen-rtl .chosen-single abbr {
right: auto; right: auto;
left: 26px; left: 26px;
} }
.chosen-rtl .chosen-choices li { .chosen-rtl .chosen-choices li {
float: right; float: right;
} }
.chosen-rtl .chosen-choices li.search-field input[type="text"] { .chosen-rtl .chosen-choices li.search-field input[type="text"] {
direction: rtl; direction: rtl;
} }
.chosen-rtl .chosen-choices li.search-choice { .chosen-rtl .chosen-choices li.search-choice {
margin: 3px 5px 3px 0; margin: 3px 5px 3px 0;
padding: 3px 5px 3px 19px; padding: 3px 5px 3px 19px;
} }
.chosen-rtl .chosen-choices li.search-choice .search-choice-close { .chosen-rtl .chosen-choices li.search-choice .search-choice-close {
right: auto; right: auto;
left: 4px; left: 4px;
} }
.chosen-rtl.chosen-container-single-nosearch .chosen-search, .chosen-rtl.chosen-container-single-nosearch .chosen-search,
.chosen-rtl .chosen-drop { .chosen-rtl .chosen-drop {
left: 9999px; left: 9999px;
} }
.chosen-rtl.chosen-container-single .chosen-results { .chosen-rtl.chosen-container-single .chosen-results {
margin: 0 0 4px 4px; margin: 0 0 4px 4px;
padding: 0 4px 0 0; padding: 0 4px 0 0;
} }
.chosen-rtl .chosen-results li.group-option { .chosen-rtl .chosen-results li.group-option {
padding-right: 15px; padding-right: 15px;
padding-left: 0; padding-left: 0;
} }
.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div { .chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div {
border-right: none; border-right: none;
} }
.chosen-rtl .chosen-search input[type="text"] { .chosen-rtl .chosen-search input[type="text"] {
padding: 4px 5px 4px 20px; padding: 4px 5px 4px 20px;
background: white url('../../../../../../../Downloads/chosen_v1.6.2/chosen-sprite.png') no-repeat -30px -20px; background: white url('chosen-sprite.png') no-repeat -30px -20px;
background: url('../../../../../../../Downloads/chosen_v1.6.2/chosen-sprite.png') no-repeat -30px -20px; background: url('chosen-sprite.png') no-repeat -30px -20px;
direction: rtl; direction: rtl;
} }
.chosen-rtl.chosen-container-single .chosen-single div b { .chosen-rtl.chosen-container-single .chosen-single div b {
background-position: 6px 2px; background-position: 6px 2px;
} }
.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b { .chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b {
background-position: -12px 2px; background-position: -12px 2px;
} }
/* @end */ /* @end */
/* @group Retina compatibility */ /* @group Retina compatibility */
@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi), only screen and (min-resolution: 1.5dppx) { @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-resolution: 144dpi) {
.chosen-rtl .chosen-search input[type="text"], .chosen-rtl .chosen-search input[type="text"],
.chosen-container-single .chosen-single abbr, .chosen-container-single .chosen-single abbr,
.chosen-container-single .chosen-single div b, .chosen-container-single .chosen-single div b,
.chosen-container-single .chosen-search input[type="text"], .chosen-container-single .chosen-search input[type="text"],
.chosen-container-multi .chosen-choices .search-choice .search-choice-close, .chosen-container-multi .chosen-choices .search-choice .search-choice-close,
.chosen-container .chosen-results-scroll-down span, .chosen-container .chosen-results-scroll-down span,
.chosen-container .chosen-results-scroll-up span { .chosen-container .chosen-results-scroll-up span {
background-image: url('../../../../../../../Downloads/chosen_v1.6.2/chosen-sprite@2x.png') !important; background-image: url('chosen-sprite@2x.png') !important;
background-size: 52px 37px !important; background-size: 52px 37px !important;
background-repeat: no-repeat !important; background-repeat: no-repeat !important;
} }
} }
/* @end */ /* @end */

View File

@ -981,6 +981,22 @@ button.dim:active:before {
padding: 3px 20px 3px 5px; padding: 3px 20px 3px 5px;
position: relative; position: relative;
} }
.chosen-container .chosen-results li.highlighted {
background-color: #1ab394;
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #1ab394), color-stop(90%, #1ab394));
/*background-image: -webkit-linear-gradient(#1ab394 20%, #2a62bc 100%);*/
/*background-image: -moz-linear-gradient(#1ab394 20%, #2a62bc 100%);*/
/*background-image: -o-linear-gradient(#1ab394 20%, #2a62bc 100%);*/
/*background-image: linear-gradient(#1ab394 20%, #2a62bc 100%);*/
color: #fff;
}
.chosen-container-active .chosen-choices {
border: 1px solid #1ab394;
box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
}
/* PAGINATIN */ /* PAGINATIN */
.pagination > .active > a, .pagination > .active > a,
.pagination > .active > span, .pagination > .active > span,

View File

@ -5,7 +5,7 @@
<link href="{% static "css/font-awesome.css" %}" rel="stylesheet"> <link href="{% static "css/font-awesome.css" %}" rel="stylesheet">
{#<link href="{% static "css/plugins/iCheck/custom.css" %}" rel="stylesheet">#} {#<link href="{% static "css/plugins/iCheck/custom.css" %}" rel="stylesheet">#}
{#<link href="{% static "css/animate.css" %}" rel="stylesheet">#} {#<link href="{% static "css/animate.css" %}" rel="stylesheet">#}
<link href="{% static "css/style.css" %}" rel="stylesheet">
{#<link href="{% static "css/colorbox.css" %}" rel="stylesheet">#} {#<link href="{% static "css/colorbox.css" %}" rel="stylesheet">#}
<link href="{% static "css/plugins/vaildator/jquery.validator.css" %}" rel="stylesheet"> <link href="{% static "css/plugins/vaildator/jquery.validator.css" %}" rel="stylesheet">
{#<link href="{% static "css/magnific/magnific-popup.css" %}" rel="stylesheet">#} {#<link href="{% static "css/magnific/magnific-popup.css" %}" rel="stylesheet">#}
@ -15,7 +15,6 @@
<!-- scripts --> <!-- scripts -->
<script src="{% static "js/jquery-2.1.1.js" %}"></script> <script src="{% static "js/jquery-2.1.1.js" %}"></script>
<script src="{% static "js/bootstrap.min.js" %}"></script> <script src="{% static "js/bootstrap.min.js" %}"></script>
<script src="{% static "js/base.js" %}"></script>
<!-- validator js --> <!-- validator js -->
{#<script src="{% static "js/validator/jquery.validator.js" %}"></script>#} {#<script src="{% static "js/validator/jquery.validator.js" %}"></script>#}

View File

@ -11,6 +11,8 @@
<link rel="shortcut icon" href={% static "img/facio.ico" %} type="image/x-icon"> <link rel="shortcut icon" href={% static "img/facio.ico" %} type="image/x-icon">
{% include '_head_css_js.html' %} {% include '_head_css_js.html' %}
{% block custom_head_css_js %} {% endblock %} {% block custom_head_css_js %} {% endblock %}
<link href="{% static "css/style.css" %}" rel="stylesheet">
<script src="{% static "js/base.js" %}"></script>
</head> </head>
<body> <body>
@ -25,5 +27,5 @@
</body> </body>
{% include '_foot_js.html' %} {% include '_foot_js.html' %}
{% block custom_footer_js %} {% endblock %} {% block custom_foot_js %} {% endblock %}
</html> </html>

View File

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.10 on 2016-08-17 15:03
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('users', '0007_auto_20160817_0032'),
]
operations = [
migrations.AlterField(
model_name='user',
name='avatar',
field=models.ImageField(upload_to='avatar', verbose_name='\u5934\u50cf'),
),
]

View File

@ -60,7 +60,7 @@ class User(AbstractUser):
username = models.CharField(max_length=20, unique=True, verbose_name='用户名', help_text='* required') username = models.CharField(max_length=20, unique=True, verbose_name='用户名', help_text='* required')
name = models.CharField(max_length=20, verbose_name='姓名', help_text='* required') name = models.CharField(max_length=20, verbose_name='姓名', help_text='* required')
email = models.EmailField(max_length=30, unique=True, verbose_name='邮件', help_text='* required') email = models.EmailField(max_length=30, unique=True, verbose_name='邮件', help_text='* required')
groups = models.ManyToManyField(UserGroup, verbose_name='用户组') groups = models.ManyToManyField(UserGroup, verbose_name='用户组', help_text='* required')
avatar = models.ImageField(upload_to="avatar", verbose_name='头像') avatar = models.ImageField(upload_to="avatar", verbose_name='头像')
wechat = models.CharField(max_length=30, blank=True, verbose_name='微信') wechat = models.CharField(max_length=30, blank=True, verbose_name='微信')
phone = models.CharField(max_length=20, blank=True, verbose_name='手机号') phone = models.CharField(max_length=20, blank=True, verbose_name='手机号')

View File

@ -49,7 +49,6 @@
</div> </div>
<div class="hr-line-dashed"></div> <div class="hr-line-dashed"></div>
<h3>信息</h3> <h3>信息</h3>
{{ form.avatar|bootstrap_horizontal }}
{{ form.phone|bootstrap_horizontal }} {{ form.phone|bootstrap_horizontal }}
{{ form.wechat|bootstrap_horizontal }} {{ form.wechat|bootstrap_horizontal }}
{{ form.comment|bootstrap_horizontal }} {{ form.comment|bootstrap_horizontal }}
@ -67,7 +66,7 @@
</div> </div>
</div> </div>
{% endblock %} {% endblock %}
{% block custom_footer_js %} {% block custom_foot_js %}
<script type="text/javascript"> <script type="text/javascript">
{#$(document).ready(function() {#} {#$(document).ready(function() {#}
{# var config = {#} {# var config = {#}

View File

@ -3,6 +3,10 @@
{% load users_tags %} {% load users_tags %}
{% load static %} {% load static %}
{% block custom_head_css_js %}
<link href="{% static "css/plugins/chosen/chosen.css" %}" rel="stylesheet">
<script src="{% static "js/plugins/chosen/chosen.jquery.min.js" %}"></script>
{% endblock %}
{% block content %} {% block content %}
<div class="wrapper wrapper-content animated fadeInRight"> <div class="wrapper wrapper-content animated fadeInRight">
<div class="row"> <div class="row">
@ -177,28 +181,38 @@
</div> </div>
<div class="ibox float-e-margins"> <div class="ibox float-e-margins">
<div class="ibox-title bg-primary" style="background: #23c6c8"> <div class="ibox-title bg-primary" style="background: #1ab394">
<span style="color: white">用户组</span> <span style="color: white">用户组</span>
<div class="ibox-tools"> <div class="ibox-tools">
</div> </div>
</div> </div>
<div class="ibox-content info-panel"> <div class="ibox-content primary-panel">
<table class="table"> <table class="table">
<tbody> <tbody>
<tr> <form>
<td> <tr>
<td colspan="2" class="no-borders">
</td> <select data-placeholder="选择用户组" class="chosen-select" style="width: 100%" multiple="" tabindex="4">
{% for group in groups %}
<option value="{{ group.id }}">{{ group.name }}</option>
{% endfor %}
</select>
</td>
</tr> </tr>
<tr>
<td colspan="2" class="no-borders">
<button type="button" class="btn btn-primary btn-small">添加到用户组</button>
</td>
</tr>
</form>
{% for group in user.groups.all %}
<tr> <tr>
<td width="20%">姓名:</td> <td width="40%"><b>{{ group.name }}</b></td>
<td>{{ user.name }}</td> <td></td>
</tr>
<tr>
<td>描述:</td>
<td>{{ user.comment }}</td>
</tr> </tr>
{% endfor %}
</tbody> </tbody>
</table> </table>
</div> </div>
@ -212,9 +226,19 @@
</div> </div>
{% endblock %} {% endblock %}
{% block custom_footer_js %} {% block custom_foot_js %}
<script> <script>
$(document).ready(function () { $(document).ready(function () {
var config = {
'.chosen-select' : {},
'.chosen-select-deselect' : {allow_single_deselect:true},
'.chosen-select-no-single' : {disable_search_threshold:10},
'.chosen-select-no-results': {no_results_text:'Oops, nothing found!'},
'.chosen-select-width' : {width:"95%"}
};
for (var selector in config) {
$(selector).chosen(config[selector]);
}
}) })
</script> </script>
{% endblock %} {% endblock %}

View File

@ -1,12 +1,12 @@
# ~*~ coding: utf-8 ~*~ # ~*~ coding: utf-8 ~*~
import os
import urllib import urllib
import hashlib import hashlib
from django import template from django import template
from django.utils import timezone from django.utils import timezone
from django.conf import settings from django.conf import settings
from django.conf.urls.static import static
register = template.Library() register = template.Library()
@ -26,13 +26,16 @@ def is_expired(datetime):
@register.filter @register.filter
def user_avatar_url(user, size=64): def user_avatar_url(user):
if user.avatar: if user.avatar:
return user.avatar.url return user.avatar.url
gravatar_url = "https://www.gravatar.com/avatar/" \ else:
+ hashlib.md5(user.email.lower()).hexdigest() + "?" default_dir = os.path.join(settings.MEDIA_ROOT, 'avatar', 'default')
gravatar_url += urllib.urlencode({'d': 'identicon', 's': str(size)}) if os.path.isdir(default_dir):
return gravatar_url default_avatar_list = os.listdir(default_dir)
default_avatar = default_avatar_list[len(user.username) % len(default_avatar_list)]
return os.path.join(settings.MEDIA_URL, 'avatar', 'default', default_avatar)
return 'https://www.gravatar.com/avatar/c6812ab450230979465d7bf288eadce2a?s=120&d=identicon'

View File

@ -87,5 +87,6 @@ class UserDetailView(DetailView):
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(UserDetailView, self).get_context_data(**kwargs) context = super(UserDetailView, self).get_context_data(**kwargs)
context.update({'path1': '用户管理', 'path2': '用户详情', 'title': '用户详情'}) groups = [group for group in UserGroup.objects.iterator() if group not in self.object.groups.iterator()]
context.update({'path1': '用户管理', 'path2': '用户详情', 'title': '用户详情', 'groups': groups})
return context return context