From e75d33439accc97e2464b03606162609efa58920 Mon Sep 17 00:00:00 2001 From: "xiaokong1937@gmail.com" Date: Mon, 5 Sep 2016 21:38:21 +0800 Subject: [PATCH 01/50] fix captcha not valid bug of login view; use django's default login and logout view to enhance robustness --- apps/templates/_header_bar.html | 8 ++- apps/templates/_user_profile.html | 4 +- apps/users/forms.py | 20 +++++--- apps/users/templates/users/login.html | 10 ++-- apps/users/urls.py | 44 +++++++++++++---- apps/users/views.py | 71 +++++---------------------- 6 files changed, 70 insertions(+), 87 deletions(-) diff --git a/apps/templates/_header_bar.html b/apps/templates/_header_bar.html index 66699be53..71bd0e95e 100644 --- a/apps/templates/_header_bar.html +++ b/apps/templates/_header_bar.html @@ -19,9 +19,15 @@
  • + {% if user.is_authenticated %} - Log out + {% trans 'Log out' %} + {% else %} + + {% trans 'Log in' %} + + {% endif %}
  • diff --git a/apps/templates/_user_profile.html b/apps/templates/_user_profile.html index 13d272d90..d47ba6537 100644 --- a/apps/templates/_user_profile.html +++ b/apps/templates/_user_profile.html @@ -8,10 +8,10 @@ - {{ request.user.name }} + {{ user.name }} - {{ request.user.get_role_display | default:"{% trans 'User' %}" }} + {{ user.get_role_display | default:_('User') }} diff --git a/apps/users/forms.py b/apps/users/forms.py index 88b6ccd93..3f2dcfa98 100644 --- a/apps/users/forms.py +++ b/apps/users/forms.py @@ -1,20 +1,24 @@ # ~*~ coding: utf-8 ~*~ -from django.forms import ModelForm from django import forms -from captcha.fields import CaptchaField +from django.contrib.auth.forms import AuthenticationForm from django.utils.translation import gettext_lazy as _ +from captcha.fields import CaptchaField + from .models import User, UserGroup -class UserLoginForm(forms.Form): +class UserLoginForm(AuthenticationForm): username = forms.CharField(label=_('Username'), max_length=100) - password = forms.CharField(label=_('Password'), widget=forms.PasswordInput, max_length=100) + password = forms.CharField( + label=_('Password'), widget=forms.PasswordInput, max_length=100, + strip=False) captcha = CaptchaField() -class UserAddForm(ModelForm): +class UserAddForm(forms.ModelForm): + class Meta: model = User fields = [ @@ -32,7 +36,8 @@ class UserAddForm(ModelForm): } -class UserUpdateForm(ModelForm): +class UserUpdateForm(forms.ModelForm): + class Meta: model = User fields = [ @@ -51,7 +56,8 @@ class UserUpdateForm(ModelForm): } -class UserGroupForm(ModelForm): +class UserGroupForm(forms.ModelForm): + class Meta: model = UserGroup diff --git a/apps/users/templates/users/login.html b/apps/users/templates/users/login.html index b2cc09668..81fd5252e 100644 --- a/apps/users/templates/users/login.html +++ b/apps/users/templates/users/login.html @@ -40,11 +40,10 @@ {% if form.errors %} {% if 'captcha' in form.errors %}

    {% trans 'Captcha invalid' %}

    + {% else %} +

    {{ form.non_field_errors.as_text }}

    {% endif %} {% endif %} - {% if errors %} -

    {{ errors }}

    - {% endif %}
    @@ -57,7 +56,7 @@ - Forgot password? + {% trans 'Forgot password' %}?

    @@ -79,7 +78,4 @@ - - - diff --git a/apps/users/urls.py b/apps/users/urls.py index 27f159f1c..e2b0308e8 100644 --- a/apps/users/urls.py +++ b/apps/users/urls.py @@ -1,37 +1,61 @@ -from django.conf.urls import url, include +from django.conf.urls import url from django.contrib.auth import views as auth_views -from django.urls import reverse_lazy +from django.utils.translation import ugettext as _ import views import api +from users.forms import UserLoginForm + app_name = 'users' urlpatterns = [ - url(r'^login$', views.UserLoginView.as_view(), name='login'), - url(r'^logout$', views.UserLogoutView.as_view(), name='logout'), + url(r'^login$', + auth_views.login, + {'template_name': "users/login.html", + 'authentication_form': UserLoginForm, + 'redirect_authenticated_user': True}, + name='login'), + url(r'^logout$', + auth_views.logout, + { + "template_name": "common/flash_message_standalone.html", + "extra_context": { + 'title': _('Logout success'), + 'messages': _('Logout success, return login page'), + 'redirect_url': '/users/login', + 'auto_redirect': True, + } + }, + name='logout'), url(r'^password/forget$', views.UserForgetPasswordView.as_view(), name='forget-password'), url(r'^password/forget/sendmail-success$', views.UserForgetPasswordSendmailSuccessView.as_view(), name='forget-password-sendmail-success'), url(r'^password/reset$', views.UserResetPasswordView.as_view(), name='reset-password'), - url(r'^password/reset/success$', views.UserResetPasswordSuccessView.as_view(), name='reset-password-success'), + url(r'^password/reset/success$', views.UserResetPasswordSuccessView.as_view(), + name='reset-password-success'), url(r'^user$', views.UserListView.as_view(), name='user-list'), url(r'^user/(?P[0-9]+)$', views.UserDetailView.as_view(), name='user-detail'), url(r'^user/add$', views.UserAddView.as_view(), name='user-add'), url(r'^user/(?P[0-9]+)/edit$', views.UserUpdateView.as_view(), name='user-edit'), url(r'^user/(?P[0-9]+)/delete$', views.UserDeleteView.as_view(), name='user-delete'), url(r'^usergroup$', views.UserGroupListView.as_view(), name='usergroup-list'), - url(r'^usergroup/(?P[0-9]+)$', views.UserGroupDetailView.as_view(), name='usergroup-detail'), + url(r'^usergroup/(?P[0-9]+)$', + views.UserGroupDetailView.as_view(), name='usergroup-detail'), url(r'^usergroup/add/$', views.UserGroupAddView.as_view(), name='usergroup-add'), - url(r'^usergroup/(?P[0-9]+)/edit$', views.UserGroupUpdateView.as_view(), name='usergroup-edit'), - url(r'^usergroup/(?P[0-9]+)/delete$', views.UserGroupDeleteView.as_view(), name='usergroup-delete'), + url(r'^usergroup/(?P[0-9]+)/edit$', + views.UserGroupUpdateView.as_view(), name='usergroup-edit'), + url(r'^usergroup/(?P[0-9]+)/delete$', + views.UserGroupDeleteView.as_view(), name='usergroup-delete'), ] urlpatterns += [ url(r'^v1/users$', api.UserListAddApi.as_view(), name='user-list-api'), - url(r'^v1/users/(?P[0-9]+)$', api.UserDetailDeleteUpdateApi.as_view(), name='user-detail-api'), + url(r'^v1/users/(?P[0-9]+)$', + api.UserDetailDeleteUpdateApi.as_view(), name='user-detail-api'), url(r'^v1/users/(?P[0-9]+)/active$', api.UserActiveApi.as_view(), name='user-active-api'), url(r'^v1/usergroups$', api.UserGroupListAddApi.as_view(), name='usergroup-list-api'), - url(r'^v1/usergroups/(?P[0-9]+)$', api.UserGroupDetailDeleteUpdateApi.as_view(), name='usergroup-detail-api'), + url(r'^v1/usergroups/(?P[0-9]+)$', + api.UserGroupDetailDeleteUpdateApi.as_view(), name='usergroup-detail-api'), ] diff --git a/apps/users/views.py b/apps/users/views.py index 5d61525d8..19245b5f8 100644 --- a/apps/users/views.py +++ b/apps/users/views.py @@ -4,78 +4,28 @@ from __future__ import unicode_literals import logging -from django.shortcuts import get_object_or_404, reverse, render, Http404, redirect +from django.conf import settings +from django.contrib.messages.views import SuccessMessageMixin +from django.db.models import Q +from django.http import HttpResponseRedirect +from django.shortcuts import get_object_or_404, reverse from django.urls import reverse_lazy from django.utils.translation import ugettext as _ -from django.db.models import Q -from django.views.generic.base import View, TemplateView +from django.views.generic.base import TemplateView from django.views.generic.list import ListView -from django.views.generic.edit import CreateView, DeleteView, UpdateView, ProcessFormView, FormView +from django.views.generic.edit import CreateView, DeleteView, UpdateView from django.views.generic.detail import DetailView -from django.contrib.messages.views import SuccessMessageMixin -from django.conf import settings -from django.http import HttpResponseRedirect -from django.contrib.auth import views as auth_view, authenticate, login, logout from common.utils import get_object_or_none from .models import User, UserGroup -from .forms import UserAddForm, UserUpdateForm, UserGroupForm, UserLoginForm -from .utils import AdminUserRequiredMixin, ssh_key_gen, user_add_success_next, send_reset_password_mail +from .forms import UserAddForm, UserUpdateForm, UserGroupForm +from .utils import AdminUserRequiredMixin, user_add_success_next, send_reset_password_mail logger = logging.getLogger('jumpserver.users.views') -class UserLoginView(FormView): - template_name = 'users/login.html' - form_class = UserLoginForm - redirect_field_name = 'next' - - def get(self, request, *args, **kwargs): - if self.request.user.is_staff: - return redirect(request.POST.get(self.redirect_field_name, reverse('index'))) - # Todo: Django have bug, lose context issue: https://github.com/django/django/pull/7202 - # so we jump it and use origin method render_to_response - # return super(UserLoginView, self).get(request, *args, **kwargs) - return self.render_to_response(self.get_context_data(**kwargs)) - - def post(self, request, *args, **kwargs): - form = self.get_form() - if not form.is_valid(): - return self.form_invalid(form) - - username = form['username'].value() - password = form['password'].value() - - user = authenticate(username=username, password=password) - if user is None: - kwargs.update({'errors': _('Username or password invalid')}) - return self.get(request, *args, **kwargs) - - login(request, user) - return redirect(request.GET.get(self.redirect_field_name, reverse('index'))) - - -class UserLogoutView(TemplateView): - template_name = 'common/flash_message_standalone.html' - - def get(self, request, *args, **kwargs): - logout(request) - - return super(UserLogoutView, self).get(request) - - def get_context_data(self, **kwargs): - context = { - 'title': _('Logout success'), - 'messages': _('Logout success, return login page'), - 'redirect_url': reverse('users:login'), - 'auto_redirect': True, - } - kwargs.update(context) - return super(UserLogoutView, self).get_context_data(**kwargs) - - class UserListView(AdminUserRequiredMixin, ListView): model = User paginate_by = settings.CONFIG.DISPLAY_PER_PAGE @@ -166,7 +116,8 @@ class UserDetailView(AdminUserRequiredMixin, DetailView): context_object_name = "user" def get_context_data(self, **kwargs): - groups = [group for group in UserGroup.objects.iterator() if group not in self.object.groups.iterator()] + groups = [ + group for group in UserGroup.objects.iterator() if group not in self.object.groups.iterator()] context = {'app': _('Users'), 'action': _('User detail'), 'groups': groups} kwargs.update(context) return super(UserDetailView, self).get_context_data(**kwargs) From 6aedfb52199ab0dc14ddeb292040cf6dc9ad1928 Mon Sep 17 00:00:00 2001 From: "xiaokong1937@gmail.com" <763691951@qq.com> Date: Mon, 5 Sep 2016 22:20:50 +0800 Subject: [PATCH 02/50] fix small template erros --- apps/users/templates/users/_user.html | 4 ++-- apps/users/templates/users/user_edit.html | 3 ++- apps/users/templates/users/user_list.html | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/apps/users/templates/users/_user.html b/apps/users/templates/users/_user.html index b8acec82c..937b25005 100644 --- a/apps/users/templates/users/_user.html +++ b/apps/users/templates/users/_user.html @@ -14,7 +14,7 @@

    -
    {% trans 'Create user' %}
    +
    {% block user_template_title %}{% trans 'Create user' %}{% endblock %}
    -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/apps/users/templates/users/user_list.html b/apps/users/templates/users/user_list.html index 51fbfa57b..67654b794 100644 --- a/apps/users/templates/users/user_list.html +++ b/apps/users/templates/users/user_list.html @@ -34,7 +34,7 @@ {{ user.groups.all|join_queryset_attr:"name" }} {{ user.name }} - {% if user.is_expired %} + {% if user.is_expired and user.is_active %} {% else %} From 3c6f50b788a5d24953bc5ef8aa54436cf6110db0 Mon Sep 17 00:00:00 2001 From: ibuler Date: Mon, 5 Sep 2016 23:42:10 +0800 Subject: [PATCH 03/50] Modify some bug --- apps/templates/_user_profile.html | 2 +- apps/users/views.py | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/apps/templates/_user_profile.html b/apps/templates/_user_profile.html index d47ba6537..04a146496 100644 --- a/apps/templates/_user_profile.html +++ b/apps/templates/_user_profile.html @@ -11,7 +11,7 @@ {{ user.name }} - {{ user.get_role_display | default:_('User') }} + {{ user.get_role_display | default:{% trans 'User' %} }} diff --git a/apps/users/views.py b/apps/users/views.py index 19245b5f8..2b2ed441d 100644 --- a/apps/users/views.py +++ b/apps/users/views.py @@ -116,8 +116,7 @@ class UserDetailView(AdminUserRequiredMixin, DetailView): context_object_name = "user" def get_context_data(self, **kwargs): - groups = [ - group for group in UserGroup.objects.iterator() if group not in self.object.groups.iterator()] + groups = [group for group in UserGroup.objects.iterator() if group not in self.object.groups.iterator()] context = {'app': _('Users'), 'action': _('User detail'), 'groups': groups} kwargs.update(context) return super(UserDetailView, self).get_context_data(**kwargs) From 8cc09f0e5ae7715f6175b6d59097d890d096f88f Mon Sep 17 00:00:00 2001 From: xiaoyu <763691951@qq.com> Date: Tue, 6 Sep 2016 15:03:37 +0800 Subject: [PATCH 04/50] move login and logout view back to CBV --- apps/templates/_user_profile.html | 2 +- apps/users/urls.py | 24 ++------------ apps/users/views.py | 52 ++++++++++++++++++++++++++++--- 3 files changed, 50 insertions(+), 28 deletions(-) diff --git a/apps/templates/_user_profile.html b/apps/templates/_user_profile.html index 04a146496..d47ba6537 100644 --- a/apps/templates/_user_profile.html +++ b/apps/templates/_user_profile.html @@ -11,7 +11,7 @@ {{ user.name }} - {{ user.get_role_display | default:{% trans 'User' %} }} + {{ user.get_role_display | default:_('User') }} diff --git a/apps/users/urls.py b/apps/users/urls.py index e2b0308e8..d93debd11 100644 --- a/apps/users/urls.py +++ b/apps/users/urls.py @@ -1,33 +1,13 @@ from django.conf.urls import url -from django.contrib.auth import views as auth_views -from django.utils.translation import ugettext as _ import views import api -from users.forms import UserLoginForm - app_name = 'users' urlpatterns = [ - url(r'^login$', - auth_views.login, - {'template_name': "users/login.html", - 'authentication_form': UserLoginForm, - 'redirect_authenticated_user': True}, - name='login'), - url(r'^logout$', - auth_views.logout, - { - "template_name": "common/flash_message_standalone.html", - "extra_context": { - 'title': _('Logout success'), - 'messages': _('Logout success, return login page'), - 'redirect_url': '/users/login', - 'auto_redirect': True, - } - }, - name='logout'), + url(r'^login$', views.UserLoginView.as_view(), name='login'), + url(r'^logout$', views.UserLogoutView.as_view(), name='logout'), url(r'^password/forget$', views.UserForgetPasswordView.as_view(), name='forget-password'), url(r'^password/forget/sendmail-success$', views.UserForgetPasswordSendmailSuccessView.as_view(), name='forget-password-sendmail-success'), diff --git a/apps/users/views.py b/apps/users/views.py index 2b2ed441d..f66af95b2 100644 --- a/apps/users/views.py +++ b/apps/users/views.py @@ -5,27 +5,69 @@ from __future__ import unicode_literals import logging from django.conf import settings +from django.contrib.auth import login as auth_login, logout as auth_logout from django.contrib.messages.views import SuccessMessageMixin from django.db.models import Q from django.http import HttpResponseRedirect -from django.shortcuts import get_object_or_404, reverse -from django.urls import reverse_lazy +from django.shortcuts import get_object_or_404, reverse, redirect +from django.utils.decorators import method_decorator from django.utils.translation import ugettext as _ +from django.urls import reverse_lazy +from django.views.decorators.cache import never_cache +from django.views.decorators.csrf import csrf_protect +from django.views.decorators.debug import sensitive_post_parameters from django.views.generic.base import TemplateView from django.views.generic.list import ListView -from django.views.generic.edit import CreateView, DeleteView, UpdateView +from django.views.generic.edit import CreateView, DeleteView, UpdateView, FormView from django.views.generic.detail import DetailView from common.utils import get_object_or_none from .models import User, UserGroup -from .forms import UserAddForm, UserUpdateForm, UserGroupForm +from .forms import UserAddForm, UserUpdateForm, UserGroupForm, UserLoginForm from .utils import AdminUserRequiredMixin, user_add_success_next, send_reset_password_mail logger = logging.getLogger('jumpserver.users.views') +@method_decorator(sensitive_post_parameters(), name='dispatch') +@method_decorator(csrf_protect, name='dispatch') +@method_decorator(never_cache, name='dispatch') +class UserLoginView(FormView): + template_name = 'users/login.html' + form_class = UserLoginForm + redirect_field_name = 'next' + + def get(self, request, *args, **kwargs): + if request.user.is_staff: + return redirect(request.POST.get(self.redirect_field_name, reverse('index'))) + return self.render_to_response(self.get_context_data(**kwargs)) + + def form_valid(self, form): + auth_login(self.request, form.get_user()) + return redirect(self.request.POST.get(self.redirect_field_name, reverse('index'))) + + +@method_decorator(never_cache, name='dispatch') +class UserLogoutView(TemplateView): + template_name = 'common/flash_message_standalone.html' + + def get(self, request, *args, **kwargs): + auth_logout(request) + return super(UserLogoutView, self).get(request) + + def get_context_data(self, **kwargs): + context = { + 'title': _('Logout success'), + 'messages': _('Logout success, return login page'), + 'redirect_url': reverse('users:login'), + 'auto_redirect': True, + } + kwargs.update(context) + return super(UserLogoutView, self).get_context_data(**kwargs) + + class UserListView(AdminUserRequiredMixin, ListView): model = User paginate_by = settings.CONFIG.DISPLAY_PER_PAGE @@ -56,7 +98,7 @@ class UserAddView(AdminUserRequiredMixin, SuccessMessageMixin, CreateView): form_class = UserAddForm template_name = 'users/user_add.html' success_url = reverse_lazy('users:user-list') - success_message = _('Create user%s success.') + success_message = _('Create user %s success.') def get_context_data(self, **kwargs): context = super(UserAddView, self).get_context_data(**kwargs) From c6f875c5178223e2ccc1448b3c6cb9db14dbb937 Mon Sep 17 00:00:00 2001 From: xiaoyu <763691951@qq.com> Date: Tue, 6 Sep 2016 16:40:44 +0800 Subject: [PATCH 05/50] temp commit --- apps/static/js/plugins/toastr/toastr.min.js | 2 ++ apps/templates/_foot_js.html | 9 +++++---- apps/users/api.py | 10 ++++++---- apps/users/serializers.py | 8 ++++++++ apps/users/templates/users/user_detail.html | 16 +++++++++++++++- apps/users/urls.py | 2 ++ 6 files changed, 38 insertions(+), 9 deletions(-) create mode 100644 apps/static/js/plugins/toastr/toastr.min.js diff --git a/apps/static/js/plugins/toastr/toastr.min.js b/apps/static/js/plugins/toastr/toastr.min.js new file mode 100644 index 000000000..cf70cf63d --- /dev/null +++ b/apps/static/js/plugins/toastr/toastr.min.js @@ -0,0 +1,2 @@ +!function(e){e(["jquery"],function(e){return function(){function t(e,t,n){return f({type:O.error,iconClass:g().iconClasses.error,message:e,optionsOverride:n,title:t})}function n(t,n){return t||(t=g()),v=e("#"+t.containerId),v.length?v:(n&&(v=c(t)),v)}function i(e,t,n){return f({type:O.info,iconClass:g().iconClasses.info,message:e,optionsOverride:n,title:t})}function o(e){w=e}function s(e,t,n){return f({type:O.success,iconClass:g().iconClasses.success,message:e,optionsOverride:n,title:t})}function a(e,t,n){return f({type:O.warning,iconClass:g().iconClasses.warning,message:e,optionsOverride:n,title:t})}function r(e){var t=g();v||n(t),l(e,t)||u(t)}function d(t){var i=g();return v||n(i),t&&0===e(":focus",t).length?void h(t):void(v.children().length&&v.remove())}function u(t){for(var n=v.children(),i=n.length-1;i>=0;i--)l(e(n[i]),t)}function l(t,n){return t&&0===e(":focus",t).length?(t[n.hideMethod]({duration:n.hideDuration,easing:n.hideEasing,complete:function(){h(t)}}),!0):!1}function c(t){return v=e("
    ").attr("id",t.containerId).addClass(t.positionClass).attr("aria-live","polite").attr("role","alert"),v.appendTo(e(t.target)),v}function p(){return{tapToDismiss:!0,toastClass:"toast",containerId:"toast-container",debug:!1,showMethod:"fadeIn",showDuration:300,showEasing:"swing",onShown:void 0,hideMethod:"fadeOut",hideDuration:1e3,hideEasing:"swing",onHidden:void 0,extendedTimeOut:1e3,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},iconClass:"toast-info",positionClass:"toast-top-right",timeOut:5e3,titleClass:"toast-title",messageClass:"toast-message",target:"body",closeHtml:'',newestOnTop:!0,preventDuplicates:!1,progressBar:!1}}function m(e){w&&w(e)}function f(t){function i(t){return!e(":focus",l).length||t?(clearTimeout(O.intervalId),l[r.hideMethod]({duration:r.hideDuration,easing:r.hideEasing,complete:function(){h(l),r.onHidden&&"hidden"!==b.state&&r.onHidden(),b.state="hidden",b.endTime=new Date,m(b)}})):void 0}function o(){(r.timeOut>0||r.extendedTimeOut>0)&&(u=setTimeout(i,r.extendedTimeOut),O.maxHideTime=parseFloat(r.extendedTimeOut),O.hideEta=(new Date).getTime()+O.maxHideTime)}function s(){clearTimeout(u),O.hideEta=0,l.stop(!0,!0)[r.showMethod]({duration:r.showDuration,easing:r.showEasing})}function a(){var e=(O.hideEta-(new Date).getTime())/O.maxHideTime*100;f.width(e+"%")}var r=g(),d=t.iconClass||r.iconClass;if("undefined"!=typeof t.optionsOverride&&(r=e.extend(r,t.optionsOverride),d=t.optionsOverride.iconClass||d),r.preventDuplicates){if(t.message===C)return;C=t.message}T++,v=n(r,!0);var u=null,l=e("
    "),c=e("
    "),p=e("
    "),f=e("
    "),w=e(r.closeHtml),O={intervalId:null,hideEta:null,maxHideTime:null},b={toastId:T,state:"visible",startTime:new Date,options:r,map:t};return t.iconClass&&l.addClass(r.toastClass).addClass(d),t.title&&(c.append(t.title).addClass(r.titleClass),l.append(c)),t.message&&(p.append(t.message).addClass(r.messageClass),l.append(p)),r.closeButton&&(w.addClass("toast-close-button").attr("role","button"),l.prepend(w)),r.progressBar&&(f.addClass("toast-progress"),l.prepend(f)),l.hide(),r.newestOnTop?v.prepend(l):v.append(l),l[r.showMethod]({duration:r.showDuration,easing:r.showEasing,complete:r.onShown}),r.timeOut>0&&(u=setTimeout(i,r.timeOut),O.maxHideTime=parseFloat(r.timeOut),O.hideEta=(new Date).getTime()+O.maxHideTime,r.progressBar&&(O.intervalId=setInterval(a,10))),l.hover(s,o),!r.onclick&&r.tapToDismiss&&l.click(i),r.closeButton&&w&&w.click(function(e){e.stopPropagation?e.stopPropagation():void 0!==e.cancelBubble&&e.cancelBubble!==!0&&(e.cancelBubble=!0),i(!0)}),r.onclick&&l.click(function(){r.onclick(),i()}),m(b),r.debug&&console&&console.log(b),l}function g(){return e.extend({},p(),b.options)}function h(e){v||(v=n()),e.is(":visible")||(e.remove(),e=null,0===v.children().length&&(v.remove(),C=void 0))}var v,w,C,T=0,O={error:"error",info:"info",success:"success",warning:"warning"},b={clear:r,remove:d,error:t,getContainer:n,info:i,options:{},subscribe:o,success:s,version:"2.1.0",warning:a};return b}()})}("function"==typeof define&&define.amd?define:function(e,t){"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):window.toastr=t(window.jQuery)}); +//# sourceMappingURL=/toastr.js.map \ No newline at end of file diff --git a/apps/templates/_foot_js.html b/apps/templates/_foot_js.html index ca20a0423..51c9cd0e9 100644 --- a/apps/templates/_foot_js.html +++ b/apps/templates/_foot_js.html @@ -1,13 +1,14 @@ {% load static %} + \ No newline at end of file + diff --git a/apps/users/api.py b/apps/users/api.py index 489ec35e5..90f5d900c 100644 --- a/apps/users/api.py +++ b/apps/users/api.py @@ -3,11 +3,9 @@ import logging -from rest_framework import generics, mixins, status, permissions -from rest_framework.views import APIView -from rest_framework.response import Response +from rest_framework import generics -from .serializers import UserSerializer, UserGroupSerializer, UserActiveSerializer +from .serializers import UserSerializer, UserGroupSerializer, UserActiveSerializer, UserAttributeSerializer from .models import User, UserGroup @@ -52,3 +50,7 @@ class UserGroupDetailDeleteUpdateApi(generics.RetrieveUpdateDestroyAPIView): queryset = UserGroup.objects.all() serializer_class = UserGroupSerializer + +class UserAttributeApi(generics.RetrieveUpdateDestroyAPIView): + queryset = User.objects.all() + serializer_class = UserAttributeSerializer diff --git a/apps/users/serializers.py b/apps/users/serializers.py index d61842415..14ffc4894 100644 --- a/apps/users/serializers.py +++ b/apps/users/serializers.py @@ -18,6 +18,7 @@ class UserSerializer(serializers.ModelSerializer): class UserActiveSerializer(serializers.ModelSerializer): + class Meta: model = User fields = ['is_active'] @@ -29,3 +30,10 @@ class UserGroupSerializer(serializers.ModelSerializer): class Meta: model = UserGroup fields = '__all__' + + +class UserAttributeSerializer(serializers.ModelSerializer): + + class Meta: + model = User + fields = ['avatar', 'wechat', 'phone', 'enable_otp', 'comment', 'is_active', 'name'] diff --git a/apps/users/templates/users/user_detail.html b/apps/users/templates/users/user_detail.html index 6ecc6467d..ac1d32abc 100644 --- a/apps/users/templates/users/user_detail.html +++ b/apps/users/templates/users/user_detail.html @@ -223,6 +223,20 @@ {% endblock %} {% block custom_foot_js %} -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/apps/users/urls.py b/apps/users/urls.py index ff612d5b2..1f45e8100 100644 --- a/apps/users/urls.py +++ b/apps/users/urls.py @@ -31,6 +31,8 @@ urlpatterns += [ url(r'^v1/users$', api.UserListAddApi.as_view(), name='user-list-api'), url(r'^v1/users/(?P[0-9]+)$', api.UserDetailDeleteUpdateApi.as_view(), name='user-detail-api'), + url(r'^v1/users/(?P[0-9]+)/patch$', + api.UserAttributeApi.as_view(), name='user-patch-api'), url(r'^v1/users/(?P[0-9]+)/active$', api.UserActiveApi.as_view(), name='user-active-api'), url(r'^v1/user-groups$', api.UserGroupListAddApi.as_view(), name='user-group-list-api'), url(r'^v1/user-groups/(?P[0-9]+)$', From 170b49428cba756148ac682e9a849edab6eb025f Mon Sep 17 00:00:00 2001 From: ibuler Date: Tue, 6 Sep 2016 16:50:19 +0800 Subject: [PATCH 06/50] change date_added -> date_created --- apps/assets/models.py | 12 +-- .../assets/templates/assets/asset_detail.html | 2 +- apps/users/models.py | 4 +- apps/users/views.py | 2 +- docs/table_design.xml | 96 +++++++++---------- 5 files changed, 56 insertions(+), 60 deletions(-) diff --git a/apps/assets/models.py b/apps/assets/models.py index 7f4a4c579..4d76b320e 100644 --- a/apps/assets/models.py +++ b/apps/assets/models.py @@ -24,7 +24,7 @@ class IDC(models.Model): phone = models.CharField(max_length=32, blank=True, verbose_name=_('Phone')) address = models.CharField(max_length=128, blank=True, verbose_name=_("Address")) network = models.TextField(blank=True, verbose_name=_('Network')) - date_added = models.DateField(auto_now=True, null=True, verbose_name=_('Date added')) + date_created = models.DateField(auto_now=True, null=True, verbose_name=_('Date added')) operator = models.CharField(max_length=32, blank=True, verbose_name=_('Operator')) created_by = models.CharField(max_length=32, blank=True, verbose_name=_('Created by')) comment = models.TextField(blank=True, verbose_name=_('Comment')) @@ -40,7 +40,7 @@ class AssetExtend(models.Model): key = models.CharField(max_length=64, null=True, blank=True, verbose_name=_('KEY')) value = models.CharField(max_length=64, null=True, blank=True, verbose_name=_('VALUE')) created_by = models.CharField(max_length=32, blank=True, verbose_name=_("Created by")) - date_added = models.DateTimeField(auto_now=True, null=True, blank=True) + date_created = models.DateTimeField(auto_now=True, null=True, blank=True) comment = models.TextField(blank=True, verbose_name=_('Comment')) def __unicode__(self): @@ -57,7 +57,7 @@ class AdminUser(models.Model): private_key = models.CharField(max_length=4096, null=True, blank=True, verbose_name=_('SSH private key')) is_default = models.BooleanField(default=True, verbose_name=_('As default')) auto_update = models.BooleanField(default=True, verbose_name=_('Auto update pass/key')) - date_added = models.DateTimeField(auto_now=True, null=True, blank=True) + date_created = models.DateTimeField(auto_now=True, null=True, blank=True) create_by = models.CharField(max_length=32, null=True, blank=True, verbose_name=_('Created by')) comment = models.TextField(blank=True, verbose_name=_('Comment')) @@ -86,7 +86,7 @@ class SysUser(models.Model): shell = models.CharField(max_length=64, blank=True, verbose_name=_('Shell')) home = models.CharField(max_length=64, blank=True, verbose_name=_('Home')) uid = models.IntegerField(blank=True, verbose_name=_('Uid')) - date_added = models.DateTimeField(auto_now=True, null=True) + date_created = models.DateTimeField(auto_now=True, null=True) create_by = models.CharField(max_length=32, blank=True, verbose_name=_('Created by')) comment = models.CharField(max_length=128, blank=True, verbose_name=_('Comment')) @@ -124,7 +124,7 @@ class Asset(models.Model): sn = models.CharField(max_length=128, null=True, blank=True, unique=True, verbose_name=_('Serial number')) created_by = models.CharField(max_length=32, null=True, blank=True, verbose_name=_('Created by')) is_active = models.BooleanField(default=True, verbose_name=_('Is active')) - date_added = models.DateTimeField(auto_now=True, null=True, blank=True, verbose_name=_('Date added')) + date_created = models.DateTimeField(auto_now=True, null=True, blank=True, verbose_name=_('Date added')) comment = models.CharField(max_length=128, null=True, blank=True, verbose_name=_('Comment')) def __unicode__(self): @@ -143,7 +143,7 @@ class Label(models.Model): value = models.CharField(max_length=64, null=True, blank=True, verbose_name=_('VALUE')) asset = models.ForeignKey(Asset, null=True, blank=True, on_delete=models.SET_NULL, verbose_name=_('Asset')) created_by = models.CharField(max_length=32, blank=True, verbose_name=_("Created by")) - date_added = models.DateTimeField(auto_now=True, null=True) + date_created = models.DateTimeField(auto_now=True, null=True) comment = models.CharField(max_length=128, blank=True, verbose_name=_('Comment')) def __unicode__(self): diff --git a/apps/assets/templates/assets/asset_detail.html b/apps/assets/templates/assets/asset_detail.html index 5d8a48db9..51be7b1db 100644 --- a/apps/assets/templates/assets/asset_detail.html +++ b/apps/assets/templates/assets/asset_detail.html @@ -151,7 +151,7 @@ 添加日期 - {{ asset.date_added|date:"Y-m-d H:i:s" }} + {{ asset.date_created|date:"Y-m-d H:i:s" }} 备注 diff --git a/apps/users/models.py b/apps/users/models.py index a1ee15f08..bbf89239f 100644 --- a/apps/users/models.py +++ b/apps/users/models.py @@ -24,7 +24,7 @@ from django.core import signing # verbose_name='permissions', # blank=True, # ) -# date_added = models.DateTimeField(auto_now_add=True) +# date_created = models.DateTimeField(auto_now_add=True) # created_by = models.CharField(max_length=100) # comment = models.CharField(max_length=80, blank=True) # @@ -59,7 +59,7 @@ from django.core import signing class UserGroup(models.Model): name = models.CharField(max_length=100, unique=True, verbose_name=_('Name')) comment = models.TextField(blank=True, verbose_name=_('Comment')) - date_added = models.DateTimeField(auto_now_add=True) + date_created = models.DateTimeField(auto_now_add=True) created_by = models.CharField(max_length=100) def __unicode__(self): diff --git a/apps/users/views.py b/apps/users/views.py index dbeced754..520b47d89 100644 --- a/apps/users/views.py +++ b/apps/users/views.py @@ -169,7 +169,7 @@ class UserGroupListView(AdminUserRequiredMixin, ListView): paginate_by = settings.CONFIG.DISPLAY_PER_PAGE context_object_name = 'user_group_list' template_name = 'users/user_group_list.html' - ordering = '-date_added' + ordering = '-date_created' def get_queryset(self): self.queryset = super(UserGroupListView, self).get_queryset() diff --git a/docs/table_design.xml b/docs/table_design.xml index 5fb4b4b4b..de825486b 100644 --- a/docs/table_design.xml +++ b/docs/table_design.xml @@ -71,16 +71,12 @@ INTEGER 0 - + INTEGER 0 - -CHAR -NULL INTEGER -NULL - +NULL VARCHAR NULL @@ -106,7 +102,7 @@ id - +
    INTEGER NULL @@ -120,7 +116,7 @@ id
    - +
    INTEGER NULL @@ -130,7 +126,7 @@ VARCHAR NULL - + DATETIME NULL @@ -140,13 +136,13 @@ id
    - +
    INTEGER NULL INTEGER -NULL +NULL INTEGER @@ -156,7 +152,7 @@ id
    - +
    INTEGER NULL @@ -188,7 +184,7 @@ id
    - +
    INTEGER NULL @@ -231,7 +227,7 @@ NULL INTEGER -NULL +NULL INTEGER @@ -242,7 +238,7 @@ NULL INTEGER -NULL +NULL VARCHAR @@ -264,7 +260,7 @@ NULL INTEGER -NULL +NULL VARCHAR @@ -284,14 +280,14 @@ VARCHAR NULL - + DATETIME NULL id
    - +
    INTEGER NULL @@ -305,7 +301,7 @@ id
    - +
    INTEGER NULL @@ -336,14 +332,14 @@ VARCHAR NULL - + DATETIME NULL id
    - +
    INTEGER NULL @@ -361,7 +357,7 @@ id
    - +
    INTEGER NULL @@ -374,20 +370,20 @@ VARCHAR NULL - + DATETIME NULL id
    - +
    INTEGER NULL - + INTEGER -NULL +NULL INTEGER @@ -397,7 +393,7 @@ id
    - +
    INTEGER NULL @@ -419,7 +415,7 @@ INTEGER NULL - + DATETIME NULL @@ -432,7 +428,7 @@ id
    - +
    INTEGER NULL @@ -481,20 +477,20 @@ CHAR NULL - + DATETIME NULL id
    - +
    INTEGER NULL - + INTEGER -NULL +NULL INTEGER @@ -504,7 +500,7 @@ id
    - +
    INTEGER NULL @@ -534,7 +530,7 @@ id
    - +
    INTEGER NULL @@ -567,20 +563,20 @@ VARCHAR NULL - + TIME NULL id
    - +
    INTEGER NULL - + INTEGER -NULL +NULL INTEGER @@ -590,7 +586,7 @@ id
    - +
    INTEGER NULL @@ -606,13 +602,13 @@ id
    - +
    INTEGER NULL - + INTEGER -NULL +NULL INTEGER @@ -638,11 +634,11 @@ id
    - +
    INTEGER NULL - + VARCHAR NULL @@ -667,7 +663,7 @@ id
    - +
    INTEGER NULL @@ -693,7 +689,7 @@ id
    - +
    INTEGER NULL @@ -734,13 +730,13 @@ id
    - +
    INTEGER NULL INTEGER -NULL +NULL DATE @@ -752,7 +748,7 @@ id
    - +
    INTEGER NULL From dc01833a5b8056baa1764bf2f1aa37e113a758e6 Mon Sep 17 00:00:00 2001 From: ibuler Date: Tue, 6 Sep 2016 16:55:57 +0800 Subject: [PATCH 07/50] Forget to forgot --- apps/users/urls.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/users/urls.py b/apps/users/urls.py index ff612d5b2..9b8025849 100644 --- a/apps/users/urls.py +++ b/apps/users/urls.py @@ -8,9 +8,9 @@ app_name = 'users' urlpatterns = [ url(r'^login$', views.UserLoginView.as_view(), name='login'), url(r'^logout$', views.UserLogoutView.as_view(), name='logout'), - url(r'^password/forget$', views.UserForgotPasswordView.as_view(), name='forget-password'), - url(r'^password/forget/sendmail-success$', - views.UserForgotPasswordSendmailSuccessView.as_view(), name='forget-password-sendmail-success'), + url(r'^password/forgot$', views.UserForgotPasswordView.as_view(), name='forgot-password'), + url(r'^password/forgot/sendmail-success$', + views.UserForgotPasswordSendmailSuccessView.as_view(), name='forgot-password-sendmail-success'), url(r'^password/reset$', views.UserResetPasswordView.as_view(), name='reset-password'), url(r'^password/reset/success$', views.UserResetPasswordSuccessView.as_view(), name='reset-password-success'), From 556fb4e09f894f5744804293f675ff4c5406ed41 Mon Sep 17 00:00:00 2001 From: "xiaokong1937@gmail.com" <763691951@qq.com> Date: Tue, 6 Sep 2016 21:03:51 +0800 Subject: [PATCH 08/50] refactor `is_active` trigger view and `enable_otp` trigger view in UserDetail page;trivial changes --- apps/static/css/plugins/toastr/toastr.min.css | 222 ++++++++++++++++++ apps/static/js/jumpserver.js | 23 +- apps/templates/_foot_js.html | 79 +++---- apps/templates/_head_css_js.html | 1 + apps/users/api.py | 12 +- apps/users/serializers.py | 7 - apps/users/templates/users/user_detail.html | 98 ++++---- apps/users/urls.py | 1 - apps/users/views.py | 4 +- 9 files changed, 329 insertions(+), 118 deletions(-) create mode 100644 apps/static/css/plugins/toastr/toastr.min.css diff --git a/apps/static/css/plugins/toastr/toastr.min.css b/apps/static/css/plugins/toastr/toastr.min.css new file mode 100644 index 000000000..567716ea2 --- /dev/null +++ b/apps/static/css/plugins/toastr/toastr.min.css @@ -0,0 +1,222 @@ +.toast-title { + font-weight: 700 +} + +.toast-message { + -ms-word-wrap: break-word; + word-wrap: break-word +} + +.toast-message a, .toast-message label { + color: #fff +} + +.toast-message a:hover { + color: #ccc; + text-decoration: none +} + +.toast-close-button { + position: relative; + right: -.3em; + top: -.3em; + float: right; + font-size: 20px; + font-weight: 700; + color: #fff; + -webkit-text-shadow: 0 1px 0 #fff; + text-shadow: 0 1px 0 #fff; + opacity: .8; + -ms-filter: alpha(Opacity=80); + filter: alpha(opacity=80) +} + +.toast-close-button:focus, .toast-close-button:hover { + color: #000; + text-decoration: none; + cursor: pointer; + opacity: .4; + -ms-filter: alpha(Opacity=40); + filter: alpha(opacity=40) +} + +button.toast-close-button { + padding: 0; + cursor: pointer; + background: 0 0; + border: 0; + -webkit-appearance: none +} + +.toast-top-center { + top: 0; + right: 0; + width: 100% +} + +.toast-bottom-center { + bottom: 0; + right: 0; + width: 100% +} + +.toast-top-full-width { + top: 0; + right: 0; + width: 100% +} + +.toast-bottom-full-width { + bottom: 0; + right: 0; + width: 100% +} + +.toast-top-left { + top: 12px; + left: 12px +} + +.toast-top-right { + top: 12px; + right: 12px +} + +.toast-bottom-right { + right: 12px; + bottom: 12px +} + +.toast-bottom-left { + bottom: 12px; + left: 12px +} + +#toast-container { + position: fixed; + z-index: 999999 +} + +#toast-container * { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +#toast-container > div { + position: relative; + overflow: hidden; + margin: 0 0 6px; + padding: 15px 15px 15px 50px; + width: 300px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + background-position: 15px center; + background-repeat: no-repeat; + -moz-box-shadow: 0 0 12px #999; + -webkit-box-shadow: 0 0 12px #999; + box-shadow: 0 0 12px #999; + color: #fff; + opacity: .8; + -ms-filter: alpha(Opacity=80); + filter: alpha(opacity=80) +} + +#toast-container > :hover { + -moz-box-shadow: 0 0 12px #000; + -webkit-box-shadow: 0 0 12px #000; + box-shadow: 0 0 12px #000; + opacity: 1; + -ms-filter: alpha(Opacity=100); + filter: alpha(opacity=100); + cursor: pointer +} + +#toast-container > .toast-info { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=) !important +} + +#toast-container > .toast-error { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=) !important +} + +#toast-container > .toast-success { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==) !important +} + +#toast-container > .toast-warning { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=) !important +} + +#toast-container.toast-bottom-center > div, #toast-container.toast-top-center > div { + width: 300px; + margin: auto +} + +#toast-container.toast-bottom-full-width > div, #toast-container.toast-top-full-width > div { + width: 96%; + margin: auto +} + +.toast { + background-color: #030303 +} + +.toast-success { + background-color: #51a351 +} + +.toast-error { + background-color: #bd362f +} + +.toast-info { + background-color: #2f96b4 +} + +.toast-warning { + background-color: #f89406 +} + +.toast-progress { + position: absolute; + left: 0; + bottom: 0; + height: 4px; + background-color: #000; + opacity: .4; + -ms-filter: alpha(Opacity=40); + filter: alpha(opacity=40) +} + +@media all and (max-width: 240px) { + #toast-container > div { + padding: 8px 8px 8px 50px; + width: 11em + } + + #toast-container .toast-close-button { + right: -.2em; + top: -.2em + } +} + +@media all and (min-width: 241px) and (max-width: 480px) { + #toast-container > div { + padding: 8px 8px 8px 50px; + width: 18em + } + + #toast-container .toast-close-button { + right: -.2em; + top: -.2em + } +} + +@media all and (min-width: 481px) and (max-width: 768px) { + #toast-container > div { + padding: 15px 15px 15px 50px; + width: 25em + } +} \ No newline at end of file diff --git a/apps/static/js/jumpserver.js b/apps/static/js/jumpserver.js index b872558f3..8567b418a 100644 --- a/apps/static/js/jumpserver.js +++ b/apps/static/js/jumpserver.js @@ -151,4 +151,25 @@ function getIDall() { check_array.push(id); }); return check_array.join(","); -} \ No newline at end of file +} + +function APIUpdateAttr(url, body, success, error, method) { + $.ajax({ + url: url, + type: method || "PATCH", + data: body + }).done(function(data, textStatue, jqXHR) { + if (typeof success === 'function') { + return success(data) + } else { + toastr.success('Update Success!') + } + }).fail(function(jqXHR, textStatue, errorThrown) { + if (typeof error === 'function') { + return error(errorThrown) + } else { + toastr.error('Error occurred while updating.') + } + }) + return true; +} diff --git a/apps/templates/_foot_js.html b/apps/templates/_foot_js.html index 51c9cd0e9..624d32a01 100644 --- a/apps/templates/_foot_js.html +++ b/apps/templates/_foot_js.html @@ -1,57 +1,56 @@ {% load static %} - + - - + diff --git a/apps/templates/_head_css_js.html b/apps/templates/_head_css_js.html index 08728fbc0..bc968ca90 100644 --- a/apps/templates/_head_css_js.html +++ b/apps/templates/_head_css_js.html @@ -3,6 +3,7 @@ + diff --git a/apps/users/api.py b/apps/users/api.py index 90f5d900c..f96e21362 100644 --- a/apps/users/api.py +++ b/apps/users/api.py @@ -5,7 +5,7 @@ import logging from rest_framework import generics -from .serializers import UserSerializer, UserGroupSerializer, UserActiveSerializer, UserAttributeSerializer +from .serializers import UserSerializer, UserGroupSerializer, UserAttributeSerializer from .models import User, UserGroup @@ -31,16 +31,6 @@ class UserDetailDeleteUpdateApi(generics.RetrieveUpdateDestroyAPIView): # return super(UserDetailDeleteUpdateApi, self).get(request, *args, **kwargs) -class UserActiveApi(generics.RetrieveUpdateDestroyAPIView): - queryset = User.objects.all() - serializer_class = UserActiveSerializer - - # def put(self, request, *args, **kwargs): - # for k, v in request.META.items(): - # logger.debug("%s --> %s" % (k, v)) - # return super(UserActiveApi, self).put(request, *args, **kwargs) - - class UserGroupListAddApi(generics.ListCreateAPIView): queryset = UserGroup.objects.all() serializer_class = UserGroupSerializer diff --git a/apps/users/serializers.py b/apps/users/serializers.py index 14ffc4894..04d575c19 100644 --- a/apps/users/serializers.py +++ b/apps/users/serializers.py @@ -17,13 +17,6 @@ class UserSerializer(serializers.ModelSerializer): ] -class UserActiveSerializer(serializers.ModelSerializer): - - class Meta: - model = User - fields = ['is_active'] - - class UserGroupSerializer(serializers.ModelSerializer): users = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='users:user-detail-api') diff --git a/apps/users/templates/users/user_detail.html b/apps/users/templates/users/user_detail.html index ac1d32abc..c11ee523e 100644 --- a/apps/users/templates/users/user_detail.html +++ b/apps/users/templates/users/user_detail.html @@ -38,7 +38,7 @@
    - {{ user.name }} + {{ user_object.name }}
    - + - + - + - {% if user.phone %} + {% if user_object.phone %} - + {% endif %} - {% if user.wechat %} + {% if user_object.wechat %} - + {% endif %} - + - + - + - + - + - +
    - +
    {% trans 'Name' %}:{{ user.name }}{{ user_object.name }}
    {% trans 'Username' %}:{{ user.username }}{{ user_object.username }}
    {% trans 'Email' %}:{{ user.email }}{{ user_object.email }}
    {% trans 'Phone' %}:{{ user.phone }}{{ user_object.phone }}
    {% trans 'Wechat' %}:{{ user.wechat }}{{ user_object.wechat }}
    {% trans 'Role' %}:{{ user.get_role_display }}{{ user_object.get_role_display }}
    {% trans 'Date expired' %}:{{ user.date_expired|date:"Y-m-j H:i:s" }}{{ user_object.date_expired|date:"Y-m-j H:i:s" }}
    {% trans 'Created by' %}:{{ user.created_by }}{{ user_object.created_by }}
    {% trans 'Date joined' %}:{{ user.date_joined|date:"Y-m-j H:i:s" }}{{ user_object.date_joined|date:"Y-m-j H:i:s" }}
    {% trans 'Last login' %}:{{ user.last_login|date:"Y-m-j H:i:s" }}{{ user_object.last_login|date:"Y-m-j H:i:s" }}
    {% trans 'Comment' %}:{{ user.comment }}{{ user_object.comment }}
    @@ -131,7 +131,7 @@
    - +
    - -
    +
    +
    +
    + +
    +
    +
    +
    + {{ asset_group.name }} +
    + + + + + + + + + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + +
    {% trans 'Name' %}:{{ asset_group.name }}
    {% trans 'Date created' %}:{{ asset_group.date_created }}
    {% trans 'Created by' %}:{{ asset_group.created_by }}
    {% trans 'Comment' %}:{{ asset_group.comment }}
    +
    +
    + +
    +
    + {{ asset_group.name }} +
    + + + + + + + + + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + +
    {% trans 'Name' %}:{{ asset_group.name }}
    {% trans 'Date created' %}:{{ asset_group.date_created }}
    {% trans 'Created by' %}:{{ asset_group.created_by }}
    {% trans 'Comment' %}:{{ asset_group.comment }}
    +
    +
    +
    +
    +
    +
    + {% trans 'Associate asset user(system/admin)' %} +
    +
    + + + + + + + + + + + + + + + + + + {% for group in user.groups.all %} + + + + + {% endfor %} + +
    {% trans 'repush system user' %}: + + + +
    + +
    + +
    + +
    {{ group.name }} + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +{% endblock %} +{% block custom_foot_js %} + +{% endblock %} \ No newline at end of file diff --git a/apps/assets/templates/assets/asset_group_list.html b/apps/assets/templates/assets/asset_group_list.html index b69bfa8b9..c5a4380ba 100644 --- a/apps/assets/templates/assets/asset_group_list.html +++ b/apps/assets/templates/assets/asset_group_list.html @@ -27,7 +27,7 @@ {{ asset_group.assets.count }} - {{ asset_group.comment }} + {{ asset_group.comment|truncatewords:8 }} {% trans 'Update' %} {% trans 'Delete' %} diff --git a/apps/assets/templates/assets/delete_confirm.html b/apps/assets/templates/assets/delete_confirm.html new file mode 100644 index 000000000..777d1dbf9 --- /dev/null +++ b/apps/assets/templates/assets/delete_confirm.html @@ -0,0 +1,15 @@ +{% load i18n %} + + + + + {% trans 'Confirm delete' %} + + +
    + {% csrf_token %} +

    Are you sure you want to delete "{{ object.name }}"?

    + +
    + + \ No newline at end of file diff --git a/apps/assets/views.py b/apps/assets/views.py index efe698f13..a88cafe67 100644 --- a/apps/assets/views.py +++ b/apps/assets/views.py @@ -6,6 +6,8 @@ from django.shortcuts import get_object_or_404 from django.views.generic import TemplateView, ListView from django.urls import reverse_lazy from django.views.generic.edit import CreateView, DeleteView, FormView, UpdateView +from django.conf import settings +from django.db.models import Q from django.views.generic import TemplateView, ListView from django.views.generic.edit import CreateView, DeleteView, FormView, UpdateView from django.urls import reverse_lazy @@ -70,20 +72,45 @@ class AssetGroupCreateView(CreateView): class AssetGroupListView(ListView): model = AssetGroup + paginate_by = settings.CONFIG.DISPLAY_PER_PAGE context_object_name = 'asset_group_list' template_name = 'assets/asset_group_list.html' def get_context_data(self, **kwargs): context = { 'app': _('Assets'), - 'action': _('Asset group list') + 'action': _('Asset group list'), + 'keyword': self.request.GET.get('keyword', '') } kwargs.update(context) return super(AssetGroupListView, self).get_context_data(**kwargs) + def get_queryset(self): + self.queryset = super(AssetGroupListView, self).get_queryset() + self.keyword = keyword = self.request.GET.get('keyword', '') + self.sort = sort = self.request.GET.get('sort', '-date_created') + + if keyword: + self.queryset = self.queryset.filter(Q(name__icontains=keyword) | + Q(comment__icontains=keyword)) + + if sort: + self.queryset = self.queryset.order_by(sort) + return self.queryset + class AssetGroupDetailView(DetailView): - pass + template_name = 'assets/asset_group_detail.html' + model = AssetGroup + context_object_name = 'asset_group' + + def get_context_data(self, **kwargs): + context = { + 'app': _('Assets'), + 'action': _('Asset group detail') + } + kwargs.update(context) + return super(AssetGroupDetailView, self).get_context_data(**kwargs) class AssetGroupUpdateView(UpdateView): @@ -103,4 +130,6 @@ class AssetGroupUpdateView(UpdateView): class AssetGroupDeleteView(DeleteView): - pass + template_name = 'assets/delete_confirm.html' + model = AssetGroup + success_url = reverse_lazy('assets:asset-group-list') diff --git a/apps/locale/zh/LC_MESSAGES/django.po b/apps/locale/zh/LC_MESSAGES/django.po index 255849ad4..ccb101d78 100644 --- a/apps/locale/zh/LC_MESSAGES/django.po +++ b/apps/locale/zh/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Jumpserver 0.3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-09-06 15:08+0800\n" +"POT-Creation-Date: 2016-09-06 19:12+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: ibuler \n" "Language-Team: Jumpserver team\n" @@ -21,7 +21,7 @@ msgstr "" msgid "Select asset groups" msgstr "添加到资产组" -#: assets/forms.py:25 assets/models.py:144 templates/_nav.html:21 +#: assets/forms.py:25 assets/models.py:171 templates/_nav.html:21 msgid "Asset" msgstr "资产" @@ -29,67 +29,79 @@ msgstr "资产" msgid "Select assets" msgstr "选择资产" -#: assets/models.py:9 assets/models.py:21 assets/models.py:54 -#: assets/models.py:76 assets/templates/assets/asset_group_list.html:12 -#: users/models.py:60 users/models.py:107 -#: users/templates/users/user_detail.html:69 +#: assets/models.py:12 assets/models.py:48 assets/models.py:81 +#: assets/models.py:103 assets/templates/assets/asset_group_detail.html:63 +#: assets/templates/assets/asset_group_list.html:12 users/models.py:60 +#: users/models.py:107 users/templates/users/user_detail.html:69 #: users/templates/users/user_list.html:12 msgid "Name" msgstr "名称" -#: assets/models.py:10 assets/models.py:29 assets/models.py:42 -#: assets/models.py:61 assets/models.py:90 assets/models.py:125 -#: assets/models.py:145 users/models.py:122 +#: assets/models.py:13 assets/models.py:56 assets/models.py:69 +#: assets/models.py:88 assets/models.py:117 assets/models.py:152 +#: assets/models.py:172 users/models.py:122 #: users/templates/users/user_detail.html:101 msgid "Created by" msgstr "创建者" -#: assets/models.py:11 assets/models.py:30 assets/models.py:44 -#: assets/models.py:62 assets/models.py:91 assets/models.py:128 -#: assets/models.py:147 assets/templates/assets/asset_group_list.html:14 -#: users/models.py:61 users/models.py:118 -#: users/templates/users/user_detail.html:113 +#: assets/models.py:14 assets/models.py:54 assets/models.py:154 +msgid "Date added" +msgstr "加入日期" + +#: assets/models.py:15 assets/models.py:57 assets/models.py:71 +#: assets/models.py:89 assets/models.py:118 assets/models.py:155 +#: assets/models.py:174 assets/templates/assets/asset_group_detail.html:75 +#: assets/templates/assets/asset_group_list.html:14 users/models.py:61 +#: users/models.py:118 users/templates/users/user_detail.html:113 msgid "Comment" msgstr "备注" -#: assets/models.py:22 +#: assets/models.py:25 +#, fuzzy +#| msgid "As default" +msgid "Default" +msgstr "默认使用" + +#: assets/models.py:25 +#, fuzzy +#| msgid "Create asset group" +msgid "Default asset group" +msgstr "创建资产组" + +#: assets/models.py:49 msgid "Bandwidth" msgstr "带宽" -#: assets/models.py:23 +#: assets/models.py:50 msgid "Contact" msgstr "联系人" -#: assets/models.py:24 users/models.py:113 +#: assets/models.py:51 users/models.py:113 #: users/templates/users/user_detail.html:82 msgid "Phone" msgstr "手机" -#: assets/models.py:25 +#: assets/models.py:52 msgid "Address" msgstr "地址" -#: assets/models.py:26 +#: assets/models.py:53 msgid "Network" msgstr "网络" -#: assets/models.py:27 assets/models.py:127 -msgid "Date added" -msgstr "加入日期" - -#: assets/models.py:28 +#: assets/models.py:55 msgid "Operator" msgstr "运营商" -#: assets/models.py:40 assets/models.py:142 +#: assets/models.py:67 assets/models.py:169 msgid "KEY" msgstr "KEY" -#: assets/models.py:41 assets/models.py:143 +#: assets/models.py:68 assets/models.py:170 msgid "VALUE" msgstr "VALUE" -#: assets/models.py:55 assets/models.py:77 users/forms.py:13 +#: assets/models.py:82 assets/models.py:104 users/forms.py:13 #: users/models.py:106 users/templates/users/login.html:53 #: users/templates/users/user_detail.html:73 #: users/templates/users/user_list.html:13 @@ -97,7 +109,7 @@ msgstr "VALUE" msgid "Username" msgstr "用户名" -#: assets/models.py:56 assets/models.py:78 users/forms.py:15 +#: assets/models.py:83 assets/models.py:105 users/forms.py:15 #: users/templates/users/login.html:56 #: users/templates/users/reset_password.html:52 #: users/templates/users/user_create.html:8 @@ -107,149 +119,151 @@ msgstr "用户名" msgid "Password" msgstr "密码" -#: assets/models.py:57 assets/models.py:80 +#: assets/models.py:84 assets/models.py:107 msgid "SSH private key" msgstr "ssh密钥" -#: assets/models.py:58 assets/models.py:82 +#: assets/models.py:85 assets/models.py:109 msgid "As default" msgstr "默认使用" -#: assets/models.py:59 assets/models.py:84 +#: assets/models.py:86 assets/models.py:111 msgid "Auto update pass/key" msgstr "自动更新密码/密钥" -#: assets/models.py:79 +#: assets/models.py:106 msgid "Protocol" msgstr "协议" -#: assets/models.py:81 +#: assets/models.py:108 msgid "SSH public key" msgstr "ssh公钥" -#: assets/models.py:83 +#: assets/models.py:110 msgid "Auto push" msgstr "自动推送" -#: assets/models.py:85 +#: assets/models.py:112 msgid "Sudo" msgstr "Sudo" -#: assets/models.py:86 +#: assets/models.py:113 msgid "Shell" msgstr "Shell" -#: assets/models.py:87 templates/_header_bar.html:41 templates/_nav.html:4 +#: assets/models.py:114 templates/_header_bar.html:41 templates/_nav.html:4 msgid "Home" msgstr "仪表盘" -#: assets/models.py:88 +#: assets/models.py:115 msgid "Uid" msgstr "Uid" -#: assets/models.py:101 +#: assets/models.py:128 msgid "IP" msgstr "IP" -#: assets/models.py:102 +#: assets/models.py:129 msgid "Other IP" msgstr "其它IP" -#: assets/models.py:103 +#: assets/models.py:130 msgid "Remote card IP" msgstr "远控卡IP" -#: assets/models.py:104 +#: assets/models.py:131 msgid "Hostname" msgstr "用户名" -#: assets/models.py:105 +#: assets/models.py:132 msgid "Port" msgstr "端口" -#: assets/models.py:106 +#: assets/models.py:133 msgid "Asset groups" msgstr "用户组" -#: assets/models.py:107 assets/models.py:109 templates/_nav.html:24 +#: assets/models.py:134 assets/models.py:136 templates/_nav.html:24 msgid "Admin user" msgstr "管理用户" -#: assets/models.py:108 +#: assets/models.py:135 msgid "Admin password" msgstr "管理员密码" -#: assets/models.py:110 +#: assets/models.py:137 msgid "System User" msgstr "系统用户" -#: assets/models.py:111 templates/_nav.html:23 +#: assets/models.py:138 templates/_nav.html:23 msgid "IDC" msgstr "机房" -#: assets/models.py:112 +#: assets/models.py:139 msgid "Mac address" msgstr "Mac地址" -#: assets/models.py:113 +#: assets/models.py:140 msgid "Brand" msgstr "品牌" -#: assets/models.py:114 +#: assets/models.py:141 msgid "CPU" msgstr "CPU" -#: assets/models.py:115 +#: assets/models.py:142 msgid "Memory" msgstr "内存" -#: assets/models.py:116 +#: assets/models.py:143 msgid "Disk" msgstr "硬盘" -#: assets/models.py:117 +#: assets/models.py:144 msgid "OS" msgstr "操作系统" -#: assets/models.py:118 +#: assets/models.py:145 msgid "Cabinet number" msgstr "机柜编号" -#: assets/models.py:119 +#: assets/models.py:146 msgid "Cabinet position" msgstr "机柜层号" -#: assets/models.py:120 +#: assets/models.py:147 msgid "Asset number" msgstr "资产编号" -#: assets/models.py:121 +#: assets/models.py:148 msgid "Asset status" msgstr "资产状态" -#: assets/models.py:122 +#: assets/models.py:149 msgid "Asset type" msgstr "系统类型" -#: assets/models.py:123 +#: assets/models.py:150 msgid "Asset environment" msgstr "资产环境" -#: assets/models.py:124 +#: assets/models.py:151 msgid "Serial number" msgstr "序列号" -#: assets/models.py:126 +#: assets/models.py:153 msgid "Is active" msgstr "是否激活" #: assets/templates/assets/asset_group_create.html:16 -#: assets/templates/assets/asset_group_list.html:5 assets/views.py:60 -#: assets/views.py:98 +#: assets/templates/assets/asset_group_list.html:5 assets/views.py:62 +#: assets/views.py:117 msgid "Create asset group" msgstr "创建资产组" #: assets/templates/assets/asset_group_create.html:50 +#: assets/templates/assets/asset_group_detail.html:124 +#: assets/templates/assets/asset_group_detail.html:132 #: users/templates/users/_user.html:70 #: users/templates/users/user_detail.html:162 #: users/templates/users/user_detail.html:170 @@ -264,6 +278,65 @@ msgstr "重置" msgid "Submit" msgstr "提交" +#: assets/templates/assets/asset_group_detail.html:18 +msgid "Detail" +msgstr "" + +#: assets/templates/assets/asset_group_detail.html:20 +#, fuzzy +#| msgid "Asset group list" +msgid "Asset group assets" +msgstr "资产组列表" + +#: assets/templates/assets/asset_group_detail.html:28 +#: templates/_header_bar.html:8 users/templates/users/user_detail.html:29 +msgid "Search" +msgstr "搜索" + +#: assets/templates/assets/asset_group_detail.html:67 +#, fuzzy +#| msgid "Date added" +msgid "Date create" +msgstr "加入日期" + +#: assets/templates/assets/asset_group_detail.html:71 +#, fuzzy +#| msgid "Created by" +msgid "Create by" +msgstr "创建者" + +#: assets/templates/assets/asset_group_detail.html:86 +#: users/templates/users/user_detail.html:124 +msgid "Quick modify" +msgstr "快速修改" + +#: assets/templates/assets/asset_group_detail.html:121 +#: users/templates/users/reset_password.html:45 +#: users/templates/users/user_detail.html:159 users/utils.py:98 +msgid "Reset password" +msgstr "重置密码" + +#: assets/templates/assets/asset_group_detail.html:129 +#: users/templates/users/user_detail.html:167 +msgid "Reset ssh key" +msgstr "重置密钥" + +#: assets/templates/assets/asset_group_detail.html:143 templates/_nav.html:13 +#: users/models.py:109 users/templates/users/user_detail.html:181 +#: users/templates/users/user_list.html:15 +msgid "User group" +msgstr "用户组" + +#: assets/templates/assets/asset_group_detail.html:151 users/forms.py:34 +#: users/forms.py:54 users/templates/users/user_detail.html:189 +msgid "Join user groups" +msgstr "添加到用户组" + +#: assets/templates/assets/asset_group_detail.html:160 +#: users/templates/users/user_detail.html:198 +msgid "Join" +msgstr "加入" + #: assets/templates/assets/asset_group_list.html:13 #: users/templates/users/user_list.html:16 msgid "Asset num" @@ -303,19 +376,20 @@ msgstr "批量导出" msgid "Create asset" msgstr "创建资产" -#: assets/views.py:59 assets/views.py:78 assets/views.py:97 +#: assets/templates/assets/delete_confirm.html:6 +#: users/templates/users/user_delete_confirm.html:6 +msgid "Confirm delete" +msgstr "确认删除" + +#: assets/views.py:61 assets/views.py:81 assets/views.py:116 #: templates/_nav.html:18 msgid "Assets" msgstr "资产管理" -#: assets/views.py:79 +#: assets/views.py:82 msgid "Asset group list" msgstr "资产组列表" -#: templates/_header_bar.html:8 users/templates/users/user_detail.html:29 -msgid "Search" -msgstr "搜索" - #: templates/_header_bar.html:14 msgid "Welcome to use Jumpserver system" msgstr "欢迎使用Jumpserver开源跳板机系统" @@ -333,8 +407,8 @@ msgstr "注销登录" msgid "Login" msgstr "登录" -#: templates/_nav.html:9 users/views.py:50 users/views.py:63 users/views.py:103 -#: users/views.py:120 users/views.py:145 users/views.py:158 +#: templates/_nav.html:9 users/views.py:92 users/views.py:105 +#: users/views.py:145 users/views.py:162 users/views.py:187 users/views.py:200 msgid "Users" msgstr "用户管理" @@ -342,12 +416,6 @@ msgstr "用户管理" msgid "User" msgstr "用户" -#: templates/_nav.html:13 users/models.py:109 -#: users/templates/users/user_detail.html:181 -#: users/templates/users/user_list.html:15 -msgid "User group" -msgstr "用户组" - #: templates/_nav.html:22 msgid "Asset group" msgstr "资产组" @@ -408,11 +476,6 @@ msgstr "" msgid "Captcha" msgstr "验证码" -#: users/forms.py:34 users/forms.py:54 -#: users/templates/users/user_detail.html:189 -msgid "Join user groups" -msgstr "添加到用户组" - #: users/models.py:102 users/models.py:225 msgid "Administrator" msgstr "管理员" @@ -459,7 +522,7 @@ msgid "System" msgstr "系统" #: users/templates/users/_user.html:17 users/templates/users/user_list.html:5 -#: users/views.py:63 +#: users/views.py:105 msgid "Create user" msgstr "创建用户" @@ -484,11 +547,6 @@ msgstr "输入您的邮箱, 将会发一封重置短信邮件到您的邮箱中" msgid "Captcha invalid" msgstr "验证码错误" -#: users/templates/users/reset_password.html:45 -#: users/templates/users/user_detail.html:159 users/utils.py:98 -msgid "Reset password" -msgstr "重置密码" - #: users/templates/users/reset_password.html:55 msgid "Password again" msgstr "再次输入密码" @@ -501,11 +559,7 @@ msgstr "设置" msgid "Reset link will be generated and sent to the user. " msgstr "生成重置密码连接,通过邮件发送给用户" -#: users/templates/users/user_delete_confirm.html:6 -msgid "Confirm delete" -msgstr "确认删除" - -#: users/templates/users/user_detail.html:18 users/views.py:120 +#: users/templates/users/user_detail.html:18 users/views.py:162 msgid "User detail" msgstr "用户详情" @@ -525,19 +579,7 @@ msgstr "创建日期" msgid "Last login" msgstr "最后登录" -#: users/templates/users/user_detail.html:124 -msgid "Quick modify" -msgstr "快速修改" - -#: users/templates/users/user_detail.html:167 -msgid "Reset ssh key" -msgstr "重置密钥" - -#: users/templates/users/user_detail.html:198 -msgid "Join" -msgstr "加入" - -#: users/templates/users/user_group_create.html:16 users/views.py:158 +#: users/templates/users/user_group_create.html:16 users/views.py:200 msgid "Create user group" msgstr "创建用户组" @@ -546,18 +588,10 @@ msgstr "创建用户组" msgid "Active" msgstr "激活" -#: users/templates/users/user_update.html:3 users/views.py:103 +#: users/templates/users/user_update.html:3 users/views.py:145 msgid "Update user" msgstr "编辑用户" -#: users/urls.py:23 -msgid "Logout success" -msgstr "退出登录成功" - -#: users/urls.py:24 -msgid "Logout success, return login page" -msgstr "退出登录成功,返回到登录页面" - #: users/utils.py:47 msgid "Begin to generate ssh private key ..." msgstr "开始生成ssh密钥" @@ -659,45 +693,53 @@ msgstr "" "
    \n" " " -#: users/views.py:50 +#: users/views.py:62 +msgid "Logout success" +msgstr "退出登录成功" + +#: users/views.py:63 +msgid "Logout success, return login page" +msgstr "退出登录成功,返回到登录页面" + +#: users/views.py:92 msgid "User list" msgstr "用户列表" -#: users/views.py:59 +#: users/views.py:101 #, python-format msgid "Create user %s success." msgstr "创建用户 %s 成功" -#: users/views.py:145 +#: users/views.py:187 msgid "User group list" msgstr "用户组列表" -#: users/views.py:190 +#: users/views.py:232 msgid "Email address invalid, input again" msgstr "邮箱地址错误,重新输入" -#: users/views.py:201 +#: users/views.py:243 msgid "Send reset password message" msgstr "发送重置密码邮件" -#: users/views.py:202 +#: users/views.py:244 msgid "Send reset password mail success, login your mail box and follow it " msgstr "" "发送重置邮件成功, 请登录邮箱查看, 按照提示操作 (如果没收到,请等待3-5分钟)" -#: users/views.py:214 +#: users/views.py:256 msgid "Reset password success" msgstr "重置密码成功" -#: users/views.py:215 +#: users/views.py:257 msgid "Reset password success, return to login page" msgstr "重置密码成功,返回到登录页面" -#: users/views.py:231 users/views.py:244 +#: users/views.py:273 users/views.py:286 msgid "Token invalid or expired" msgstr "Token错误或失效" -#: users/views.py:240 +#: users/views.py:282 msgid "Password not same" msgstr "密码不一致" diff --git a/apps/static/css/jumpserver.css b/apps/static/css/jumpserver.css index e293dc860..7948a33df 100644 --- a/apps/static/css/jumpserver.css +++ b/apps/static/css/jumpserver.css @@ -38,6 +38,7 @@ th a { color: white; } +.select2-selection--single, .select2-selection--multiple { border: 1px solid #e5e6e7 !important; cursor: text !important; diff --git a/apps/templates/_list_base.html b/apps/templates/_list_base.html index 11be26259..b0f1524c0 100644 --- a/apps/templates/_list_base.html +++ b/apps/templates/_list_base.html @@ -22,7 +22,6 @@
    - {# left button add #} {% block content_left_head %} {% endblock %}
    @@ -129,17 +132,9 @@ - - - - - - {% for group in groups %} {% endfor %} @@ -164,6 +159,43 @@
    + +
    +
    + {% trans 'Add asset to this group' %} +
    +
    + + + + + + + + + + + {% for group in user.groups.all %} + + + + + {% endfor %} + +
    + +
    + +
    {{ group.name }} + +
    +
    +
    +
    diff --git a/apps/assets/views.py b/apps/assets/views.py index a88cafe67..958033e4a 100644 --- a/apps/assets/views.py +++ b/apps/assets/views.py @@ -11,7 +11,7 @@ from django.db.models import Q from django.views.generic import TemplateView, ListView from django.views.generic.edit import CreateView, DeleteView, FormView, UpdateView from django.urls import reverse_lazy -from django.views.generic.detail import DetailView +from django.views.generic.detail import DetailView, SingleObjectMixin from .models import Asset, AssetGroup, IDC, AssetExtend from .forms import AssetForm, AssetGroupForm @@ -56,6 +56,8 @@ class AssetGroupCreateView(CreateView): template_name = 'assets/asset_group_create.html' success_url = reverse_lazy('assets:asset-group-list') + # Todo: Asset group create template select assets so hard, need be resolve next + def get_context_data(self, **kwargs): context = { 'app': _('Assets'), @@ -99,15 +101,22 @@ class AssetGroupListView(ListView): return self.queryset -class AssetGroupDetailView(DetailView): +class AssetGroupDetailView(SingleObjectMixin, ListView): template_name = 'assets/asset_group_detail.html' - model = AssetGroup - context_object_name = 'asset_group' + paginate_by = settings.CONFIG.DISPLAY_PER_PAGE + + def get(self, request, *args, **kwargs): + self.object = self.get_object(queryset=AssetGroup.objects.all()) + return super(AssetGroupDetailView, self).get(request, *args, **kwargs) + + def get_queryset(self): + return self.object.assets.all() def get_context_data(self, **kwargs): context = { 'app': _('Assets'), - 'action': _('Asset group detail') + 'action': _('Asset group detail'), + 'asset_group': self.object, } kwargs.update(context) return super(AssetGroupDetailView, self).get_context_data(**kwargs) diff --git a/apps/users/hands.py b/apps/users/hands.py new file mode 100644 index 000000000..e87060ecd --- /dev/null +++ b/apps/users/hands.py @@ -0,0 +1,14 @@ +""" + jumpserver.__app__.hands.py + ~~~~~~~~~~~~~~~~~ + + This app depends other apps api, function .. should be import or write mack here. + + Other module of this app shouldn't connect with other app. + + :copyright: (c) 2014-2016 by Jumpserver Team. + :license: GPL v2, see LICENSE for more details. +""" + + + diff --git a/apps/users/urls.py b/apps/users/urls.py index 9b8025849..7f8045338 100644 --- a/apps/users/urls.py +++ b/apps/users/urls.py @@ -16,6 +16,7 @@ urlpatterns = [ name='reset-password-success'), url(r'^user$', views.UserListView.as_view(), name='user-list'), url(r'^user/(?P[0-9]+)$', views.UserDetailView.as_view(), name='user-detail'), + url(r'^user/(?P[0-9]+)/assets-perm$', views.UserDetailView.as_view(), name='user-detail'), url(r'^user/create$', views.UserCreateView.as_view(), name='user-create'), url(r'^user/(?P[0-9]+)/update$', views.UserUpdateView.as_view(), name='user-update'), url(r'^user/(?P[0-9]+)/delete$', views.UserDeleteView.as_view(), name='user-delete'), From 4db352f55b20cd472e62e6753447657319f501eb Mon Sep 17 00:00:00 2001 From: ibuler Date: Wed, 7 Sep 2016 20:51:33 +0800 Subject: [PATCH 12/50] Add idc --- apps/assets/forms.py | 23 ++++++- apps/assets/models.py | 2 +- .../templates/assets/asset_group_create.html | 14 +---- apps/assets/templates/assets/idc_create.html | 61 +++++++++++++++++++ apps/assets/templates/assets/idc_list.html | 35 +++++++++++ apps/assets/urls.py | 7 ++- apps/assets/views.py | 58 +++++++++++++++++- apps/templates/_nav.html | 2 +- apps/users/templates/users/_user.html | 2 +- .../templates/users/user_group_create.html | 2 +- 10 files changed, 185 insertions(+), 21 deletions(-) create mode 100644 apps/assets/templates/assets/idc_create.html create mode 100644 apps/assets/templates/assets/idc_list.html diff --git a/apps/assets/forms.py b/apps/assets/forms.py index ca7b1670f..dec1b0876 100644 --- a/apps/assets/forms.py +++ b/apps/assets/forms.py @@ -50,12 +50,31 @@ class AssetGroupForm(forms.ModelForm): } -class IdcForm(forms.ModelForm): +class IDCForm(forms.ModelForm): + assets = forms.ModelMultipleChoiceField(queryset=Asset.objects.all(), + label=_('Asset'), + required=False, + widget=forms.SelectMultiple( + attrs={'class': 'select2', 'data-placeholder': _('Select assets')}) + ) + + def __init__(self, *args, **kwargs): + if kwargs.get('instance'): + initial = kwargs.get('initial', {}) + initial['assets'] = kwargs['instance'].assets.all() + super(IDCForm, self).__init__(*args, **kwargs) + + def _save_m2m(self): + super(IDCForm, self)._save_m2m() + assets = self.cleaned_data['assets'] + self.instance.assets.clear() + self.instance.assets.add(*tuple(assets)) + class Meta: model = IDC fields = ['name', "bandwidth", "operator", 'contact', 'phone', 'address', 'network', 'comment'] widgets = { - 'name': forms.TextInput(attrs={'placeholder': 'Name'}), + 'name': forms.TextInput(attrs={'placeholder': _('Name')}), 'network': forms.Textarea( attrs={'placeholder': '192.168.1.0/24\n192.168.2.0/24'}) } diff --git a/apps/assets/models.py b/apps/assets/models.py index 3e4c224cf..c98caa671 100644 --- a/apps/assets/models.py +++ b/apps/assets/models.py @@ -136,7 +136,7 @@ class Asset(models.Model): password = models.CharField(max_length=256, null=True, blank=True, verbose_name=_("Admin password")) admin_user = models.ForeignKey(AdminUser, null=True, on_delete=models.SET_NULL, verbose_name=_("Admin user")) system_user = models.ManyToManyField(SystemUser, blank=True, verbose_name=_("System User")) - idc = models.ForeignKey(IDC, null=True, blank=True, on_delete=models.SET_NULL, verbose_name=_('IDC')) + idc = models.ForeignKey(IDC, null=True, related_name='assets', on_delete=models.SET_NULL, verbose_name=_('IDC')) mac_addr = models.CharField(max_length=20, null=True, blank=True, verbose_name=_("Mac address")) brand = models.CharField(max_length=64, null=True, blank=True, verbose_name=_('Brand')) cpu = models.CharField(max_length=64, null=True, blank=True, verbose_name=_('CPU')) diff --git a/apps/assets/templates/assets/asset_group_create.html b/apps/assets/templates/assets/asset_group_create.html index fe2238429..55b3d98e4 100644 --- a/apps/assets/templates/assets/asset_group_create.html +++ b/apps/assets/templates/assets/asset_group_create.html @@ -27,22 +27,10 @@
    -
    + {% csrf_token %} {{ form.name|bootstrap_horizontal }} {{ form.assets|bootstrap_horizontal }} - -{#
    #} -{# #} -{#
    #} -{# #} -{#
    #} -{#
    #} - {{ form.comment|bootstrap_horizontal }}
    diff --git a/apps/assets/templates/assets/idc_create.html b/apps/assets/templates/assets/idc_create.html new file mode 100644 index 000000000..b09375bdc --- /dev/null +++ b/apps/assets/templates/assets/idc_create.html @@ -0,0 +1,61 @@ +{% extends 'base.html' %} +{% load i18n %} +{% load static %} +{% load bootstrap %} +{% block custom_head_css_js %} + + +{% endblock %} + +{% block content %} +
    +
    +
    +
    + +
    + + {% csrf_token %} + {{ form.name|bootstrap_horizontal }} + {{ form.assets|bootstrap_horizontal }} + {{ form.bandwidth|bootstrap_horizontal }} + {{ form.operator|bootstrap_horizontal }} + {{ form.contact|bootstrap_horizontal }} + {{ form.phone|bootstrap_horizontal }} + {{ form.address|bootstrap_horizontal }} + {{ form.network|bootstrap_horizontal }} + {{ form.comment|bootstrap_horizontal }} + +
    +
    + + +
    +
    + +
    +
    +
    +
    +
    +{% endblock %} +{% block custom_foot_js %} + +{% endblock %} \ No newline at end of file diff --git a/apps/assets/templates/assets/idc_list.html b/apps/assets/templates/assets/idc_list.html new file mode 100644 index 000000000..4012331fc --- /dev/null +++ b/apps/assets/templates/assets/idc_list.html @@ -0,0 +1,35 @@ +{% extends '_list_base.html' %} +{% load i18n %} +{% load common_tags %} +{% block content_left_head %} + {% trans "Create IDC" %} +{% endblock %} + +{% block table_head %} + {% trans 'ID' %} + {% trans 'Name' %} + {% trans 'Asset num' %} + {% trans 'Bandwidth' %} + {% trans 'Contact' %} + {% trans 'Phone' %} + {% trans 'Address' %} + +{% endblock %} + +{% block table_body %} + {% for idc in idc_list %} + + {{ idc.id }} + {{ idc.name }} + {{ idc.assets.count }} + {{ idc.bandwidth }} + {{ idc.contact }} + {{ idc.phone }} + {{ idc.address }} + + {% trans 'Update' %} + {% trans 'Delete' %} + + + {% endfor %} +{% endblock %} diff --git a/apps/assets/urls.py b/apps/assets/urls.py index 68279389a..821fe144d 100644 --- a/apps/assets/urls.py +++ b/apps/assets/urls.py @@ -16,12 +16,17 @@ urlpatterns = [ url(r'^asset$', views.AssetListView.as_view(), name='asset-list'), url(r'^asset/create$', views.AssetCreateView.as_view(), name='asset-create'), url(r'^asset/(?P[0-9]+)$', views.AssetDetailView.as_view(), name='asset-detail'), - url(r'^asset/(?P[0-9]+)$/update', views.AssetUpdateView.as_view(), name='asset-update'), + url(r'^asset/(?P[0-9]+)/update', views.AssetUpdateView.as_view(), name='asset-update'), url(r'^asset/(?P[0-9]+)/delete$', views.AssetDeleteView.as_view(), name='asset-delete'), url(r'^asset-group$', views.AssetGroupListView.as_view(), name='asset-group-list'), url(r'^asset-group/create$', views.AssetGroupCreateView.as_view(), name='asset-group-create'), url(r'^asset-group/(?P[0-9]+)$', views.AssetGroupDetailView.as_view(), name='asset-group-detail'), url(r'^asset-group/(?P[0-9]+)/update$', views.AssetGroupUpdateView.as_view(), name='asset-group-update'), url(r'^asset-group/(?P[0-9]+)/delete$', views.AssetGroupDeleteView.as_view(), name='asset-group-delete'), + url(r'^idc$', views.IDCListView.as_view(), name='idc-list'), + url(r'^idc/create$', views.IDCCreateView.as_view(), name='idc-create'), + url(r'^idc/(?P[0-9]+)$', views.IDCDetailView.as_view(), name='idc-detail'), + url(r'^idc/(?P[0-9]+)/update', views.IDCUpdateView.as_view(), name='idc-update'), + url(r'^idc/(?P[0-9]+)/delete$', views.IDCDeleteView.as_view(), name='idc-delete'), # url(r'^api/v1.0/', include(router.urls)), ] diff --git a/apps/assets/views.py b/apps/assets/views.py index 958033e4a..16c54214c 100644 --- a/apps/assets/views.py +++ b/apps/assets/views.py @@ -14,7 +14,7 @@ from django.urls import reverse_lazy from django.views.generic.detail import DetailView, SingleObjectMixin from .models import Asset, AssetGroup, IDC, AssetExtend -from .forms import AssetForm, AssetGroupForm +from .forms import AssetForm, AssetGroupForm, IDCForm from .utils import AdminUserRequiredMixin @@ -142,3 +142,59 @@ class AssetGroupDeleteView(DeleteView): template_name = 'assets/delete_confirm.html' model = AssetGroup success_url = reverse_lazy('assets:asset-group-list') + + +class IDCListView(ListView): + model = IDC + paginate_by = settings.CONFIG.DISPLAY_PER_PAGE + context_object_name = 'idc_list' + template_name = 'assets/idc_list.html' + + def get_context_data(self, **kwargs): + context = { + 'app': _('Assets'), + 'action': _('IDC list'), + 'keyword': self.request.GET.get('keyword', '') + } + kwargs.update(context) + return super(IDCListView, self).get_context_data(**kwargs) + + def get_queryset(self): + self.queryset = super(IDCListView, self).get_queryset() + self.keyword = keyword = self.request.GET.get('keyword', '') + self.sort = sort = self.request.GET.get('sort', '-date_created') + + if keyword: + self.queryset = self.queryset.filter(Q(name__icontains=keyword) | + Q(comment__icontains=keyword)) + + if sort: + self.queryset = self.queryset.order_by(sort) + return self.queryset + + +class IDCCreateView(CreateView): + model = IDC + form_class = IDCForm + template_name = 'assets/idc_create.html' + success_url = reverse_lazy('assets:idc-list') + + def get_context_data(self, **kwargs): + context = { + 'app': 'assets', + 'action': 'Create IDC' + } + kwargs.update(context) + return super(IDCCreateView, self).get_context_data(**kwargs) + + +class IDCUpdateView(UpdateView): + pass + + +class IDCDetailView(DetailView): + pass + + +class IDCDeleteView(DeleteView): + pass diff --git a/apps/templates/_nav.html b/apps/templates/_nav.html index 1ad37fead..8f77cb47d 100644 --- a/apps/templates/_nav.html +++ b/apps/templates/_nav.html @@ -20,7 +20,7 @@
    -
    + {% csrf_token %}

    {% trans 'Account' %}

    {% block username %} {% endblock %} diff --git a/apps/users/templates/users/user_group_create.html b/apps/users/templates/users/user_group_create.html index 0b11c9679..6b80c68cd 100644 --- a/apps/users/templates/users/user_group_create.html +++ b/apps/users/templates/users/user_group_create.html @@ -27,7 +27,7 @@
    - + {% csrf_token %} {{ form.name|bootstrap_horizontal }} From dfc628a397de3a9e650fbc9bcfd2e2087b7c3eef Mon Sep 17 00:00:00 2001 From: ibuler Date: Wed, 7 Sep 2016 21:03:18 +0800 Subject: [PATCH 13/50] modify idc --- apps/assets/models.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/apps/assets/models.py b/apps/assets/models.py index c98caa671..642966e92 100644 --- a/apps/assets/models.py +++ b/apps/assets/models.py @@ -26,6 +26,30 @@ class IDC(models.Model): class Meta: db_table = 'idc' + @classmethod + def generate_fake(cls, count=100): + from random import seed, choice + import forgery_py + from django.db import IntegrityError + + seed() + for i in range(count): + idc = cls(name=forgery_py.name.full_name(), + bandwidth='200M', + contact=forgery_py.name.full_name(), + phone=forgery_py.address.phone(), + address=forgery_py.address.city() + forgery_py.address.street_address(), + network="192.168.1.10/24\n192.168.1.20", + operator=choice(['北京联通', '北京电信', 'BGP全网通']), + comment=forgery_py.lorem_ipsum.sentence(), + created_by='Fake') + try: + idc.save() + logger.debug('Generate fake asset group: %s' % idc.name) + except IntegrityError: + print('Error continue') + continue + class AssetExtend(models.Model): key = models.CharField(max_length=64, null=True, blank=True, verbose_name=_('KEY')) From 04151b99574d291614f6f9269583a449402fbc04 Mon Sep 17 00:00:00 2001 From: "xiaokong1937@gmail.com" <763691951@qq.com> Date: Wed, 7 Sep 2016 21:53:27 +0800 Subject: [PATCH 14/50] user group quickedit frontend and rest API --- apps/static/js/jumpserver.js | 22 ++++-- apps/users/templates/users/user_detail.html | 85 ++++++++++++++++++--- 2 files changed, 87 insertions(+), 20 deletions(-) diff --git a/apps/static/js/jumpserver.js b/apps/static/js/jumpserver.js index 8567b418a..5b7452b6b 100644 --- a/apps/static/js/jumpserver.js +++ b/apps/static/js/jumpserver.js @@ -153,23 +153,29 @@ function getIDall() { return check_array.join(","); } -function APIUpdateAttr(url, body, success, error, method) { +function APIUpdateAttr(props) { + // props = {url: .., body: , success: , error: , method: ,} + props = props || {}; $.ajax({ - url: url, - type: method || "PATCH", - data: body + url: props.url, + type: props.method || "PATCH", + data: props.body, + contentType: props.content_type || "application/json; charset=utf-8", + dataType: props.data_type || "json", }).done(function(data, textStatue, jqXHR) { - if (typeof success === 'function') { - return success(data) + if (typeof props.success === 'function') { + return props.success(data) } else { toastr.success('Update Success!') } }).fail(function(jqXHR, textStatue, errorThrown) { - if (typeof error === 'function') { - return error(errorThrown) + if (typeof props.error === 'function') { + return props.error(errorThrown) } else { toastr.error('Error occurred while updating.') } }) return true; } + +var jumpserver = new Object(); diff --git a/apps/users/templates/users/user_detail.html b/apps/users/templates/users/user_detail.html index c11ee523e..6b23790b3 100644 --- a/apps/users/templates/users/user_detail.html +++ b/apps/users/templates/users/user_detail.html @@ -181,31 +181,31 @@ {% trans 'User group' %}
    - +
    {% for group in user_object.groups.all %} - - + + {% endfor %} @@ -223,8 +223,43 @@ {% endblock %} {% block custom_foot_js %} {% endblock %} From 6f4a83238905730db9158f2e53b619ac795c9269 Mon Sep 17 00:00:00 2001 From: ibuler Date: Thu, 8 Sep 2016 00:40:59 +0800 Subject: [PATCH 15/50] Add admin user list view --- apps/assets/hands.py | 2 +- apps/assets/migrations/0001_initial.py | 44 ++++++----- apps/assets/models.py | 64 ++++++++++++++-- .../templates/assets/admin_user_list.html | 41 +++++++++++ apps/assets/urls.py | 5 ++ apps/assets/utils.py | 19 ----- apps/assets/views.py | 70 +++++++++++++++--- apps/common/utils.py | 10 +++ apps/templates/_nav.html | 6 +- apps/users/models.py | 73 ++++++++----------- 10 files changed, 231 insertions(+), 103 deletions(-) create mode 100644 apps/assets/templates/assets/admin_user_list.html diff --git a/apps/assets/hands.py b/apps/assets/hands.py index e87060ecd..3dab35ec7 100644 --- a/apps/assets/hands.py +++ b/apps/assets/hands.py @@ -11,4 +11,4 @@ """ - +from users.utils import AdminUserRequiredMixin diff --git a/apps/assets/migrations/0001_initial.py b/apps/assets/migrations/0001_initial.py index e2ae4c8a1..94a2908dd 100644 --- a/apps/assets/migrations/0001_initial.py +++ b/apps/assets/migrations/0001_initial.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.10 on 2016-09-05 12:50 +# Generated by Django 1.10 on 2016-09-07 15:11 from __future__ import unicode_literals from django.db import migrations, models @@ -24,12 +24,12 @@ class Migration(migrations.Migration): ('private_key', models.CharField(blank=True, max_length=4096, null=True, verbose_name='SSH private key')), ('is_default', models.BooleanField(default=True, verbose_name='As default')), ('auto_update', models.BooleanField(default=True, verbose_name='Auto update pass/key')), - ('date_added', models.DateTimeField(auto_now=True, null=True)), + ('date_created', models.DateTimeField(auto_now=True, null=True)), ('create_by', models.CharField(blank=True, max_length=32, null=True, verbose_name='Created by')), ('comment', models.TextField(blank=True, verbose_name='Comment')), ], options={ - 'db_table': 'adminuser', + 'db_table': 'admin_user', }, ), migrations.CreateModel( @@ -55,9 +55,9 @@ class Migration(migrations.Migration): ('sn', models.CharField(blank=True, max_length=128, null=True, unique=True, verbose_name='Serial number')), ('created_by', models.CharField(blank=True, max_length=32, null=True, verbose_name='Created by')), ('is_active', models.BooleanField(default=True, verbose_name='Is active')), - ('date_added', models.DateTimeField(auto_now=True, null=True, verbose_name='Date added')), + ('date_created', models.DateTimeField(auto_now=True, null=True, verbose_name='Date added')), ('comment', models.CharField(blank=True, max_length=128, null=True, verbose_name='Comment')), - ('admin_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='assets.AdminUser', verbose_name='Admin user')), + ('admin_user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='assets.AdminUser', verbose_name='Admin user')), ], options={ 'db_table': 'asset', @@ -70,23 +70,24 @@ class Migration(migrations.Migration): ('key', models.CharField(blank=True, max_length=64, null=True, verbose_name='KEY')), ('value', models.CharField(blank=True, max_length=64, null=True, verbose_name='VALUE')), ('created_by', models.CharField(blank=True, max_length=32, verbose_name='Created by')), - ('date_added', models.DateTimeField(auto_now=True, null=True)), + ('date_created', models.DateTimeField(auto_now=True, null=True)), ('comment', models.TextField(blank=True, verbose_name='Comment')), ], options={ - 'db_table': 'assetextend', + 'db_table': 'asset_extend', }, ), migrations.CreateModel( name='AssetGroup', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(blank=True, max_length=64, null=True, unique=True, verbose_name='Name')), - ('created_by', models.CharField(blank=True, max_length=32, null=True, verbose_name='Created by')), + ('name', models.CharField(max_length=64, unique=True, verbose_name='Name')), + ('created_by', models.CharField(blank=True, max_length=32, verbose_name='Created by')), + ('date_created', models.DateTimeField(auto_now=True, null=True, verbose_name='Date added')), ('comment', models.TextField(blank=True, verbose_name='Comment')), ], options={ - 'db_table': 'assetgroup', + 'db_table': 'asset_group', }, ), migrations.CreateModel( @@ -99,7 +100,7 @@ class Migration(migrations.Migration): ('phone', models.CharField(blank=True, max_length=32, verbose_name='Phone')), ('address', models.CharField(blank=True, max_length=128, verbose_name='Address')), ('network', models.TextField(blank=True, verbose_name='Network')), - ('date_added', models.DateField(auto_now=True, null=True, verbose_name='Date added')), + ('date_created', models.DateTimeField(auto_now=True, null=True, verbose_name='Date added')), ('operator', models.CharField(blank=True, max_length=32, verbose_name='Operator')), ('created_by', models.CharField(blank=True, max_length=32, verbose_name='Created by')), ('comment', models.TextField(blank=True, verbose_name='Comment')), @@ -115,7 +116,7 @@ class Migration(migrations.Migration): ('key', models.CharField(blank=True, max_length=64, null=True, verbose_name='KEY')), ('value', models.CharField(blank=True, max_length=64, null=True, verbose_name='VALUE')), ('created_by', models.CharField(blank=True, max_length=32, verbose_name='Created by')), - ('date_added', models.DateTimeField(auto_now=True, null=True)), + ('date_created', models.DateTimeField(auto_now=True, null=True)), ('comment', models.CharField(blank=True, max_length=128, verbose_name='Comment')), ('asset', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='assets.Asset', verbose_name='Asset')), ], @@ -124,7 +125,7 @@ class Migration(migrations.Migration): }, ), migrations.CreateModel( - name='SysUser', + name='SystemUser', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=128, unique=True, verbose_name='Name')), @@ -140,14 +141,19 @@ class Migration(migrations.Migration): ('shell', models.CharField(blank=True, max_length=64, verbose_name='Shell')), ('home', models.CharField(blank=True, max_length=64, verbose_name='Home')), ('uid', models.IntegerField(blank=True, verbose_name='Uid')), - ('date_added', models.DateTimeField(auto_now=True, null=True)), + ('date_created', models.DateTimeField(auto_now=True, null=True)), ('create_by', models.CharField(blank=True, max_length=32, verbose_name='Created by')), ('comment', models.CharField(blank=True, max_length=128, verbose_name='Comment')), ], options={ - 'db_table': 'sysuser', + 'db_table': 'system_user', }, ), + migrations.AddField( + model_name='assetgroup', + name='system_users', + field=models.ManyToManyField(blank=True, related_name='asset_groups', to='assets.SystemUser'), + ), migrations.AddField( model_name='asset', name='env', @@ -156,12 +162,12 @@ class Migration(migrations.Migration): migrations.AddField( model_name='asset', name='groups', - field=models.ManyToManyField(blank=True, null=True, to='assets.AssetGroup', verbose_name='Asset groups'), + field=models.ManyToManyField(related_name='assets', to='assets.AssetGroup', verbose_name='Asset groups'), ), migrations.AddField( model_name='asset', name='idc', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='assets.IDC', verbose_name='IDC'), + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='assets', to='assets.IDC', verbose_name='IDC'), ), migrations.AddField( model_name='asset', @@ -170,8 +176,8 @@ class Migration(migrations.Migration): ), migrations.AddField( model_name='asset', - name='sys_user', - field=models.ManyToManyField(blank=True, null=True, to='assets.SysUser', verbose_name='System User'), + name='system_user', + field=models.ManyToManyField(blank=True, to='assets.SystemUser', verbose_name='System User'), ), migrations.AddField( model_name='asset', diff --git a/apps/assets/models.py b/apps/assets/models.py index 642966e92..f968f05b0 100644 --- a/apps/assets/models.py +++ b/apps/assets/models.py @@ -5,6 +5,8 @@ from django.db import models import logging from django.utils.translation import ugettext_lazy as _ +from common.utils import encrypt, decrypt + logger = logging.getLogger(__name__) @@ -68,20 +70,64 @@ class AssetExtend(models.Model): class AdminUser(models.Model): name = models.CharField(max_length=128, unique=True, null=True, blank=True, verbose_name=_('Name')) username = models.CharField(max_length=16, null=True, blank=True, verbose_name=_('Username')) - password = models.CharField(max_length=256, null=True, blank=True, verbose_name=_('Password')) - private_key = models.CharField(max_length=4096, null=True, blank=True, verbose_name=_('SSH private key')) - is_default = models.BooleanField(default=True, verbose_name=_('As default')) - auto_update = models.BooleanField(default=True, verbose_name=_('Auto update pass/key')) - date_created = models.DateTimeField(auto_now=True, null=True, blank=True) - create_by = models.CharField(max_length=32, null=True, blank=True, verbose_name=_('Created by')) + _password = models.CharField(max_length=256, null=True, blank=True, verbose_name=_('Password')) + _private_key = models.CharField(max_length=4096, null=True, blank=True, verbose_name=_('SSH private key')) + _public_key = models.CharField(max_length=4096, null=True, blank=True, verbose_name=_('SSH public key')) + as_default = models.BooleanField(default=True, verbose_name=_('As default')) comment = models.TextField(blank=True, verbose_name=_('Comment')) + date_created = models.DateTimeField(auto_now=True, null=True, blank=True) + created_by = models.CharField(max_length=32, null=True, blank=True, verbose_name=_('Created by')) def __unicode__(self): return self.name + @property + def password(self): + return decrypt(self._password) + + @password.setter + def password(self, password_raw): + self._password = encrypt(password_raw) + + @property + def private_key(self): + return decrypt(self._private_key) + + @private_key.setter + def private_key(self, private_key_raw): + self._private_key = encrypt(private_key_raw) + + @property + def public_key(self): + return decrypt(self._public_key) + + @public_key.setter + def public_key(self, public_key_raw): + self._public_key = encrypt(public_key_raw) + class Meta: db_table = 'admin_user' + @classmethod + def generate_fake(cls, count=100): + from random import seed, choice + import forgery_py + from django.db import IntegrityError + + seed() + for i in range(count): + obj = cls(name=forgery_py.name.full_name(), + username=forgery_py.internet.user_name(), + password=forgery_py.lorem_ipsum.word(), + comment=forgery_py.lorem_ipsum.sentence(), + created_by='Fake') + try: + obj.save() + logger.debug('Generate fake asset group: %s' % obj.name) + except IntegrityError: + print('Error continue') + continue + class SystemUser(models.Model): PROTOCOL_CHOICES = ( @@ -102,7 +148,7 @@ class SystemUser(models.Model): home = models.CharField(max_length=64, blank=True, verbose_name=_('Home')) uid = models.IntegerField(blank=True, verbose_name=_('Uid')) date_created = models.DateTimeField(auto_now=True, null=True) - create_by = models.CharField(max_length=32, blank=True, verbose_name=_('Created by')) + created_by = models.CharField(max_length=32, blank=True, verbose_name=_('Created by')) comment = models.CharField(max_length=128, blank=True, verbose_name=_('Comment')) def __unicode__(self): @@ -223,3 +269,7 @@ class Label(models.Model): class Meta: db_table = 'label' + +def generate_fake(): + for cls in (Asset, AssetGroup, IDC): + cls.generate_fake() diff --git a/apps/assets/templates/assets/admin_user_list.html b/apps/assets/templates/assets/admin_user_list.html new file mode 100644 index 000000000..d7aae75aa --- /dev/null +++ b/apps/assets/templates/assets/admin_user_list.html @@ -0,0 +1,41 @@ +{% extends '_list_base.html' %} +{% load i18n %} +{% load common_tags %} +{% block content_left_head %} + {% trans "Create admin user" %} +{% endblock %} + +{% block table_head %} + + + + + + + +{% endblock %} + +{% block table_body %} + {% for admin_user in admin_user_list %} + + + + + + + + + + {% endfor %} +{% endblock %} diff --git a/apps/assets/urls.py b/apps/assets/urls.py index 821fe144d..631dc7189 100644 --- a/apps/assets/urls.py +++ b/apps/assets/urls.py @@ -28,5 +28,10 @@ urlpatterns = [ url(r'^idc/(?P[0-9]+)$', views.IDCDetailView.as_view(), name='idc-detail'), url(r'^idc/(?P[0-9]+)/update', views.IDCUpdateView.as_view(), name='idc-update'), url(r'^idc/(?P[0-9]+)/delete$', views.IDCDeleteView.as_view(), name='idc-delete'), + url(r'^admin-user$', views.AdminUserListView.as_view(), name='admin-user-list'), + url(r'^admin-user/create$', views.AdminUserCreateView.as_view(), name='admin-user-create'), + url(r'^admin-user/(?P[0-9]+)$', views.AdminUserDetailView.as_view(), name='admin-user-detail'), + url(r'^admin-user/(?P[0-9]+)/update', views.AdminUserUpdateView.as_view(), name='admin-user-update'), + url(r'^admin-user/(?P[0-9]+)/delete$', views.AdminUserDeleteView.as_view(), name='admin-user-delete'), # url(r'^api/v1.0/', include(router.urls)), ] diff --git a/apps/assets/utils.py b/apps/assets/utils.py index 2fb5bfe7f..9a42d3031 100644 --- a/apps/assets/utils.py +++ b/apps/assets/utils.py @@ -1,23 +1,4 @@ # ~*~ coding: utf-8 ~*~ # -from django.contrib.auth.mixins import UserPassesTestMixin -from django.urls import reverse_lazy - -from common.tasks import send_mail_async -from common.utils import reverse -from users.models import User - - -try: - import cStringIO as StringIO -except ImportError: - import StringIO - - -class AdminUserRequiredMixin(UserPassesTestMixin): - login_url = reverse_lazy('users:login') - - def test_func(self): - return self.request.user.is_staff diff --git a/apps/assets/views.py b/apps/assets/views.py index 16c54214c..2319b81f7 100644 --- a/apps/assets/views.py +++ b/apps/assets/views.py @@ -13,9 +13,9 @@ from django.views.generic.edit import CreateView, DeleteView, FormView, UpdateVi from django.urls import reverse_lazy from django.views.generic.detail import DetailView, SingleObjectMixin -from .models import Asset, AssetGroup, IDC, AssetExtend +from .models import Asset, AssetGroup, IDC, AssetExtend, AdminUser, SystemUser from .forms import AssetForm, AssetGroupForm, IDCForm -from .utils import AdminUserRequiredMixin +from .hands import AdminUserRequiredMixin class AssetCreateView(CreateView): @@ -50,7 +50,7 @@ class AssetDetailView(DetailView): template_name = 'assets/asset_detail.html' -class AssetGroupCreateView(CreateView): +class AssetGroupCreateView(AdminUserRequiredMixin, CreateView): model = AssetGroup form_class = AssetGroupForm template_name = 'assets/asset_group_create.html' @@ -72,7 +72,7 @@ class AssetGroupCreateView(CreateView): return super(AssetGroupCreateView, self).form_valid(form) -class AssetGroupListView(ListView): +class AssetGroupListView(AdminUserRequiredMixin, ListView): model = AssetGroup paginate_by = settings.CONFIG.DISPLAY_PER_PAGE context_object_name = 'asset_group_list' @@ -101,7 +101,7 @@ class AssetGroupListView(ListView): return self.queryset -class AssetGroupDetailView(SingleObjectMixin, ListView): +class AssetGroupDetailView(SingleObjectMixin, AdminUserRequiredMixin, ListView): template_name = 'assets/asset_group_detail.html' paginate_by = settings.CONFIG.DISPLAY_PER_PAGE @@ -122,7 +122,7 @@ class AssetGroupDetailView(SingleObjectMixin, ListView): return super(AssetGroupDetailView, self).get_context_data(**kwargs) -class AssetGroupUpdateView(UpdateView): +class AssetGroupUpdateView(AdminUserRequiredMixin, UpdateView): model = AssetGroup form_class = AssetGroupForm template_name = 'assets/asset_group_create.html' @@ -138,13 +138,13 @@ class AssetGroupUpdateView(UpdateView): return super(AssetGroupUpdateView, self).get_context_data(**kwargs) -class AssetGroupDeleteView(DeleteView): +class AssetGroupDeleteView(AdminUserRequiredMixin, DeleteView): template_name = 'assets/delete_confirm.html' model = AssetGroup success_url = reverse_lazy('assets:asset-group-list') -class IDCListView(ListView): +class IDCListView(AdminUserRequiredMixin, ListView): model = IDC paginate_by = settings.CONFIG.DISPLAY_PER_PAGE context_object_name = 'idc_list' @@ -173,7 +173,7 @@ class IDCListView(ListView): return self.queryset -class IDCCreateView(CreateView): +class IDCCreateView(AdminUserRequiredMixin, CreateView): model = IDC form_class = IDCForm template_name = 'assets/idc_create.html' @@ -188,13 +188,59 @@ class IDCCreateView(CreateView): return super(IDCCreateView, self).get_context_data(**kwargs) -class IDCUpdateView(UpdateView): +class IDCUpdateView(AdminUserRequiredMixin, UpdateView): pass -class IDCDetailView(DetailView): +class IDCDetailView(AdminUserRequiredMixin, DetailView): pass -class IDCDeleteView(DeleteView): +class IDCDeleteView(AdminUserRequiredMixin, DeleteView): + pass + + +class AdminUserListView(AdminUserRequiredMixin, ListView): + model = AdminUser + paginate_by = settings.CONFIG.DISPLAY_PER_PAGE + context_object_name = 'admin_user_list' + template_name = 'assets/admin_user_list.html' + + def get_context_data(self, **kwargs): + context = { + 'app': _('Assets'), + 'action': _('Admin user list'), + 'keyword': self.request.GET.get('keyword', '') + } + kwargs.update(context) + return super(AdminUserListView, self).get_context_data(**kwargs) + + def get_queryset(self): + # Todo: Default group by lose asset connection num + self.queryset = super(AdminUserListView, self).get_queryset() + self.keyword = keyword = self.request.GET.get('keyword', '') + self.sort = sort = self.request.GET.get('sort', '-date_created') + + if keyword: + self.queryset = self.queryset.filter(Q(name__icontains=keyword) | + Q(comment__icontains=keyword)) + + if sort: + self.queryset = self.queryset.order_by(sort) + return self.queryset + + +class AdminUserCreateView(AdminUserRequiredMixin, CreateView): + pass + + +class AdminUserUpdateView(AdminUserRequiredMixin, UpdateView): + pass + + +class AdminUserDetailView(AdminUserRequiredMixin, DetailView): + pass + + +class AdminUserDeleteView(AdminUserRequiredMixin, DeleteView): pass diff --git a/apps/common/utils.py b/apps/common/utils.py index 7c3df178a..4451f2532 100644 --- a/apps/common/utils.py +++ b/apps/common/utils.py @@ -5,6 +5,7 @@ from __future__ import unicode_literals from django.shortcuts import reverse as dj_reverse from django.conf import settings +from django.core import signing def reverse(viewname, urlconf=None, args=None, kwargs=None, current_app=None, external=False): @@ -21,3 +22,12 @@ def get_object_or_none(model, **kwargs): except model.DoesNotExist: obj = None return obj + + +def encrypt(*args, **kwargs): + return signing.dumps(*args, **kwargs) + + +def decrypt(*args, **kwargs): + return signing.loads(*args, **kwargs) + diff --git a/apps/templates/_nav.html b/apps/templates/_nav.html index 8f77cb47d..07ac9bc25 100644 --- a/apps/templates/_nav.html +++ b/apps/templates/_nav.html @@ -21,7 +21,7 @@
  • {% trans 'Asset' %}
  • {% trans 'Asset group' %}
  • {% trans 'IDC' %}
  • -
  • {% trans 'Admin user' %}
  • +
  • {% trans 'Admin user' %}
  • {% trans 'System user' %}
  • {% trans 'Label' %}
  • @@ -30,10 +30,10 @@ {% trans 'Perms' %} diff --git a/apps/users/models.py b/apps/users/models.py index bbf89239f..f78c6082d 100644 --- a/apps/users/models.py +++ b/apps/users/models.py @@ -14,46 +14,9 @@ from django.dispatch import receiver from django.db import IntegrityError from django.utils.translation import ugettext_lazy as _ from rest_framework.authtoken.models import Token - from django.core import signing -# class Role(models.Model): -# name = models.CharField('name', max_length=80, unique=True) -# permissions = models.ManyToManyField( -# Permission, -# verbose_name='permissions', -# blank=True, -# ) -# date_created = models.DateTimeField(auto_now_add=True) -# created_by = models.CharField(max_length=100) -# comment = models.CharField(max_length=80, blank=True) -# -# def __unicode__(self): -# return self.name -# -# def delete(self, using=None, keep_parents=False): -# if self.users.all().count() > 0: -# raise OperationalError('Role %s has some member, should not be delete.' % self.name) -# else: -# return super(Role, self).delete(using=using, keep_parents=keep_parents) -# -# class Meta: -# db_table = 'role' -# -# @classmethod -# def initial(cls): -# roles = { -# 'Administrator': {'permissions': Permission.objects.all(), 'comment': '管理员'}, -# 'User': {'permissions': [], 'comment': '用户'}, -# 'Auditor': {'permissions': Permission.objects.filter(content_type__app_label='audits'), -# 'comment': '审计员'}, -# } - -# for role_name, props in roles.items(): -# if not cls.objects.filter(name=role_name): -# role = cls.objects.create(name=role_name, comment=props.get('comment', ''), created_by='System') -# if props.get('permissions'): -# role.permissions = props.get('permissions') +from common.utils import encrypt, decrypt class UserGroup(models.Model): @@ -65,6 +28,11 @@ class UserGroup(models.Model): def __unicode__(self): return self.name + def has_member(self, user): + if user in self.users.all(): + return True + return False + class Meta: db_table = 'user-group' @@ -113,8 +81,8 @@ class User(AbstractUser): phone = models.CharField(max_length=20, blank=True, verbose_name=_('Phone')) enable_otp = models.BooleanField(default=False, verbose_name=_('Enable OTP')) secret_key_otp = models.CharField(max_length=16, blank=True) - private_key = models.CharField(max_length=5000, blank=True, verbose_name=_('ssh private key')) - public_key = models.CharField(max_length=1000, blank=True, verbose_name=_('ssh public key')) + _private_key = models.CharField(max_length=5000, blank=True, verbose_name=_('ssh private key')) + _public_key = models.CharField(max_length=1000, blank=True, verbose_name=_('ssh public key')) comment = models.TextField(max_length=200, blank=True, verbose_name=_('Comment')) is_first_login = models.BooleanField(default=False) date_expired = models.DateTimeField(default=date_expired_default, blank=True, null=True, @@ -131,8 +99,8 @@ class User(AbstractUser): #: user = User(username='example', ...) #: user.set_password('password') @password_raw.setter - def password_raw(self, raw_password): - self.set_password(raw_password) + def password_raw(self, password_raw_): + self.set_password(password_raw_) @property def is_expired(self): @@ -141,6 +109,22 @@ class User(AbstractUser): else: return True + @property + def private_key(self): + return decrypt(self._private_key) + + @private_key.setter + def private_key(self, private_key_raw): + self._private_key = encrypt(private_key_raw) + + @property + def public_key(self): + return decrypt(self._public_key) + + @public_key.setter + def public_key(self, public_key_raw): + self._public_key = encrypt(public_key_raw) + @property def is_superuser(self): if self.role == 'Admin': @@ -198,6 +182,11 @@ class User(AbstractUser): def generate_reset_token(self): return signing.dumps({'reset': self.id, 'email': self.email}) + def is_member_of(self, user_group): + if user_group in self.groups.all(): + return True + return False + @classmethod def validate_reset_token(cls, token, max_age=3600): try: From 5a0b119410e60444bdaa8ab623e5568c7dc6361d Mon Sep 17 00:00:00 2001 From: ibuler Date: Thu, 8 Sep 2016 00:59:00 +0800 Subject: [PATCH 16/50] Stash it --- apps/assets/forms.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/apps/assets/forms.py b/apps/assets/forms.py index dec1b0876..33ff3ed4e 100644 --- a/apps/assets/forms.py +++ b/apps/assets/forms.py @@ -78,3 +78,34 @@ class IDCForm(forms.ModelForm): 'network': forms.Textarea( attrs={'placeholder': '192.168.1.0/24\n192.168.2.0/24'}) } + + +class AdminUser(forms.ModelForm): + assets = forms.ModelMultipleChoiceField(queryset=Asset.objects.all(), + label=_('Asset'), + required=False, + widget=forms.SelectMultiple( + attrs={'class': 'select2', 'data-placeholder': _('Select assets')}) + ) + password = forms.CharField(widget=forms.PasswordInput, max_length=100, strip=True) + + def __init__(self, *args, **kwargs): + if kwargs.get('instance'): + initial = kwargs.get('initial', {}) + initial['assets'] = kwargs['instance'].assets.all() + super(AdminUser, self).__init__(*args, **kwargs) + + def _save_m2m(self): + super(AdminUser, self)._save_m2m() + assets = self.cleaned_data['assets'] + self.instance.assets.clear() + self.instance.assets.add(*tuple(assets)) + + class Meta: + model = IDC + fields = ['name', "username", 'as_default', 'comment'] + widgets = { + 'name': forms.TextInput(attrs={'placeholder': _('Name')}), + 'network': forms.Textarea( + attrs={'placeholder': '192.168.1.0/24\n192.168.2.0/24'}) + } \ No newline at end of file From ff30435eb4f2e54e2198219b0780a8fb1daf9431 Mon Sep 17 00:00:00 2001 From: ibuler Date: Thu, 8 Sep 2016 18:12:53 +0800 Subject: [PATCH 17/50] Finish adin user add --- apps/assets/forms.py | 42 ++++++++---- apps/assets/migrations/0001_initial.py | 20 +++--- apps/assets/models.py | 23 +++---- .../templates/assets/admin_user_create.html | 64 +++++++++++++++++++ apps/assets/views.py | 29 +++++++-- apps/fixtures/fake.json | 2 +- apps/users/views.py | 2 +- 7 files changed, 141 insertions(+), 41 deletions(-) create mode 100644 apps/assets/templates/assets/admin_user_create.html diff --git a/apps/assets/forms.py b/apps/assets/forms.py index 33ff3ed4e..8b5262714 100644 --- a/apps/assets/forms.py +++ b/apps/assets/forms.py @@ -1,7 +1,7 @@ # coding:utf-8 from django import forms -from .models import IDC, Asset, AssetGroup +from .models import IDC, Asset, AssetGroup, AdminUser, SystemUser from django.utils.translation import gettext_lazy as _ @@ -11,7 +11,7 @@ class AssetForm(forms.ModelForm): fields = [ "ip", "other_ip", "remote_card_ip", "hostname", "port", "groups", "username", "password", - "idc", "mac_addr", "brand", "cpu", "memory", "disk", "os", "cabinet_no", "cabinet_pos", + "idc", "mac_address", "brand", "cpu", "memory", "disk", "os", "cabinet_no", "cabinet_pos", "number", "status", "type", "env", "sn", "is_active", "comment" ] @@ -80,32 +80,52 @@ class IDCForm(forms.ModelForm): } -class AdminUser(forms.ModelForm): +class AdminUserForm(forms.ModelForm): assets = forms.ModelMultipleChoiceField(queryset=Asset.objects.all(), label=_('Asset'), required=False, widget=forms.SelectMultiple( attrs={'class': 'select2', 'data-placeholder': _('Select assets')}) ) - password = forms.CharField(widget=forms.PasswordInput, max_length=100, strip=True) + password = forms.CharField(widget=forms.PasswordInput, max_length=100, min_length=8, strip=True, + help_text=_('If also set private key, use that first'), required=False) + private_key_file = forms.FileField(required=False) def __init__(self, *args, **kwargs): if kwargs.get('instance'): initial = kwargs.get('initial', {}) initial['assets'] = kwargs['instance'].assets.all() - super(AdminUser, self).__init__(*args, **kwargs) + super(AdminUserForm, self).__init__(*args, **kwargs) def _save_m2m(self): - super(AdminUser, self)._save_m2m() + super(AdminUserForm, self)._save_m2m() assets = self.cleaned_data['assets'] self.instance.assets.clear() self.instance.assets.add(*tuple(assets)) + def save(self, commit=True): + admin_user = super(AdminUserForm, self).save(commit=commit) + password = self.cleaned_data['password'] + private_key_file = self.cleaned_data['private_key_file'] + + if password: + admin_user.password = password + print(password) + if private_key_file: + print(private_key_file) + admin_user.private_key = private_key_file.read() + admin_user.save() + return self.instance + class Meta: - model = IDC - fields = ['name', "username", 'as_default', 'comment'] + model = AdminUser + fields = ['name', 'username', 'password', 'private_key_file', 'as_default', 'comment'] widgets = { 'name': forms.TextInput(attrs={'placeholder': _('Name')}), - 'network': forms.Textarea( - attrs={'placeholder': '192.168.1.0/24\n192.168.2.0/24'}) - } \ No newline at end of file + 'username': forms.TextInput(attrs={'placeholder': _('Username')}), + } + help_texts = { + 'name': '* required', + 'username': '* required', + } + diff --git a/apps/assets/migrations/0001_initial.py b/apps/assets/migrations/0001_initial.py index 94a2908dd..a63d3d984 100644 --- a/apps/assets/migrations/0001_initial.py +++ b/apps/assets/migrations/0001_initial.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.10 on 2016-09-07 15:11 +# Generated by Django 1.10 on 2016-09-08 03:02 from __future__ import unicode_literals from django.db import migrations, models @@ -18,15 +18,15 @@ class Migration(migrations.Migration): name='AdminUser', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(blank=True, max_length=128, null=True, unique=True, verbose_name='Name')), - ('username', models.CharField(blank=True, max_length=16, null=True, verbose_name='Username')), - ('password', models.CharField(blank=True, max_length=256, null=True, verbose_name='Password')), - ('private_key', models.CharField(blank=True, max_length=4096, null=True, verbose_name='SSH private key')), - ('is_default', models.BooleanField(default=True, verbose_name='As default')), - ('auto_update', models.BooleanField(default=True, verbose_name='Auto update pass/key')), - ('date_created', models.DateTimeField(auto_now=True, null=True)), - ('create_by', models.CharField(blank=True, max_length=32, null=True, verbose_name='Created by')), + ('name', models.CharField(max_length=128, unique=True, verbose_name='Name')), + ('username', models.CharField(max_length=16, verbose_name='Username')), + ('_password', models.CharField(blank=True, max_length=256, verbose_name='Password')), + ('_private_key', models.CharField(blank=True, max_length=4096, verbose_name='SSH private key')), + ('_public_key', models.CharField(blank=True, max_length=4096, verbose_name='SSH public key')), + ('as_default', models.BooleanField(default=False, verbose_name='As default')), ('comment', models.TextField(blank=True, verbose_name='Comment')), + ('date_created', models.DateTimeField(auto_now=True, null=True)), + ('created_by', models.CharField(max_length=32, null=True, verbose_name='Created by')), ], options={ 'db_table': 'admin_user', @@ -142,7 +142,7 @@ class Migration(migrations.Migration): ('home', models.CharField(blank=True, max_length=64, verbose_name='Home')), ('uid', models.IntegerField(blank=True, verbose_name='Uid')), ('date_created', models.DateTimeField(auto_now=True, null=True)), - ('create_by', models.CharField(blank=True, max_length=32, verbose_name='Created by')), + ('created_by', models.CharField(blank=True, max_length=32, verbose_name='Created by')), ('comment', models.CharField(blank=True, max_length=128, verbose_name='Comment')), ], options={ diff --git a/apps/assets/models.py b/apps/assets/models.py index f968f05b0..213a49822 100644 --- a/apps/assets/models.py +++ b/apps/assets/models.py @@ -68,15 +68,15 @@ class AssetExtend(models.Model): class AdminUser(models.Model): - name = models.CharField(max_length=128, unique=True, null=True, blank=True, verbose_name=_('Name')) - username = models.CharField(max_length=16, null=True, blank=True, verbose_name=_('Username')) - _password = models.CharField(max_length=256, null=True, blank=True, verbose_name=_('Password')) - _private_key = models.CharField(max_length=4096, null=True, blank=True, verbose_name=_('SSH private key')) - _public_key = models.CharField(max_length=4096, null=True, blank=True, verbose_name=_('SSH public key')) - as_default = models.BooleanField(default=True, verbose_name=_('As default')) + name = models.CharField(max_length=128, unique=True, verbose_name=_('Name')) + username = models.CharField(max_length=16, verbose_name=_('Username')) + _password = models.CharField(max_length=256, blank=True, verbose_name=_('Password')) + _private_key = models.CharField(max_length=4096, blank=True, verbose_name=_('SSH private key')) + _public_key = models.CharField(max_length=4096, blank=True, verbose_name=_('SSH public key')) + as_default = models.BooleanField(default=False, verbose_name=_('As default')) comment = models.TextField(blank=True, verbose_name=_('Comment')) - date_created = models.DateTimeField(auto_now=True, null=True, blank=True) - created_by = models.CharField(max_length=32, null=True, blank=True, verbose_name=_('Created by')) + date_created = models.DateTimeField(auto_now=True, null=True) + created_by = models.CharField(max_length=32, null=True, verbose_name=_('Created by')) def __unicode__(self): return self.name @@ -110,7 +110,7 @@ class AdminUser(models.Model): @classmethod def generate_fake(cls, count=100): - from random import seed, choice + from random import seed import forgery_py from django.db import IntegrityError @@ -204,10 +204,11 @@ class Asset(models.Model): groups = models.ManyToManyField(AssetGroup, related_name='assets', verbose_name=_('Asset groups')) username = models.CharField(max_length=16, null=True, blank=True, verbose_name=_('Admin user')) password = models.CharField(max_length=256, null=True, blank=True, verbose_name=_("Admin password")) - admin_user = models.ForeignKey(AdminUser, null=True, on_delete=models.SET_NULL, verbose_name=_("Admin user")) + admin_user = models.ForeignKey(AdminUser, null=True, related_name='assets', + on_delete=models.SET_NULL, verbose_name=_("Admin user")) system_user = models.ManyToManyField(SystemUser, blank=True, verbose_name=_("System User")) idc = models.ForeignKey(IDC, null=True, related_name='assets', on_delete=models.SET_NULL, verbose_name=_('IDC')) - mac_addr = models.CharField(max_length=20, null=True, blank=True, verbose_name=_("Mac address")) + mac_address = models.CharField(max_length=20, null=True, blank=True, verbose_name=_("Mac address")) brand = models.CharField(max_length=64, null=True, blank=True, verbose_name=_('Brand')) cpu = models.CharField(max_length=64, null=True, blank=True, verbose_name=_('CPU')) memory = models.CharField(max_length=128, null=True, blank=True, verbose_name=_('Memory')) diff --git a/apps/assets/templates/assets/admin_user_create.html b/apps/assets/templates/assets/admin_user_create.html new file mode 100644 index 000000000..b340b7c3a --- /dev/null +++ b/apps/assets/templates/assets/admin_user_create.html @@ -0,0 +1,64 @@ +{% extends 'base.html' %} +{% load i18n %} +{% load static %} +{% load bootstrap %} +{% block custom_head_css_js %} + + +{% endblock %} + +{% block content %} +
    +
    +
    +
    +
    +
    {% trans 'Create asset group' %}
    + +
    +
    +
    + {% csrf_token %} + {{ form.name|bootstrap_horizontal }} + {{ form.username|bootstrap_horizontal }} + {{ form.password|bootstrap_horizontal }} + {{ form.private_key_file|bootstrap_horizontal }} +
    + +
    + {{ form.as_default}} +
    +
    + {{ form.assets|bootstrap_horizontal }} + {{ form.comment|bootstrap_horizontal }} + +
    +
    + + +
    +
    + +
    +
    +
    +
    +
    +{% endblock %} +{% block custom_foot_js %} + +{% endblock %} \ No newline at end of file diff --git a/apps/assets/views.py b/apps/assets/views.py index 2319b81f7..0ef1c0a4f 100644 --- a/apps/assets/views.py +++ b/apps/assets/views.py @@ -2,19 +2,16 @@ from __future__ import absolute_import, unicode_literals from django.utils.translation import ugettext as _ -from django.shortcuts import get_object_or_404 -from django.views.generic import TemplateView, ListView -from django.urls import reverse_lazy -from django.views.generic.edit import CreateView, DeleteView, FormView, UpdateView from django.conf import settings from django.db.models import Q from django.views.generic import TemplateView, ListView from django.views.generic.edit import CreateView, DeleteView, FormView, UpdateView from django.urls import reverse_lazy +from django.contrib.messages.views import SuccessMessageMixin from django.views.generic.detail import DetailView, SingleObjectMixin from .models import Asset, AssetGroup, IDC, AssetExtend, AdminUser, SystemUser -from .forms import AssetForm, AssetGroupForm, IDCForm +from .forms import AssetForm, AssetGroupForm, IDCForm, AdminUserForm from .hands import AdminUserRequiredMixin @@ -230,8 +227,26 @@ class AdminUserListView(AdminUserRequiredMixin, ListView): return self.queryset -class AdminUserCreateView(AdminUserRequiredMixin, CreateView): - pass +class AdminUserCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateView): + model = AdminUser + form_class = AdminUserForm + template_name = 'assets/admin_user_create.html' + success_url = reverse_lazy('assets:admin-user-list') + success_message = _('Create admin user %s successfully.') + + def get_context_data(self, **kwargs): + context = { + 'app': 'assets', + 'action': 'Create admin user' + } + kwargs.update(context) + return super(AdminUserCreateView, self).get_context_data(**kwargs) + + def get_success_message(self, cleaned_data): + return self.success_message % ( + reverse_lazy('assets:admin-user-detail', kwargs={'pk': self.object.pk}), + self.object.name, + ) class AdminUserUpdateView(AdminUserRequiredMixin, UpdateView): diff --git a/apps/fixtures/fake.json b/apps/fixtures/fake.json index c01b15e99..0ad65be15 100644 --- a/apps/fixtures/fake.json +++ b/apps/fixtures/fake.json @@ -1 +1 @@ -[{"model": "users.usergroup", "pk": 1, "fields": {"name": "Default", "comment": "Default user group for all user", "date_added": "2016-09-05T11:39:25.770Z", "created_by": "System"}}, {"model": "users.usergroup", "pk": 2, "fields": {"name": "Scott Brooks", "comment": "Suspendisse ornare consequat lectus.", "date_added": "2016-09-05T11:40:28.122Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 3, "fields": {"name": "Rebecca Jones", "comment": "In eleifend quam a odio.", "date_added": "2016-09-05T11:40:28.125Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 4, "fields": {"name": "Wayne Simpson", "comment": "Nulla nisl.", "date_added": "2016-09-05T11:40:28.129Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 5, "fields": {"name": "Scott Lee", "comment": "Mauris sit amet eros.", "date_added": "2016-09-05T11:40:28.133Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 6, "fields": {"name": "Stephen Franklin", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis faucibus accumsan odio.", "date_added": "2016-09-05T11:40:28.135Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 7, "fields": {"name": "Patricia Hamilton", "comment": "Ut at dolor quis odio consequat varius.", "date_added": "2016-09-05T11:40:28.137Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 8, "fields": {"name": "Tina Armstrong", "comment": "In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.", "date_added": "2016-09-05T11:40:28.139Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 9, "fields": {"name": "Sandra Walker", "comment": "Nulla ac enim.", "date_added": "2016-09-05T11:40:28.141Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 10, "fields": {"name": "Ann Washington", "comment": "Vestibulum quam sapien, varius ut, blandit non, interdum in, ante.", "date_added": "2016-09-05T11:40:28.143Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 11, "fields": {"name": "Theresa Lynch", "comment": "Aliquam quis turpis eget elit sodales scelerisque.", "date_added": "2016-09-05T11:40:28.146Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 12, "fields": {"name": "Larry Martinez", "comment": "Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis.", "date_added": "2016-09-05T11:40:28.148Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 13, "fields": {"name": "Emily Nelson", "comment": "Praesent blandit lacinia erat.", "date_added": "2016-09-05T11:40:28.150Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 14, "fields": {"name": "Cheryl Wright", "comment": "Duis ac nibh.", "date_added": "2016-09-05T11:40:28.152Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 15, "fields": {"name": "Rachel Sims", "comment": "Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla.", "date_added": "2016-09-05T11:40:28.154Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 16, "fields": {"name": "Emily Frazier", "comment": "Nullam molestie nibh in lectus.", "date_added": "2016-09-05T11:40:28.156Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 17, "fields": {"name": "Joyce Davis", "comment": "Nunc rhoncus dui vel sem.", "date_added": "2016-09-05T11:40:28.158Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 18, "fields": {"name": "Anna Rose", "comment": "Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.", "date_added": "2016-09-05T11:40:28.160Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 19, "fields": {"name": "Diana Ellis", "comment": "Cras in purus eu magna vulputate luctus.", "date_added": "2016-09-05T11:40:28.162Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 20, "fields": {"name": "Paula Collins", "comment": "Nulla tellus.", "date_added": "2016-09-05T11:40:28.164Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 21, "fields": {"name": "Judith Simmons", "comment": "In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.", "date_added": "2016-09-05T11:40:28.166Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 22, "fields": {"name": "Rebecca Patterson", "comment": "Fusce posuere felis sed lacus.", "date_added": "2016-09-05T11:40:28.168Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 23, "fields": {"name": "Kathleen Chavez", "comment": "Nunc rhoncus dui vel sem.", "date_added": "2016-09-05T11:40:28.170Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 24, "fields": {"name": "Sharon Johnston", "comment": "Suspendisse potenti.", "date_added": "2016-09-05T11:40:28.173Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 25, "fields": {"name": "Kathryn Cunningham", "comment": "Pellentesque ultrices mattis odio.", "date_added": "2016-09-05T11:40:28.175Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 26, "fields": {"name": "Julie Nguyen", "comment": "Donec ut mauris eget massa tempor convallis.", "date_added": "2016-09-05T11:40:28.177Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 27, "fields": {"name": "Nicole Lynch", "comment": "Proin interdum mauris non ligula pellentesque ultrices.", "date_added": "2016-09-05T11:40:28.179Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 28, "fields": {"name": "Diana Williamson", "comment": "Proin risus.", "date_added": "2016-09-05T11:40:28.181Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 29, "fields": {"name": "Lori Ellis", "comment": "Integer non velit.", "date_added": "2016-09-05T11:40:28.183Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 30, "fields": {"name": "Heather Ruiz", "comment": "Donec dapibus.", "date_added": "2016-09-05T11:40:28.185Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 31, "fields": {"name": "Norma Stevens", "comment": "Curabitur convallis.", "date_added": "2016-09-05T11:40:28.188Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 32, "fields": {"name": "Ann Murphy", "comment": "In eleifend quam a odio.", "date_added": "2016-09-05T11:40:28.190Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 33, "fields": {"name": "Stephanie Ellis", "comment": "Donec ut mauris eget massa tempor convallis.", "date_added": "2016-09-05T11:40:28.192Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 34, "fields": {"name": "Katherine Davis", "comment": "Nulla ac enim.", "date_added": "2016-09-05T11:40:28.194Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 35, "fields": {"name": "Judy Clark", "comment": "Vestibulum ac est lacinia nisi venenatis tristique.", "date_added": "2016-09-05T11:40:28.196Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 36, "fields": {"name": "Shirley Warren", "comment": "Integer ac neque.", "date_added": "2016-09-05T11:40:28.198Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 37, "fields": {"name": "Beverly Hanson", "comment": "In est risus, auctor sed, tristique in, tempus sit amet, sem.", "date_added": "2016-09-05T11:40:28.199Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 38, "fields": {"name": "Dorothy Olson", "comment": "Nulla suscipit ligula in lacus.", "date_added": "2016-09-05T11:40:28.202Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 39, "fields": {"name": "Amanda Hudson", "comment": "In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.", "date_added": "2016-09-05T11:40:28.204Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 40, "fields": {"name": "Cheryl Stanley", "comment": "Curabitur gravida nisi at nibh.", "date_added": "2016-09-05T11:40:28.206Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 41, "fields": {"name": "Anne Simpson", "comment": "Sed ante.", "date_added": "2016-09-05T11:40:28.208Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 42, "fields": {"name": "Linda Fernandez", "comment": "Ut tellus.", "date_added": "2016-09-05T11:40:28.210Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 43, "fields": {"name": "Nicole Cruz", "comment": "Nulla facilisi.", "date_added": "2016-09-05T11:40:28.212Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 44, "fields": {"name": "Jane Castillo", "comment": "Nunc nisl.", "date_added": "2016-09-05T11:40:28.214Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 45, "fields": {"name": "Marilyn Thompson", "comment": "Aenean auctor gravida sem.", "date_added": "2016-09-05T11:40:28.216Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 46, "fields": {"name": "Jessica Riley", "comment": "Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla.", "date_added": "2016-09-05T11:40:28.218Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 47, "fields": {"name": "Maria Wood", "comment": "Donec semper sapien a libero.", "date_added": "2016-09-05T11:40:28.220Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 48, "fields": {"name": "Christine Phillips", "comment": "Ut tellus.", "date_added": "2016-09-05T11:40:28.222Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 49, "fields": {"name": "Ruby Riley", "comment": "Phasellus id sapien in sapien iaculis congue.", "date_added": "2016-09-05T11:40:28.224Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 50, "fields": {"name": "Judith Larson", "comment": "In hac habitasse platea dictumst.", "date_added": "2016-09-05T11:40:28.225Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 51, "fields": {"name": "Jessica Cook", "comment": "Aliquam sit amet diam in magna bibendum imperdiet.", "date_added": "2016-09-05T11:40:28.227Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 52, "fields": {"name": "Stephanie Garrett", "comment": "Maecenas rhoncus aliquam lacus.", "date_added": "2016-09-05T11:40:28.230Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 53, "fields": {"name": "Nancy Alexander", "comment": "Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.", "date_added": "2016-09-05T11:40:28.232Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 54, "fields": {"name": "Gregory Wheeler", "comment": "Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.", "date_added": "2016-09-05T11:40:28.234Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 55, "fields": {"name": "Doris Boyd", "comment": "Suspendisse potenti.", "date_added": "2016-09-05T11:40:28.236Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 56, "fields": {"name": "Pamela Day", "comment": "In hac habitasse platea dictumst.", "date_added": "2016-09-05T11:40:28.238Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 57, "fields": {"name": "Nancy Price", "comment": "In blandit ultrices enim.", "date_added": "2016-09-05T11:40:28.240Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 58, "fields": {"name": "Rose Brooks", "comment": "Vivamus vel nulla eget eros elementum pellentesque.", "date_added": "2016-09-05T11:40:28.242Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 59, "fields": {"name": "Lori Palmer", "comment": "In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.", "date_added": "2016-09-05T11:40:28.244Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 60, "fields": {"name": "Carol Myers", "comment": "Etiam vel augue.", "date_added": "2016-09-05T11:40:28.246Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 61, "fields": {"name": "Nancy Morrison", "comment": "Ut tellus.", "date_added": "2016-09-05T11:40:28.248Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 62, "fields": {"name": "Kelly Edwards", "comment": "Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.", "date_added": "2016-09-05T11:40:28.251Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 63, "fields": {"name": "Nicole Montgomery", "comment": "Duis ac nibh.", "date_added": "2016-09-05T11:40:28.253Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 64, "fields": {"name": "Cynthia Stephens", "comment": "In quis justo.", "date_added": "2016-09-05T11:40:28.255Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 65, "fields": {"name": "Nicole Willis", "comment": "Etiam vel augue.", "date_added": "2016-09-05T11:40:28.257Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 66, "fields": {"name": "Sharon Mills", "comment": "Proin risus.", "date_added": "2016-09-05T11:40:28.259Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 67, "fields": {"name": "Phyllis Richards", "comment": "Nulla nisl.", "date_added": "2016-09-05T11:40:28.261Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 68, "fields": {"name": "Gloria Welch", "comment": "Etiam pretium iaculis justo.", "date_added": "2016-09-05T11:40:28.263Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 69, "fields": {"name": "Paula Taylor", "comment": "Cras pellentesque volutpat dui.", "date_added": "2016-09-05T11:40:28.265Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 70, "fields": {"name": "Rebecca Flores", "comment": "In blandit ultrices enim.", "date_added": "2016-09-05T11:40:28.267Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 71, "fields": {"name": "Joan Black", "comment": "In sagittis dui vel nisl.", "date_added": "2016-09-05T11:40:28.270Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 72, "fields": {"name": "Denise Watson", "comment": "In hac habitasse platea dictumst.", "date_added": "2016-09-05T11:40:28.272Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 73, "fields": {"name": "Judith Brooks", "comment": "Nam dui.", "date_added": "2016-09-05T11:40:28.274Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 74, "fields": {"name": "Nicole Miller", "comment": "Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.", "date_added": "2016-09-05T11:40:28.276Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 75, "fields": {"name": "Jessica Graham", "comment": "Nulla tempus.", "date_added": "2016-09-05T11:40:28.278Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 76, "fields": {"name": "Carol Edwards", "comment": "Nam tristique tortor eu pede.", "date_added": "2016-09-05T11:40:28.281Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 77, "fields": {"name": "Diane Jordan", "comment": "Nulla justo.", "date_added": "2016-09-05T11:40:28.283Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 78, "fields": {"name": "Kathleen Medina", "comment": "Pellentesque viverra pede ac diam.", "date_added": "2016-09-05T11:40:28.285Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 79, "fields": {"name": "Angela Thomas", "comment": "Integer ac leo.", "date_added": "2016-09-05T11:40:28.287Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 80, "fields": {"name": "Christina Knight", "comment": "Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla.", "date_added": "2016-09-05T11:40:28.290Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 81, "fields": {"name": "Heather Medina", "comment": "Integer ac leo.", "date_added": "2016-09-05T11:40:28.292Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 82, "fields": {"name": "Heather Campbell", "comment": "Morbi quis tortor id nulla ultrices aliquet.", "date_added": "2016-09-05T11:40:28.294Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 83, "fields": {"name": "Linda Elliott", "comment": "Cras non velit nec nisi vulputate nonummy.", "date_added": "2016-09-05T11:40:28.297Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 84, "fields": {"name": "Sara Morgan", "comment": "Duis aliquam convallis nunc.", "date_added": "2016-09-05T11:40:28.299Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 85, "fields": {"name": "Laura Hudson", "comment": "Curabitur convallis.", "date_added": "2016-09-05T11:40:28.301Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 86, "fields": {"name": "Gloria Riley", "comment": "Vestibulum sed magna at nunc commodo placerat.", "date_added": "2016-09-05T11:40:28.304Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 87, "fields": {"name": "Mary Duncan", "comment": "Maecenas ut massa quis augue luctus tincidunt.", "date_added": "2016-09-05T11:40:28.306Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 88, "fields": {"name": "Doris Kelley", "comment": "Suspendisse ornare consequat lectus.", "date_added": "2016-09-05T11:40:28.308Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 89, "fields": {"name": "Dorothy Black", "comment": "Donec ut dolor.", "date_added": "2016-09-05T11:40:28.311Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 90, "fields": {"name": "Cynthia Elliott", "comment": "Donec ut dolor.", "date_added": "2016-09-05T11:40:28.313Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 91, "fields": {"name": "Anne Willis", "comment": "Mauris lacinia sapien quis libero.", "date_added": "2016-09-05T11:40:28.315Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 92, "fields": {"name": "Kimberly Lane", "comment": "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.", "date_added": "2016-09-05T11:40:28.318Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 93, "fields": {"name": "Doris Burns", "comment": "Integer pede justo, lacinia eget, tincidunt eget, tempus vel, pede.", "date_added": "2016-09-05T11:40:28.320Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 94, "fields": {"name": "Janice White", "comment": "In hac habitasse platea dictumst.", "date_added": "2016-09-05T11:40:28.323Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 95, "fields": {"name": "Irene Mills", "comment": "Aenean auctor gravida sem.", "date_added": "2016-09-05T11:40:28.325Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 96, "fields": {"name": "Jesse Carter", "comment": "Aenean fermentum.", "date_added": "2016-09-05T11:40:28.328Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 97, "fields": {"name": "Karen Watson", "comment": "Suspendisse potenti.", "date_added": "2016-09-05T11:40:28.330Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 98, "fields": {"name": "Dorothy Wilson", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam.", "date_added": "2016-09-05T11:40:28.332Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 99, "fields": {"name": "Richard Andrews", "comment": "In quis justo.", "date_added": "2016-09-05T11:40:28.334Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 100, "fields": {"name": "Catherine Bowman", "comment": "Nulla tellus.", "date_added": "2016-09-05T11:40:28.336Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 101, "fields": {"name": "Tammy Washington", "comment": "Donec dapibus.", "date_added": "2016-09-05T11:40:28.338Z", "created_by": "admin"}}, {"model": "users.user", "pk": 1, "fields": {"password": "pbkdf2_sha256$30000$5ReHkQOQA2Hk$DIW0b5U/uK+U0xqjA3QpYvBcODNhm2MPCm7YWbQys3I=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:39:25.771Z", "username": "admin", "name": "Administrator", "email": "admin@jumpserver.org", "role": "Admin", "avatar": "", "wechat": "", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Administrator is the super user of system", "is_first_login": false, "date_expired": "2086-08-19T11:39:25.771Z", "created_by": "System", "user_permissions": [], "groups": [1]}}, {"model": "users.user", "pk": 2, "fields": {"password": "pbkdf2_sha256$30000$NwQ0QSmpoKgk$pnQcfgWSmAOKs9g+xeS+d5Pt2CK8NykUxhQc+507Few=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:28.488Z", "username": "debra78", "name": "Amanda Kim", "email": "pamela@lajo.name", "role": "User", "avatar": "", "wechat": "kelly64", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Donec ut dolor.", "is_first_login": false, "date_expired": "2086-08-19T11:40:28.488Z", "created_by": "admin", "user_permissions": [], "groups": [1]}}, {"model": "users.user", "pk": 3, "fields": {"password": "pbkdf2_sha256$30000$NpN3clf5YczT$sT3OTGL1x3sh+Vz5cYTV+nhOQI7A2WhEzf6whqVR2fg=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:28.659Z", "username": "marie78", "name": "Doris Clark", "email": "lillian@blogxs.mil", "role": "User", "avatar": "", "wechat": "phyllis91", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Fusce consequat.", "is_first_login": false, "date_expired": "2086-08-19T11:40:28.659Z", "created_by": "admin", "user_permissions": [], "groups": [1, 64]}}, {"model": "users.user", "pk": 4, "fields": {"password": "pbkdf2_sha256$30000$Hnpln9zJFQuL$xkDIqpl+LNAtze2OPSfm4tMHivnChcK9BSQmTULr17U=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:28.820Z", "username": "joan82", "name": "Emily Dixon", "email": "rose@skimia.mil", "role": "Admin", "avatar": "", "wechat": "cynthia84", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.", "is_first_login": false, "date_expired": "2086-08-19T11:40:28.821Z", "created_by": "admin", "user_permissions": [], "groups": [1, 12]}}, {"model": "users.user", "pk": 5, "fields": {"password": "pbkdf2_sha256$30000$oAkPuzyhsQjH$IEBHKtJuSZVpWnC0n0vMd6NOv6GBlHwdiXkzoS4AcKA=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:28.992Z", "username": "helen93", "name": "Phyllis Wells", "email": "susan@yakitri.info", "role": "User", "avatar": "", "wechat": "jessica85", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi.", "is_first_login": false, "date_expired": "2086-08-19T11:40:28.992Z", "created_by": "admin", "user_permissions": [], "groups": [1, 49]}}, {"model": "users.user", "pk": 6, "fields": {"password": "pbkdf2_sha256$30000$LL5tIUJYalEm$+O1Xne9HwJRMawHoI+1hN08wCi7IVyWlfiptJPSZ868=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:29.153Z", "username": "jessica67", "name": "Jessica Gonzalez", "email": "anne@browsetype.mil", "role": "User", "avatar": "", "wechat": "dorothy70", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Duis bibendum.", "is_first_login": false, "date_expired": "2086-08-19T11:40:29.153Z", "created_by": "helen93", "user_permissions": [], "groups": [1, 37]}}, {"model": "users.user", "pk": 7, "fields": {"password": "pbkdf2_sha256$30000$kbxycqmL62b6$LrFh/b7tHXu/UYv9SIAyZodSajagoSvQHJmbNa4iZPY=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:29.320Z", "username": "amanda83", "name": "Cynthia Simpson", "email": "barbara@photobug.com", "role": "User", "avatar": "", "wechat": "gloria85", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Integer ac neque.", "is_first_login": false, "date_expired": "2086-08-19T11:40:29.320Z", "created_by": "jessica67", "user_permissions": [], "groups": [1, 55]}}, {"model": "users.user", "pk": 8, "fields": {"password": "pbkdf2_sha256$30000$lvVKIRcbiVH5$Z/tS8vMWxyoTPR3fiDSsADYx30MrDmZsJXCtLM+Uk8c=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:29.486Z", "username": "gloria89", "name": "Lisa Stone", "email": "jennifer@trilia.info", "role": "Admin", "avatar": "", "wechat": "ruby66", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Duis mattis egestas metus.", "is_first_login": false, "date_expired": "2086-08-19T11:40:29.486Z", "created_by": "helen93", "user_permissions": [], "groups": [1, 8]}}, {"model": "users.user", "pk": 9, "fields": {"password": "pbkdf2_sha256$30000$lobNy7Fdr3S4$HZXc3BUntiiSExn3zeof+GhdBU/ufOm/pJUriD8hHpg=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:29.658Z", "username": "virginia82", "name": "Jacqueline Lawrence", "email": "frances@roombo.gov", "role": "User", "avatar": "", "wechat": "irene77", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "In hac habitasse platea dictumst.", "is_first_login": false, "date_expired": "2086-08-19T11:40:29.658Z", "created_by": "admin", "user_permissions": [], "groups": [1, 38]}}, {"model": "users.user", "pk": 10, "fields": {"password": "pbkdf2_sha256$30000$LfEpQOng9Oey$xId/M7mkTyrKy1sU2cCIYDt8vDvO8OKMS4Kvt11GCrw=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:29.822Z", "username": "shirley92", "name": "Rose Bradley", "email": "jane@eayo.org", "role": "User", "avatar": "", "wechat": "alice77", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Vivamus vestibulum sagittis sapien.", "is_first_login": false, "date_expired": "2086-08-19T11:40:29.822Z", "created_by": "admin", "user_permissions": [], "groups": [1, 78]}}, {"model": "users.user", "pk": 11, "fields": {"password": "pbkdf2_sha256$30000$9ClFk3rzOAe2$eoiEZ0feR1lmDTrPi9cT0GCoO56E4A6CYlWTbAzY5W0=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:29.990Z", "username": "donna77", "name": "Kimberly Hughes", "email": "martha@jabbersphere.info", "role": "Admin", "avatar": "", "wechat": "louise92", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Nullam molestie nibh in lectus.", "is_first_login": false, "date_expired": "2086-08-19T11:40:29.990Z", "created_by": "virginia82", "user_permissions": [], "groups": [1, 27]}}, {"model": "users.user", "pk": 12, "fields": {"password": "pbkdf2_sha256$30000$MAJMgjslCzUU$W8lA9y17L1v+TdjhoXzJZf57oaoknN+pCp/8hTABX3I=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:30.159Z", "username": "bonnie87", "name": "Shirley Tucker", "email": "ashley@jabbercube.edu", "role": "User", "avatar": "", "wechat": "denise82", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.", "is_first_login": false, "date_expired": "2086-08-19T11:40:30.159Z", "created_by": "donna77", "user_permissions": [], "groups": [1, 4]}}, {"model": "users.user", "pk": 13, "fields": {"password": "pbkdf2_sha256$30000$zCT6heqR3LaF$/SNC4wvkRotfHtnz0LtcoXF2lgScx5+7APFfnrulqeA=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:30.327Z", "username": "mildred89", "name": "Amy Cole", "email": "cheryl@yambee.org", "role": "User", "avatar": "", "wechat": "anna67", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Praesent blandit lacinia erat.", "is_first_login": false, "date_expired": "2086-08-19T11:40:30.327Z", "created_by": "shirley92", "user_permissions": [], "groups": [1, 74]}}, {"model": "users.user", "pk": 14, "fields": {"password": "pbkdf2_sha256$30000$zSK7uZolhV5W$m4FUrWJbJR/aaE4lifgyeg9Zz39t5pDzxwhjhkfpFpk=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:30.494Z", "username": "betty69", "name": "Norma Little", "email": "mildred@nlounge.gov", "role": "Admin", "avatar": "", "wechat": "jennifer80", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Integer ac neque.", "is_first_login": false, "date_expired": "2086-08-19T11:40:30.495Z", "created_by": "shirley92", "user_permissions": [], "groups": [1, 61]}}, {"model": "users.user", "pk": 15, "fields": {"password": "pbkdf2_sha256$30000$ohJp2IQmzty1$NHWh76GPmQb9l2oqpfEjlQ+RACLbOLTQi3nLeMyMw94=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:30.658Z", "username": "kathleen81", "name": "Jennifer Garza", "email": "donna@thoughtbeat.org", "role": "Admin", "avatar": "", "wechat": "jessica70", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Mauris ullamcorper purus sit amet nulla.", "is_first_login": false, "date_expired": "2086-08-19T11:40:30.658Z", "created_by": "helen93", "user_permissions": [], "groups": [1, 22]}}, {"model": "users.user", "pk": 16, "fields": {"password": "pbkdf2_sha256$30000$8GJwjpiigEqV$hv+hRQrA4MQz8XlXvKZDsO746KQbIRjoYtgUyNvxPK0=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:30.829Z", "username": "heather83", "name": "Jacqueline Gomez", "email": "mary@dabz.org", "role": "User", "avatar": "", "wechat": "katherine81", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Vestibulum ac est lacinia nisi venenatis tristique.", "is_first_login": false, "date_expired": "2086-08-19T11:40:30.829Z", "created_by": "gloria89", "user_permissions": [], "groups": [1, 101]}}, {"model": "users.user", "pk": 17, "fields": {"password": "pbkdf2_sha256$30000$h3T2BC3HVR6w$lqyZTTVkpyzeklHO0cv29ftO1egfHAREs42KmXgO29c=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:30.999Z", "username": "cheryl86", "name": "Doris Wright", "email": "kathleen@youbridge.org", "role": "Admin", "avatar": "", "wechat": "julia89", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Integer ac leo.", "is_first_login": false, "date_expired": "2086-08-19T11:40:30.999Z", "created_by": "mildred89", "user_permissions": [], "groups": [1, 100]}}, {"model": "users.user", "pk": 18, "fields": {"password": "pbkdf2_sha256$30000$HPctDgqFA1O5$aHIZAhfT4hqwthO6PkYC6wHr8xpCwgfbZli1i4vBGqo=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:31.171Z", "username": "helen85", "name": "Nancy Franklin", "email": "elizabeth@kare.edu", "role": "User", "avatar": "", "wechat": "ruth86", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Mauris ullamcorper purus sit amet nulla.", "is_first_login": false, "date_expired": "2086-08-19T11:40:31.171Z", "created_by": "helen93", "user_permissions": [], "groups": [1, 19]}}, {"model": "users.user", "pk": 19, "fields": {"password": "pbkdf2_sha256$30000$2BxbETGNZPjs$LQ4vZC//oJhw+kkQA5+QaWwQRiImMR32ZRQ/JiSmhno=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:31.342Z", "username": "evelyn66", "name": "Maria Wagner", "email": "kathy@vinte.mil", "role": "Admin", "avatar": "", "wechat": "diane67", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est.", "is_first_login": false, "date_expired": "2086-08-19T11:40:31.342Z", "created_by": "betty69", "user_permissions": [], "groups": [1, 55]}}, {"model": "users.user", "pk": 20, "fields": {"password": "pbkdf2_sha256$30000$Zhr5ztI55OmZ$c1vxvnRPonGOLEYwAkwPK10gcNDRwnJItAGfYvxo/l8=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:31.514Z", "username": "sharon90", "name": "Shirley Watson", "email": "cheryl@skimia.edu", "role": "User", "avatar": "", "wechat": "robin78", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.", "is_first_login": false, "date_expired": "2086-08-19T11:40:31.514Z", "created_by": "debra78", "user_permissions": [], "groups": [1, 57]}}, {"model": "users.user", "pk": 21, "fields": {"password": "pbkdf2_sha256$30000$V8jjOOVxDN6U$nbnHTiGlw3MNK3dQZ23jpwZidyvIm9UHvJMMF5LEcBk=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:31.678Z", "username": "anne65", "name": "Linda Thompson", "email": "margaret@nlounge.net", "role": "Admin", "avatar": "", "wechat": "judith94", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Suspendisse potenti.", "is_first_login": false, "date_expired": "2086-08-19T11:40:31.678Z", "created_by": "helen93", "user_permissions": [], "groups": [1, 31]}}, {"model": "users.user", "pk": 22, "fields": {"password": "pbkdf2_sha256$30000$ASWsoeOm8bC8$JWAry3Vf4p9eqF30hWgjJYVyj+EyftYqHgLnrFcSl3w=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:31.842Z", "username": "janice81", "name": "Tina Tucker", "email": "amy@aivee.info", "role": "User", "avatar": "", "wechat": "sara86", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Quisque id justo sit amet sapien dignissim vestibulum.", "is_first_login": false, "date_expired": "2086-08-19T11:40:31.842Z", "created_by": "donna77", "user_permissions": [], "groups": [1, 24]}}, {"model": "users.user", "pk": 23, "fields": {"password": "pbkdf2_sha256$30000$F5Igy3AG8I77$ebSGjrlcri5QHYiPSMgWjvuMqiEJZaY9nnHBQnjbioE=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:32.013Z", "username": "shirley90", "name": "Donna Cole", "email": "norma@eire.com", "role": "Admin", "avatar": "", "wechat": "stephanie94", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Morbi non lectus.", "is_first_login": false, "date_expired": "2086-08-19T11:40:32.013Z", "created_by": "kathleen81", "user_permissions": [], "groups": [1, 50]}}, {"model": "users.user", "pk": 24, "fields": {"password": "pbkdf2_sha256$30000$TB2ioEQVTRYC$OLMEUgukLXGQkM+Ku0xYjDIuwBW0mSXc497FMYboHMc=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:32.182Z", "username": "rachel86", "name": "Diana Fuller", "email": "heather@zoombox.com", "role": "User", "avatar": "", "wechat": "annie70", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Curabitur in libero ut massa volutpat convallis.", "is_first_login": false, "date_expired": "2086-08-19T11:40:32.182Z", "created_by": "cheryl86", "user_permissions": [], "groups": [1, 29]}}, {"model": "users.user", "pk": 25, "fields": {"password": "pbkdf2_sha256$30000$8zRHrl5odLjt$H1LyqlzStMtrrdsqCTsEDqyzvRfVTO+s3FCkMZQUg58=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:32.354Z", "username": "gloria81", "name": "Judith Burton", "email": "pamela@browsecat.info", "role": "Admin", "avatar": "", "wechat": "kathryn84", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Praesent blandit.", "is_first_login": false, "date_expired": "2086-08-19T11:40:32.354Z", "created_by": "admin", "user_permissions": [], "groups": [1, 98]}}, {"model": "users.user", "pk": 26, "fields": {"password": "pbkdf2_sha256$30000$oJ8CguLyG514$857oOSy4ZP/nmoHfr0+7YAkr+4nOxpVfs+YHHXO4HGA=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:32.516Z", "username": "sarah93", "name": "Marie Robertson", "email": "cynthia@vitz.net", "role": "User", "avatar": "", "wechat": "anna82", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Aenean lectus.", "is_first_login": false, "date_expired": "2086-08-19T11:40:32.516Z", "created_by": "jessica67", "user_permissions": [], "groups": [1, 15]}}, {"model": "users.user", "pk": 27, "fields": {"password": "pbkdf2_sha256$30000$KMKhgXsrpbTb$3SOKyqnAZsHsulLAR8YxRSH4oL81HecsjHuZqBwbfkA=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:32.684Z", "username": "gloria69", "name": "Ashley Fernandez", "email": "lois@zooxo.name", "role": "User", "avatar": "", "wechat": "nicole91", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis.", "is_first_login": false, "date_expired": "2086-08-19T11:40:32.684Z", "created_by": "amanda83", "user_permissions": [], "groups": [1, 55]}}, {"model": "users.user", "pk": 28, "fields": {"password": "pbkdf2_sha256$30000$HqsstWAnc4Dc$DbH4P0e8TewCmj12VM2PaMlxbEO9sXdMiAU/RaNcEso=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:32.851Z", "username": "patricia86", "name": "Catherine Hanson", "email": "jean@tavu.gov", "role": "User", "avatar": "", "wechat": "tina86", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Curabitur in libero ut massa volutpat convallis.", "is_first_login": false, "date_expired": "2086-08-19T11:40:32.851Z", "created_by": "sharon90", "user_permissions": [], "groups": [1, 76]}}, {"model": "users.user", "pk": 29, "fields": {"password": "pbkdf2_sha256$30000$afmfE90Qeh5l$kz0UjtWT/+8WaSFiwHUsVPMvhnxAmaZK0KvUfRGuhQY=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:33.021Z", "username": "elizabeth88", "name": "Julia Green", "email": "norma@zooxo.name", "role": "User", "avatar": "", "wechat": "teresa72", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Aenean lectus.", "is_first_login": false, "date_expired": "2086-08-19T11:40:33.021Z", "created_by": "gloria81", "user_permissions": [], "groups": [1, 52]}}, {"model": "users.user", "pk": 30, "fields": {"password": "pbkdf2_sha256$30000$oGne3NGRmP4F$eZoziI46KHtHHhEIbHhvx4tT7OqpAhKP7EgcJZRotM0=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:33.189Z", "username": "anna73", "name": "Sharon Arnold", "email": "kelly@jabbertype.edu", "role": "User", "avatar": "", "wechat": "linda84", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Integer non velit.", "is_first_login": false, "date_expired": "2086-08-19T11:40:33.189Z", "created_by": "shirley92", "user_permissions": [], "groups": [1, 65]}}, {"model": "users.user", "pk": 31, "fields": {"password": "pbkdf2_sha256$30000$Beusxog5VzMe$XLk35XQG0nKVMhJAwm4xPReq8nGbLGTsTuHuoBk8/oc=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:33.360Z", "username": "amanda72", "name": "Nicole Miller", "email": "ruby@innotype.net", "role": "Admin", "avatar": "", "wechat": "amy83", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Pellentesque ultrices mattis odio.", "is_first_login": false, "date_expired": "2086-08-19T11:40:33.360Z", "created_by": "betty69", "user_permissions": [], "groups": [1, 79]}}, {"model": "users.user", "pk": 32, "fields": {"password": "pbkdf2_sha256$30000$xX2wCo6lmAoe$xT9sv5lhNEz5QHTGXRro1rlZq3wV1SOXR8N2AVxfIK0=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:33.525Z", "username": "karen88", "name": "Ann Perry", "email": "christine@kazu.biz", "role": "User", "avatar": "", "wechat": "kathryn93", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue.", "is_first_login": false, "date_expired": "2086-08-19T11:40:33.525Z", "created_by": "shirley90", "user_permissions": [], "groups": [1, 45]}}, {"model": "users.user", "pk": 33, "fields": {"password": "pbkdf2_sha256$30000$G26Dluux88FA$yYZDtuT2kziHa7npBjc6wa0FaqlCq4xd/HNwf3M0IBA=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:33.688Z", "username": "ruby85", "name": "Andrea Simmons", "email": "janice@topiclounge.gov", "role": "User", "avatar": "", "wechat": "carol63", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.", "is_first_login": false, "date_expired": "2086-08-19T11:40:33.688Z", "created_by": "virginia82", "user_permissions": [], "groups": [1, 8]}}, {"model": "users.user", "pk": 34, "fields": {"password": "pbkdf2_sha256$30000$YogIPElxW4BF$GMx/eCOf+Wo45K8f4zpgAdPHnK0hw4zxrhPFGjD1kgw=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:33.849Z", "username": "jean78", "name": "Wanda Porter", "email": "debra@skipfire.edu", "role": "User", "avatar": "", "wechat": "nancy68", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Donec diam neque, vestibulum eget, vulputate ut, ultrices vel, augue.", "is_first_login": false, "date_expired": "2086-08-19T11:40:33.850Z", "created_by": "rachel86", "user_permissions": [], "groups": [1, 34]}}, {"model": "users.user", "pk": 35, "fields": {"password": "pbkdf2_sha256$30000$VAHkvodCT4EZ$Hc0AgQpRTZ+Fyej7aYw3XFYLBqRuYNYdZrBqbNsxBWI=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:34.025Z", "username": "dorothy68", "name": "Sandra Burke", "email": "jacqueline@voonder.name", "role": "User", "avatar": "", "wechat": "anne75", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Maecenas tincidunt lacus at velit.", "is_first_login": false, "date_expired": "2086-08-19T11:40:34.025Z", "created_by": "sharon90", "user_permissions": [], "groups": [1, 24]}}, {"model": "users.user", "pk": 36, "fields": {"password": "pbkdf2_sha256$30000$LCgO3uQ9b8jB$2gk2i4h9YSPE6Z5ncYqQjXWuqd957Oa5wyQWUySt/6Q=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:34.189Z", "username": "julia94", "name": "Julia Moore", "email": "kathleen@avamm.mil", "role": "User", "avatar": "", "wechat": "lois92", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci.", "is_first_login": false, "date_expired": "2086-08-19T11:40:34.189Z", "created_by": "janice81", "user_permissions": [], "groups": [1, 23]}}, {"model": "users.user", "pk": 37, "fields": {"password": "pbkdf2_sha256$30000$d8I5jWJV3nrO$vXljikjtUP2iACdKvhv2VvdHgv1zL816CY3vzBzzf+U=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:34.356Z", "username": "jacqueline87", "name": "Shirley Boyd", "email": "martha@roodel.net", "role": "User", "avatar": "", "wechat": "melissa77", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Nunc nisl.", "is_first_login": false, "date_expired": "2086-08-19T11:40:34.356Z", "created_by": "mildred89", "user_permissions": [], "groups": [1, 32]}}, {"model": "users.user", "pk": 38, "fields": {"password": "pbkdf2_sha256$30000$GN14FUfF7nIl$QORwOV3JB8TGpGVfjTHkWyfVO/97taHbsUUEyfkO18M=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:34.525Z", "username": "margaret83", "name": "Marilyn Berry", "email": "sarah@wikibox.edu", "role": "User", "avatar": "", "wechat": "marilyn89", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Ut tellus.", "is_first_login": false, "date_expired": "2086-08-19T11:40:34.525Z", "created_by": "marie78", "user_permissions": [], "groups": [1, 49]}}, {"model": "users.user", "pk": 39, "fields": {"password": "pbkdf2_sha256$30000$JKLEc3Udbclx$TeQ8656qKhw97YsPDwhPmF3FusBzc42tfHxgpFumpg8=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:34.693Z", "username": "katherine78", "name": "Patricia Andrews", "email": "lillian@snaptags.name", "role": "User", "avatar": "", "wechat": "lois82", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.", "is_first_login": false, "date_expired": "2086-08-19T11:40:34.693Z", "created_by": "helen93", "user_permissions": [], "groups": [1, 70]}}, {"model": "users.user", "pk": 40, "fields": {"password": "pbkdf2_sha256$30000$LfSuq1HOppCM$PATgoI+3OWTtnBl4Qqfcrg2tIIJSJWwg2gDHqRReNHA=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:34.868Z", "username": "sandra72", "name": "Karen Dunn", "email": "kathleen@realbridge.biz", "role": "User", "avatar": "", "wechat": "angela69", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Integer ac neque.", "is_first_login": false, "date_expired": "2086-08-19T11:40:34.868Z", "created_by": "evelyn66", "user_permissions": [], "groups": [1, 84]}}, {"model": "users.user", "pk": 41, "fields": {"password": "pbkdf2_sha256$30000$fyqfIT2o8oBh$oxWTIdDmGE6JeFiC3ht1Vfan/wixhkKQYpJuDWFXwpI=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:35.038Z", "username": "janet94", "name": "Tina Jacobs", "email": "kathryn@twitterbeat.com", "role": "Admin", "avatar": "", "wechat": "sarah85", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Maecenas ut massa quis augue luctus tincidunt.", "is_first_login": false, "date_expired": "2086-08-19T11:40:35.038Z", "created_by": "bonnie87", "user_permissions": [], "groups": [1, 3]}}, {"model": "users.user", "pk": 42, "fields": {"password": "pbkdf2_sha256$30000$lnrCgcch2hIS$zspAwtJ/kFNfHy6bgIBcFmPo02W6ymbwTNySKmcieRM=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:35.206Z", "username": "heather70", "name": "Janice Fuller", "email": "lois@centizu.name", "role": "Admin", "avatar": "", "wechat": "diana87", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Integer a nibh.", "is_first_login": false, "date_expired": "2086-08-19T11:40:35.206Z", "created_by": "katherine78", "user_permissions": [], "groups": [1, 72]}}, {"model": "users.user", "pk": 43, "fields": {"password": "pbkdf2_sha256$30000$FG75rHLpN2yC$zavIk5IetRMZpxGKdzNiSUMFH+sRTMhDC3YZZLUbfH8=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:35.377Z", "username": "helen78", "name": "Cheryl Kennedy", "email": "jacqueline@skimia.gov", "role": "User", "avatar": "", "wechat": "bonnie70", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Integer non velit.", "is_first_login": false, "date_expired": "2086-08-19T11:40:35.378Z", "created_by": "sarah93", "user_permissions": [], "groups": [1, 25]}}, {"model": "users.user", "pk": 44, "fields": {"password": "pbkdf2_sha256$30000$PYboz45iSFHS$szEdRkHHJnywvQxuyw+glDkVCTXb5oBb62M7pOYvr8w=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:35.544Z", "username": "frances66", "name": "Judith Thomas", "email": "robin@youopia.name", "role": "Admin", "avatar": "", "wechat": "virginia66", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Proin interdum mauris non ligula pellentesque ultrices.", "is_first_login": false, "date_expired": "2086-08-19T11:40:35.544Z", "created_by": "jessica67", "user_permissions": [], "groups": [1, 72]}}, {"model": "users.user", "pk": 45, "fields": {"password": "pbkdf2_sha256$30000$Hzb9aIsW4Z4g$aQPFxDUmDLi8/Y9DZDOo1M+9TmI+egl8YbWajDPApNo=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:35.712Z", "username": "joan84", "name": "Emily Hayes", "email": "ashley@flipstorm.info", "role": "Admin", "avatar": "", "wechat": "cynthia82", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Cras non velit nec nisi vulputate nonummy.", "is_first_login": false, "date_expired": "2086-08-19T11:40:35.712Z", "created_by": "joan82", "user_permissions": [], "groups": [1, 2]}}, {"model": "users.user", "pk": 46, "fields": {"password": "pbkdf2_sha256$30000$cX83YarClOxI$mHmsPUtGvXYCXx03XRz1gGzKRGIMDCLzlmW+jvmeHyM=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:35.890Z", "username": "ruby74", "name": "Gloria Ryan", "email": "wanda@zoomzone.com", "role": "User", "avatar": "", "wechat": "tammy78", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Suspendisse potenti.", "is_first_login": false, "date_expired": "2086-08-19T11:40:35.890Z", "created_by": "heather83", "user_permissions": [], "groups": [1, 89]}}, {"model": "users.user", "pk": 47, "fields": {"password": "pbkdf2_sha256$30000$QayxdbM57SkB$+O4cZ6pe3qOIOgnkmkojvz/9SNXbdQq4IN/OlWM4uqE=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:36.209Z", "username": "rose65", "name": "Jennifer Hill", "email": "cynthia@meeveo.mil", "role": "User", "avatar": "", "wechat": "phyllis72", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Cras in purus eu magna vulputate luctus.", "is_first_login": false, "date_expired": "2086-08-19T11:40:36.209Z", "created_by": "kathleen81", "user_permissions": [], "groups": [1, 93]}}, {"model": "users.user", "pk": 48, "fields": {"password": "pbkdf2_sha256$30000$rOGXoybJrlRu$6/sbbzUXSC4gg3MnQBBQjmxSwns0kuFFXnjUFgECVCs=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:36.380Z", "username": "theresa66", "name": "Nicole Mcdonald", "email": "jennifer@thoughtblab.org", "role": "Admin", "avatar": "", "wechat": "beverly93", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi.", "is_first_login": false, "date_expired": "2086-08-19T11:40:36.380Z", "created_by": "sandra72", "user_permissions": [], "groups": [1, 54]}}, {"model": "users.user", "pk": 49, "fields": {"password": "pbkdf2_sha256$30000$ryM1OtDaFRBR$yAaYMLSu5GmHtBuj2SqNxrwX6T0ZJ0f9Ioa+QKB6Xjc=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:36.547Z", "username": "jane64", "name": "Sara Romero", "email": "laura@bluejam.info", "role": "User", "avatar": "", "wechat": "ashley81", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Vestibulum quam sapien, varius ut, blandit non, interdum in, ante.", "is_first_login": false, "date_expired": "2086-08-19T11:40:36.547Z", "created_by": "katherine78", "user_permissions": [], "groups": [1, 95]}}, {"model": "users.user", "pk": 50, "fields": {"password": "pbkdf2_sha256$30000$qrctcs8SfAbX$MneVIdxKpm5gU0kH6Kd4AdVJW9H3Lwy57Fj9zbcDMng=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:36.715Z", "username": "joyce92", "name": "Robin Schmidt", "email": "jessica@vipe.org", "role": "Admin", "avatar": "", "wechat": "lillian69", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Aliquam sit amet diam in magna bibendum imperdiet.", "is_first_login": false, "date_expired": "2086-08-19T11:40:36.715Z", "created_by": "helen78", "user_permissions": [], "groups": [1, 12]}}, {"model": "users.user", "pk": 51, "fields": {"password": "pbkdf2_sha256$30000$YBDMUxTjaJOm$eotObjSyQ8tuxwPvGzrdwe4JtewIkGP3VJjA1n12XgI=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:36.885Z", "username": "jessica83", "name": "Carol Rice", "email": "judy@oyoyo.gov", "role": "Admin", "avatar": "", "wechat": "theresa87", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla.", "is_first_login": false, "date_expired": "2086-08-19T11:40:36.886Z", "created_by": "sharon90", "user_permissions": [], "groups": [1, 5]}}, {"model": "users.user", "pk": 52, "fields": {"password": "pbkdf2_sha256$30000$rDduC7xoNL6D$Qw7IXRwcGHghVgs9JazbSWVv16226Ind2uI7Mc4LffU=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:37.049Z", "username": "norma92", "name": "Margaret Shaw", "email": "marie@gevee.net", "role": "User", "avatar": "", "wechat": "jean86", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Cras in purus eu magna vulputate luctus.", "is_first_login": false, "date_expired": "2086-08-19T11:40:37.049Z", "created_by": "gloria81", "user_permissions": [], "groups": [1, 42]}}, {"model": "users.user", "pk": 53, "fields": {"password": "pbkdf2_sha256$30000$XuD0bTQbGiGR$49MGy0aIUlq6PIn5n8MFJFzQXlt+9sAAlPFiGUcz0jo=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:37.223Z", "username": "nancy93", "name": "Amy Parker", "email": "deborah@feedmix.gov", "role": "Admin", "avatar": "", "wechat": "barbara73", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Proin eu mi.", "is_first_login": false, "date_expired": "2086-08-19T11:40:37.223Z", "created_by": "amanda83", "user_permissions": [], "groups": [1, 23]}}, {"model": "users.user", "pk": 54, "fields": {"password": "pbkdf2_sha256$30000$GQ29YONroMEs$zidcIhcl0MVZzqMCDOuK0ZiGmT64iVxAXvdyZidkVW8=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:37.388Z", "username": "kathryn89", "name": "Anne Hanson", "email": "janice@skajo.com", "role": "User", "avatar": "", "wechat": "irene88", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Fusce consequat.", "is_first_login": false, "date_expired": "2086-08-19T11:40:37.388Z", "created_by": "jane64", "user_permissions": [], "groups": [1, 31]}}, {"model": "users.user", "pk": 55, "fields": {"password": "pbkdf2_sha256$30000$vBohn8DgNVNW$wSrYvF4TK9+1F0FpWfU/1tonWLEzFD66xkeLUzMjXW8=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:37.555Z", "username": "christine65", "name": "Linda Grant", "email": "mildred@oyoloo.info", "role": "User", "avatar": "", "wechat": "gloria89", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.", "is_first_login": false, "date_expired": "2086-08-19T11:40:37.555Z", "created_by": "jean78", "user_permissions": [], "groups": [1, 31]}}, {"model": "users.user", "pk": 56, "fields": {"password": "pbkdf2_sha256$30000$ZXZzwHmuJLhu$94jqW8ge2OV8zsCO25ejDuX2ensIrAsqZ3gMspSEWZo=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:37.724Z", "username": "christine74", "name": "Tammy Henry", "email": "susan@fatz.gov", "role": "User", "avatar": "", "wechat": "paula73", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Nulla justo.", "is_first_login": false, "date_expired": "2086-08-19T11:40:37.724Z", "created_by": "helen85", "user_permissions": [], "groups": [1, 27]}}, {"model": "users.user", "pk": 57, "fields": {"password": "pbkdf2_sha256$30000$SCBEFw4IqJSw$gKwJ+Z61A8xx8FoKKlxKi3bvymJ901XX190CttuT5SQ=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:37.903Z", "username": "janet78", "name": "Jennifer Stone", "email": "brenda@realblab.com", "role": "Admin", "avatar": "", "wechat": "paula74", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Morbi non quam nec dui luctus rutrum.", "is_first_login": false, "date_expired": "2086-08-19T11:40:37.903Z", "created_by": "helen78", "user_permissions": [], "groups": [1, 57]}}, {"model": "users.user", "pk": 58, "fields": {"password": "pbkdf2_sha256$30000$brXrjdiilFJy$ZQyHHfiLmBPXAOIt7HFykZVDjK1/xy2rHSD4WzyN5lk=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:38.078Z", "username": "bonnie82", "name": "Tammy Barnes", "email": "judy@jazzy.edu", "role": "Admin", "avatar": "", "wechat": "norma94", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Integer non velit.", "is_first_login": false, "date_expired": "2086-08-19T11:40:38.079Z", "created_by": "theresa66", "user_permissions": [], "groups": [1, 12]}}, {"model": "users.user", "pk": 59, "fields": {"password": "pbkdf2_sha256$30000$ytPyWlqlgSQa$MDTPej9yHVpTXnmX+i7pjQohUjrzA1CkkjHM/mszRas=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:38.258Z", "username": "susan70", "name": "Jane Sims", "email": "jean@kwideo.org", "role": "Admin", "avatar": "", "wechat": "jean76", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Morbi quis tortor id nulla ultrices aliquet.", "is_first_login": false, "date_expired": "2086-08-19T11:40:38.258Z", "created_by": "shirley92", "user_permissions": [], "groups": [1, 34]}}, {"model": "users.user", "pk": 60, "fields": {"password": "pbkdf2_sha256$30000$hCwgalGFVti0$QM2cah7OjPv9LmWcTUW8n0WWXrzbtDLmqXIT8I72lBw=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:38.445Z", "username": "diana82", "name": "Kathleen Morrison", "email": "sharon@fanoodle.info", "role": "Admin", "avatar": "", "wechat": "kimberly94", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Phasellus sit amet erat.", "is_first_login": false, "date_expired": "2086-08-19T11:40:38.445Z", "created_by": "kathleen81", "user_permissions": [], "groups": [1, 72]}}, {"model": "users.user", "pk": 61, "fields": {"password": "pbkdf2_sha256$30000$9veo3zwoQS6Y$o9GdPOMm8vfCz2LZ2dLFZQRPL/weVQbh1DQgTkfT01E=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:38.616Z", "username": "pamela85", "name": "Tammy Sanders", "email": "andrea@tagtune.mil", "role": "User", "avatar": "", "wechat": "debra86", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Phasellus sit amet erat.", "is_first_login": false, "date_expired": "2086-08-19T11:40:38.616Z", "created_by": "kathryn89", "user_permissions": [], "groups": [1, 17]}}, {"model": "users.user", "pk": 62, "fields": {"password": "pbkdf2_sha256$30000$KZA3rl6hy6K8$c37Ypnuwfa+J83zGSqv/4VlEP1SjPUOO16dYWh5A37U=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:38.800Z", "username": "shirley67", "name": "Diane Hernandez", "email": "kimberly@oyoloo.net", "role": "User", "avatar": "", "wechat": "theresa91", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Maecenas pulvinar lobortis est.", "is_first_login": false, "date_expired": "2086-08-19T11:40:38.800Z", "created_by": "elizabeth88", "user_permissions": [], "groups": [1, 23]}}, {"model": "users.user", "pk": 63, "fields": {"password": "pbkdf2_sha256$30000$bly0Ec71D4G5$EsaMleYNI2rqq2SDWVqpZuuqN24YFVVg3ym12YJ8aFQ=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:38.972Z", "username": "evelyn87", "name": "Barbara Myers", "email": "rachel@thoughtblab.mil", "role": "Admin", "avatar": "", "wechat": "virginia82", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Vestibulum sed magna at nunc commodo placerat.", "is_first_login": false, "date_expired": "2086-08-19T11:40:38.972Z", "created_by": "admin", "user_permissions": [], "groups": [1, 3]}}, {"model": "users.user", "pk": 64, "fields": {"password": "pbkdf2_sha256$30000$DlJpDuZwAGJn$x0IdHZBBa9Sv2B/7UA/S0UR1LKC9kVEjNEDP6cldOOw=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:39.145Z", "username": "lisa76", "name": "Joyce Gray", "email": "nancy@jatri.com", "role": "User", "avatar": "", "wechat": "linda76", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Suspendisse potenti.", "is_first_login": false, "date_expired": "2086-08-19T11:40:39.145Z", "created_by": "patricia86", "user_permissions": [], "groups": [1, 86]}}, {"model": "users.user", "pk": 65, "fields": {"password": "pbkdf2_sha256$30000$zTXa8Wbqkcl7$e9Sj8tRw81AIYUYTCN96g4dCrlw1ne65yAj57Lpt3fc=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:39.316Z", "username": "wanda87", "name": "Angela Phillips", "email": "dorothy@vinte.name", "role": "User", "avatar": "", "wechat": "jean93", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Quisque id justo sit amet sapien dignissim vestibulum.", "is_first_login": false, "date_expired": "2086-08-19T11:40:39.316Z", "created_by": "gloria89", "user_permissions": [], "groups": [1, 18]}}, {"model": "users.user", "pk": 66, "fields": {"password": "pbkdf2_sha256$30000$snF1u8sKBGoT$iIICTiwlK7hlou+IuphT9ozgoVdg7xvQ0BhQ5hipzAM=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:39.494Z", "username": "martha80", "name": "Paula Webb", "email": "joyce@jetwire.gov", "role": "Admin", "avatar": "", "wechat": "irene88", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Donec ut mauris eget massa tempor convallis.", "is_first_login": false, "date_expired": "2086-08-19T11:40:39.494Z", "created_by": "debra78", "user_permissions": [], "groups": [1, 71]}}, {"model": "users.user", "pk": 67, "fields": {"password": "pbkdf2_sha256$30000$3f2IIMh1BHsZ$sqW6OC1P8A8ZHC3hSgZjM/1onfVyeqWZrODHgB6pjo8=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:39.670Z", "username": "alice90", "name": "Joyce Cole", "email": "joyce@jetwire.name", "role": "Admin", "avatar": "", "wechat": "kathryn90", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Nunc rhoncus dui vel sem.", "is_first_login": false, "date_expired": "2086-08-19T11:40:39.670Z", "created_by": "jean78", "user_permissions": [], "groups": [1, 83]}}, {"model": "users.user", "pk": 68, "fields": {"password": "pbkdf2_sha256$30000$rjdFLNWTZVDP$cbLx9NhUCDjfJ5DtXBATvRBDdwWp6AwIY0cDuoS0ack=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:39.844Z", "username": "julie89", "name": "Ashley Castillo", "email": "betty@tagchat.edu", "role": "User", "avatar": "", "wechat": "teresa82", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Aenean auctor gravida sem.", "is_first_login": false, "date_expired": "2086-08-19T11:40:39.844Z", "created_by": "evelyn66", "user_permissions": [], "groups": [1, 3]}}, {"model": "users.user", "pk": 69, "fields": {"password": "pbkdf2_sha256$30000$aMmTSQp5D7o8$uEO2r3tTJjjiPme0wyjPAIx9+J+D4iYXpSZiud56YZM=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:40.019Z", "username": "sara63", "name": "Julie Robertson", "email": "jane@twinte.biz", "role": "Admin", "avatar": "", "wechat": "laura75", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Ut at dolor quis odio consequat varius.", "is_first_login": false, "date_expired": "2086-08-19T11:40:40.019Z", "created_by": "evelyn87", "user_permissions": [], "groups": [1, 28]}}, {"model": "users.user", "pk": 70, "fields": {"password": "pbkdf2_sha256$30000$tkX3zB55h35n$2GVTvEtIJEgKX2eLypbvVWG/EawxGv+pM8oGQqsTG1M=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:40.203Z", "username": "annie84", "name": "Melissa Hill", "email": "laura@bluezoom.biz", "role": "Admin", "avatar": "", "wechat": "stephanie81", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Morbi non lectus.", "is_first_login": false, "date_expired": "2086-08-19T11:40:40.203Z", "created_by": "norma92", "user_permissions": [], "groups": [1, 72]}}, {"model": "users.user", "pk": 71, "fields": {"password": "pbkdf2_sha256$30000$F3p7A7Z34RdN$S4zMTb8S0riGXpkTMxQNVF0t3SVT8p9q3YaGpRfvHrE=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:40.410Z", "username": "denise66", "name": "Carol Murphy", "email": "cheryl@brainbox.net", "role": "Admin", "avatar": "", "wechat": "stephanie91", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Aenean lectus.", "is_first_login": false, "date_expired": "2086-08-19T11:40:40.410Z", "created_by": "betty69", "user_permissions": [], "groups": [1, 100]}}, {"model": "users.user", "pk": 72, "fields": {"password": "pbkdf2_sha256$30000$w8jVwPiLAO95$uMibVY3vK5+bb3kGIcaF3bzS/vLBXuYHUHisL+s7Gk8=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:40.588Z", "username": "maria79", "name": "Lisa Lawson", "email": "nancy@edgeblab.com", "role": "User", "avatar": "", "wechat": "sara84", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc.", "is_first_login": false, "date_expired": "2086-08-19T11:40:40.588Z", "created_by": "evelyn66", "user_permissions": [], "groups": [1, 96]}}, {"model": "users.user", "pk": 73, "fields": {"password": "pbkdf2_sha256$30000$Chfy1Xs9TYn6$D4PqnvAonoe7i2Apailkj1jNgPwJQXzu4Rdw7vojN4E=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:40.765Z", "username": "jacqueline66", "name": "Christine Johnston", "email": "annie@yombu.com", "role": "User", "avatar": "", "wechat": "shirley94", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Quisque ut erat.", "is_first_login": false, "date_expired": "2086-08-19T11:40:40.765Z", "created_by": "martha80", "user_permissions": [], "groups": [1, 96]}}, {"model": "users.user", "pk": 74, "fields": {"password": "pbkdf2_sha256$30000$R476WcBOQFnz$wG6PQxtKoFiCq/QvFuChZsMqmOChRyMtysWqfzobGUc=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:40.946Z", "username": "diane94", "name": "Jacqueline Banks", "email": "ruth@riffwire.name", "role": "Admin", "avatar": "", "wechat": "tammy69", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc.", "is_first_login": false, "date_expired": "2086-08-19T11:40:40.946Z", "created_by": "amanda83", "user_permissions": [], "groups": [1, 54]}}, {"model": "users.user", "pk": 75, "fields": {"password": "pbkdf2_sha256$30000$0WNEpfUcEBnr$PbdTdlDrFshCA8QQyAZIPvBVLQF457Svx2u1YAJjV3A=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:41.116Z", "username": "judy68", "name": "Anna Russell", "email": "sharon@bubbletube.mil", "role": "User", "avatar": "", "wechat": "dorothy80", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Integer pede justo, lacinia eget, tincidunt eget, tempus vel, pede.", "is_first_login": false, "date_expired": "2086-08-19T11:40:41.116Z", "created_by": "bonnie87", "user_permissions": [], "groups": [1, 37]}}, {"model": "users.user", "pk": 76, "fields": {"password": "pbkdf2_sha256$30000$k6LVybVvEzP3$TDiWfHRnQqnDXHHHRudiQAie41KzGsBKslEnL7OyHUQ=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:41.283Z", "username": "sara85", "name": "Joan Stewart", "email": "bonnie@gabcube.mil", "role": "User", "avatar": "", "wechat": "gloria77", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla.", "is_first_login": false, "date_expired": "2086-08-19T11:40:41.283Z", "created_by": "norma92", "user_permissions": [], "groups": [1, 71]}}, {"model": "users.user", "pk": 77, "fields": {"password": "pbkdf2_sha256$30000$nq3q8AD2Egqa$8hvaQvJNjnXAvl5v1cCWKYE6SBYQuQ4Zv0XgMgUBYjQ=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:41.462Z", "username": "louise86", "name": "Emily King", "email": "bonnie@zazio.com", "role": "Admin", "avatar": "", "wechat": "mildred72", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Duis at velit eu est congue elementum.", "is_first_login": false, "date_expired": "2086-08-19T11:40:41.462Z", "created_by": "karen88", "user_permissions": [], "groups": [1, 100]}}, {"model": "users.user", "pk": 78, "fields": {"password": "pbkdf2_sha256$30000$YYLnF0D85MaT$mPp4SLNiN27DJ/MQSrJO0qQDdeBcTsFIDrRJJAd2mUY=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:41.636Z", "username": "melissa86", "name": "Marie Cunningham", "email": "robin@fiveclub.biz", "role": "Admin", "avatar": "", "wechat": "louise65", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Aliquam erat volutpat.", "is_first_login": false, "date_expired": "2086-08-19T11:40:41.636Z", "created_by": "donna77", "user_permissions": [], "groups": [1, 99]}}, {"model": "users.user", "pk": 79, "fields": {"password": "pbkdf2_sha256$30000$C9ZMnLwd5jWR$B994aIg+HKsCFYgevJgMhaFb/OPFVvEC1uCkCZlU63E=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:41.799Z", "username": "judith78", "name": "Laura Austin", "email": "rose@shufflebeat.net", "role": "User", "avatar": "", "wechat": "paula77", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Nam dui.", "is_first_login": false, "date_expired": "2086-08-19T11:40:41.800Z", "created_by": "virginia82", "user_permissions": [], "groups": [1, 51]}}, {"model": "users.user", "pk": 80, "fields": {"password": "pbkdf2_sha256$30000$3jASiMrsqPTS$qERB/ZJBFSQ3VOATZR64Wo62zCPHmQBUX6ik6k8pxEA=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:41.977Z", "username": "kathryn68", "name": "Mildred Gonzalez", "email": "wanda@linkbuzz.org", "role": "User", "avatar": "", "wechat": "anna89", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc.", "is_first_login": false, "date_expired": "2086-08-19T11:40:41.977Z", "created_by": "alice90", "user_permissions": [], "groups": [1, 36]}}, {"model": "users.user", "pk": 81, "fields": {"password": "pbkdf2_sha256$30000$uc313SO0fl0c$rxFzlZnQy5K1pexI7CnpGvvdD5Y6dk/gGCdql4OIQTg=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:42.157Z", "username": "maria70", "name": "Wanda Campbell", "email": "teresa@shuffledrive.gov", "role": "User", "avatar": "", "wechat": "lisa74", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Nunc purus.", "is_first_login": false, "date_expired": "2086-08-19T11:40:42.157Z", "created_by": "julie89", "user_permissions": [], "groups": [1, 91]}}, {"model": "users.user", "pk": 82, "fields": {"password": "pbkdf2_sha256$30000$LhslZy3f0Rp4$EYrnsUtGors84bndfamlj30+DbyKKFn3qk+3S1jch7I=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:42.480Z", "username": "judy84", "name": "Tina Harper", "email": "linda@skyble.biz", "role": "Admin", "avatar": "", "wechat": "cheryl71", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "In hac habitasse platea dictumst.", "is_first_login": false, "date_expired": "2086-08-19T11:40:42.480Z", "created_by": "amanda72", "user_permissions": [], "groups": [1, 45]}}, {"model": "users.user", "pk": 83, "fields": {"password": "pbkdf2_sha256$30000$NCu7bqBfUSlM$CmK4q/j22I7Y2RlaL4qJC8xTWXTP87fK8p5Z8iM0vHQ=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:42.649Z", "username": "marie69", "name": "Alice Washington", "email": "katherine@yombu.edu", "role": "Admin", "avatar": "", "wechat": "julie82", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla.", "is_first_login": false, "date_expired": "2086-08-19T11:40:42.649Z", "created_by": "louise86", "user_permissions": [], "groups": [1, 34]}}, {"model": "users.user", "pk": 84, "fields": {"password": "pbkdf2_sha256$30000$bsTlGybCG4kn$u6FggNMQcbbIMI5FMAaXek8jPBcuAhsndO2LtHvPWfY=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:42.820Z", "username": "jacqueline94", "name": "Kathy Anderson", "email": "doris@podcat.mil", "role": "Admin", "avatar": "", "wechat": "janice86", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Pellentesque at nulla.", "is_first_login": false, "date_expired": "2086-08-19T11:40:42.820Z", "created_by": "mildred89", "user_permissions": [], "groups": [1, 70]}}, {"model": "users.user", "pk": 85, "fields": {"password": "pbkdf2_sha256$30000$0OBTuxURroAg$HbRxSmld8Z2KikNSyx2qDQeXD3qkHs99drogR4lMzSk=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:43.001Z", "username": "ruth78", "name": "Susan Andrews", "email": "tammy@bubbletube.net", "role": "User", "avatar": "", "wechat": "theresa91", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Nulla justo.", "is_first_login": false, "date_expired": "2086-08-19T11:40:43.001Z", "created_by": "annie84", "user_permissions": [], "groups": [1, 75]}}, {"model": "users.user", "pk": 86, "fields": {"password": "pbkdf2_sha256$30000$uzuXDjRY9cGB$7orw9rme6gdmtIXd23kY5riyg9kBeqGrZv1OLwUN2Zg=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:43.179Z", "username": "betty82", "name": "Nancy Ford", "email": "robin@chatterpoint.info", "role": "User", "avatar": "", "wechat": "angela75", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Morbi quis tortor id nulla ultrices aliquet.", "is_first_login": false, "date_expired": "2086-08-19T11:40:43.179Z", "created_by": "susan70", "user_permissions": [], "groups": [1, 62]}}, {"model": "users.user", "pk": 87, "fields": {"password": "pbkdf2_sha256$30000$ihbKKzqLVsA4$qpHDQiNB0SRhGMQNOC3pyjfoHs0oLE4X90agkbwIoTg=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:43.356Z", "username": "cynthia80", "name": "Cheryl Brown", "email": "julia@centizu.info", "role": "User", "avatar": "", "wechat": "margaret72", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Cras non velit nec nisi vulputate nonummy.", "is_first_login": false, "date_expired": "2086-08-19T11:40:43.356Z", "created_by": "heather70", "user_permissions": [], "groups": [1, 57]}}, {"model": "users.user", "pk": 88, "fields": {"password": "pbkdf2_sha256$30000$WTGLP7qH0AXv$ijXRG/BLJYM08HrZbXis0N1+3GZUQnYTmmOxMBqnZ08=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:43.526Z", "username": "lois88", "name": "Judith Wagner", "email": "laura@edgeclub.net", "role": "User", "avatar": "", "wechat": "stephanie75", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo.", "is_first_login": false, "date_expired": "2086-08-19T11:40:43.526Z", "created_by": "margaret83", "user_permissions": [], "groups": [1, 84]}}, {"model": "users.user", "pk": 89, "fields": {"password": "pbkdf2_sha256$30000$2Jb6tBXjnnKG$KocwomlWiXZxNupZEitcXj68n85x72PBe2xv6wEic0E=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:43.698Z", "username": "melissa87", "name": "Sara Elliott", "email": "sharon@aibox.net", "role": "User", "avatar": "", "wechat": "teresa80", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Praesent id massa id nisl venenatis lacinia.", "is_first_login": false, "date_expired": "2086-08-19T11:40:43.698Z", "created_by": "rose65", "user_permissions": [], "groups": [1, 78]}}, {"model": "users.user", "pk": 90, "fields": {"password": "pbkdf2_sha256$30000$z81LhOVt6DtF$OuG7y3Z4IFLXRvMb0SFVJGerWUWmvea8Z9VwYiMXy6Y=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:43.870Z", "username": "virginia71", "name": "Beverly Grant", "email": "kimberly@youbridge.info", "role": "Admin", "avatar": "", "wechat": "katherine78", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.", "is_first_login": false, "date_expired": "2086-08-19T11:40:43.870Z", "created_by": "marie69", "user_permissions": [], "groups": [1, 18]}}, {"model": "users.user", "pk": 91, "fields": {"password": "pbkdf2_sha256$30000$hQEf332JcoN3$07Qubl2SHJY/mH4HYTQ6O3q4OvosQZ+tka+yXkYWSkM=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:44.200Z", "username": "jennifer80", "name": "Donna Lawson", "email": "sharon@voonder.org", "role": "User", "avatar": "", "wechat": "joyce71", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Morbi a ipsum.", "is_first_login": false, "date_expired": "2086-08-19T11:40:44.200Z", "created_by": "jessica67", "user_permissions": [], "groups": [1, 9]}}, {"model": "users.user", "pk": 92, "fields": {"password": "pbkdf2_sha256$30000$787BXJlHQQyR$QVfF5bZEGTgJqGqJkJHIcGVRN9yFGejALpmKq9TCTAc=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:44.372Z", "username": "louise73", "name": "Irene Hanson", "email": "lois@realcube.info", "role": "User", "avatar": "", "wechat": "theresa76", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.", "is_first_login": false, "date_expired": "2086-08-19T11:40:44.372Z", "created_by": "helen78", "user_permissions": [], "groups": [1, 69]}}, {"model": "users.user", "pk": 93, "fields": {"password": "pbkdf2_sha256$30000$TSpRU1MwSS9o$ji11Chzq8QYQ/5zELL+e7rsda3NovvmH64OPlovKV28=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:44.545Z", "username": "denise78", "name": "Amy Stevens", "email": "karen@topdrive.gov", "role": "Admin", "avatar": "", "wechat": "tammy63", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Duis aliquam convallis nunc.", "is_first_login": false, "date_expired": "2086-08-19T11:40:44.545Z", "created_by": "sara85", "user_permissions": [], "groups": [1, 39]}}, {"model": "users.user", "pk": 94, "fields": {"password": "pbkdf2_sha256$30000$KxdVhFziqW4Y$tV46izrsfKROm+eK1PQ3Spe2mA2DI7lpBRffBnXEkFs=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:44.716Z", "username": "beverly65", "name": "Pamela Murphy", "email": "kathleen@skyble.name", "role": "Admin", "avatar": "", "wechat": "cynthia79", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Ut at dolor quis odio consequat varius.", "is_first_login": false, "date_expired": "2086-08-19T11:40:44.716Z", "created_by": "judith78", "user_permissions": [], "groups": [1, 55]}}, {"model": "users.user", "pk": 95, "fields": {"password": "pbkdf2_sha256$30000$UT06FZhNcdT0$MHZ2vI4ILv4LNLxatI+uD4Ga3fmPykCbTVBwfCa2Vbc=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:44.886Z", "username": "pamela91", "name": "Kathleen Hall", "email": "ashley@quimm.com", "role": "Admin", "avatar": "", "wechat": "pamela65", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Quisque ut erat.", "is_first_login": false, "date_expired": "2086-08-19T11:40:44.887Z", "created_by": "amanda72", "user_permissions": [], "groups": [1, 12]}}, {"model": "users.user", "pk": 96, "fields": {"password": "pbkdf2_sha256$30000$R8LIMYuDIRDC$CD4ZZ45zNLJqB4IkhoRRxaCc5AzeV/TAPXd6WJ918ww=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:45.053Z", "username": "annie80", "name": "Donna Gonzales", "email": "ashley@blogpad.org", "role": "Admin", "avatar": "", "wechat": "jessica93", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.", "is_first_login": false, "date_expired": "2086-08-19T11:40:45.053Z", "created_by": "diana82", "user_permissions": [], "groups": [1, 2]}}, {"model": "users.user", "pk": 97, "fields": {"password": "pbkdf2_sha256$30000$EB1azYvjRy4a$+r3s13wiSHjDyfhUPy+FW3aHwWleOjynlayGt9udaBQ=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:45.220Z", "username": "rebecca64", "name": "Kathy Long", "email": "rachel@divanoodle.net", "role": "Admin", "avatar": "", "wechat": "lori73", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Praesent lectus.", "is_first_login": false, "date_expired": "2086-08-19T11:40:45.220Z", "created_by": "shirley67", "user_permissions": [], "groups": [1, 94]}}, {"model": "users.user", "pk": 98, "fields": {"password": "pbkdf2_sha256$30000$Gs8j1WNM4gd6$XX82CgsJb2LJEQpcrS52gZNv9KZA0GRERgdVhPiNzPs=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:45.400Z", "username": "robin76", "name": "Jane Pierce", "email": "diana@realcube.biz", "role": "User", "avatar": "", "wechat": "beverly87", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Integer non velit.", "is_first_login": false, "date_expired": "2086-08-19T11:40:45.400Z", "created_by": "christine65", "user_permissions": [], "groups": [1, 35]}}] \ No newline at end of file +[{"model": "users.usergroup", "pk": 1, "fields": {"name": "Default", "comment": "Default user group for all user", "date_created": "2016-09-08T03:03:36.498Z", "created_by": "System"}}, {"model": "users.usergroup", "pk": 2, "fields": {"name": "Brenda Johnston", "comment": "Ut at dolor quis odio consequat varius.", "date_created": "2016-09-08T03:03:50.661Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 3, "fields": {"name": "George Fisher", "comment": "Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.", "date_created": "2016-09-08T03:03:50.665Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 4, "fields": {"name": "Jacqueline Holmes", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam.", "date_created": "2016-09-08T03:03:50.668Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 5, "fields": {"name": "Matthew Ford", "comment": "Vivamus in felis eu sapien cursus vestibulum.", "date_created": "2016-09-08T03:03:50.672Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 6, "fields": {"name": "Lois Howell", "comment": "Duis bibendum.", "date_created": "2016-09-08T03:03:50.674Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 7, "fields": {"name": "Carol Gordon", "comment": "Aliquam quis turpis eget elit sodales scelerisque.", "date_created": "2016-09-08T03:03:50.677Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 8, "fields": {"name": "Jennifer Coleman", "comment": "Aliquam quis turpis eget elit sodales scelerisque.", "date_created": "2016-09-08T03:03:50.679Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 9, "fields": {"name": "Tina Riley", "comment": "Suspendisse potenti.", "date_created": "2016-09-08T03:03:50.682Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 10, "fields": {"name": "Deborah Pierce", "comment": "Vestibulum ac est lacinia nisi venenatis tristique.", "date_created": "2016-09-08T03:03:50.684Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 11, "fields": {"name": "Maria Ross", "comment": "Morbi non quam nec dui luctus rutrum.", "date_created": "2016-09-08T03:03:50.686Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 12, "fields": {"name": "Judy Hudson", "comment": "Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc.", "date_created": "2016-09-08T03:03:50.688Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 13, "fields": {"name": "Juan Ortiz", "comment": "Proin eu mi.", "date_created": "2016-09-08T03:03:50.691Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 14, "fields": {"name": "Joyce Williams", "comment": "Integer ac neque.", "date_created": "2016-09-08T03:03:50.693Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 15, "fields": {"name": "Rachel Powell", "comment": "Fusce consequat.", "date_created": "2016-09-08T03:03:50.695Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 16, "fields": {"name": "Ashley Price", "comment": "In hac habitasse platea dictumst.", "date_created": "2016-09-08T03:03:50.697Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 17, "fields": {"name": "Joan Williamson", "comment": "Donec ut mauris eget massa tempor convallis.", "date_created": "2016-09-08T03:03:50.699Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 18, "fields": {"name": "Nicole Woods", "comment": "Nulla tempus.", "date_created": "2016-09-08T03:03:50.702Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 19, "fields": {"name": "Dorothy Scott", "comment": "Pellentesque eget nunc.", "date_created": "2016-09-08T03:03:50.704Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 20, "fields": {"name": "Cheryl Scott", "comment": "Aliquam sit amet diam in magna bibendum imperdiet.", "date_created": "2016-09-08T03:03:50.706Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 21, "fields": {"name": "Susan Stevens", "comment": "Duis aliquam convallis nunc.", "date_created": "2016-09-08T03:03:50.708Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 22, "fields": {"name": "Jonathan Elliott", "comment": "Morbi quis tortor id nulla ultrices aliquet.", "date_created": "2016-09-08T03:03:50.712Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 23, "fields": {"name": "Doris Hicks", "comment": "Phasellus id sapien in sapien iaculis congue.", "date_created": "2016-09-08T03:03:50.714Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 24, "fields": {"name": "Amy Martinez", "comment": "Nulla ac enim.", "date_created": "2016-09-08T03:03:50.716Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 25, "fields": {"name": "Katherine Coleman", "comment": "Nullam varius.", "date_created": "2016-09-08T03:03:50.719Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 26, "fields": {"name": "Martha Lane", "comment": "In hac habitasse platea dictumst.", "date_created": "2016-09-08T03:03:50.721Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 27, "fields": {"name": "Laura Perez", "comment": "Mauris ullamcorper purus sit amet nulla.", "date_created": "2016-09-08T03:03:50.723Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 28, "fields": {"name": "Frances Carroll", "comment": "Donec posuere metus vitae ipsum.", "date_created": "2016-09-08T03:03:50.726Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 29, "fields": {"name": "Joyce Anderson", "comment": "Nullam varius.", "date_created": "2016-09-08T03:03:50.728Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 30, "fields": {"name": "Wanda Garrett", "comment": "Integer ac neque.", "date_created": "2016-09-08T03:03:50.730Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 31, "fields": {"name": "Marie Wheeler", "comment": "In blandit ultrices enim.", "date_created": "2016-09-08T03:03:50.734Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 32, "fields": {"name": "Ralph Fisher", "comment": "Integer a nibh.", "date_created": "2016-09-08T03:03:50.736Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 33, "fields": {"name": "Ruby Wright", "comment": "Praesent id massa id nisl venenatis lacinia.", "date_created": "2016-09-08T03:03:50.739Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 34, "fields": {"name": "Kathryn Thompson", "comment": "Ut tellus.", "date_created": "2016-09-08T03:03:50.741Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 35, "fields": {"name": "Rose Palmer", "comment": "Nullam molestie nibh in lectus.", "date_created": "2016-09-08T03:03:50.743Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 36, "fields": {"name": "Norma Armstrong", "comment": "Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla.", "date_created": "2016-09-08T03:03:50.745Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 37, "fields": {"name": "Amy Wallace", "comment": "Duis ac nibh.", "date_created": "2016-09-08T03:03:50.748Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 38, "fields": {"name": "Kathy Nichols", "comment": "Donec dapibus.", "date_created": "2016-09-08T03:03:50.750Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 39, "fields": {"name": "Pamela Adams", "comment": "Nulla nisl.", "date_created": "2016-09-08T03:03:50.752Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 40, "fields": {"name": "Doris Lee", "comment": "Proin eu mi.", "date_created": "2016-09-08T03:03:50.755Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 41, "fields": {"name": "Alice Myers", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi.", "date_created": "2016-09-08T03:03:50.758Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 42, "fields": {"name": "Patricia Thompson", "comment": "Duis at velit eu est congue elementum.", "date_created": "2016-09-08T03:03:50.761Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 43, "fields": {"name": "Barbara Berry", "comment": "Maecenas rhoncus aliquam lacus.", "date_created": "2016-09-08T03:03:50.763Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 44, "fields": {"name": "Diane Larson", "comment": "Duis mattis egestas metus.", "date_created": "2016-09-08T03:03:50.765Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 45, "fields": {"name": "Teresa Black", "comment": "Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.", "date_created": "2016-09-08T03:03:50.768Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 46, "fields": {"name": "Christine Garrett", "comment": "Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante.", "date_created": "2016-09-08T03:03:50.771Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 47, "fields": {"name": "Jane Burns", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi.", "date_created": "2016-09-08T03:03:50.773Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 48, "fields": {"name": "Kelly Mendoza", "comment": "Aliquam quis turpis eget elit sodales scelerisque.", "date_created": "2016-09-08T03:03:50.775Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 49, "fields": {"name": "Kathleen Phillips", "comment": "Nulla ac enim.", "date_created": "2016-09-08T03:03:50.777Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 50, "fields": {"name": "Brenda Bennett", "comment": "Donec ut mauris eget massa tempor convallis.", "date_created": "2016-09-08T03:03:50.780Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 51, "fields": {"name": "Frances Campbell", "comment": "Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl.", "date_created": "2016-09-08T03:03:50.782Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 52, "fields": {"name": "Cynthia Bradley", "comment": "Curabitur gravida nisi at nibh.", "date_created": "2016-09-08T03:03:50.784Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 53, "fields": {"name": "Alice Green", "comment": "Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl.", "date_created": "2016-09-08T03:03:50.786Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 54, "fields": {"name": "Maria Smith", "comment": "Nulla nisl.", "date_created": "2016-09-08T03:03:50.788Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 55, "fields": {"name": "Emily Dunn", "comment": "Ut at dolor quis odio consequat varius.", "date_created": "2016-09-08T03:03:50.791Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 56, "fields": {"name": "Jean Cruz", "comment": "Donec ut dolor.", "date_created": "2016-09-08T03:03:50.794Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 57, "fields": {"name": "Mary Burke", "comment": "Sed sagittis.", "date_created": "2016-09-08T03:03:50.796Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 58, "fields": {"name": "Susan Hernandez", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est.", "date_created": "2016-09-08T03:03:50.798Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 59, "fields": {"name": "Debra Morris", "comment": "Suspendisse potenti.", "date_created": "2016-09-08T03:03:50.800Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 60, "fields": {"name": "Wanda Garza", "comment": "In hac habitasse platea dictumst.", "date_created": "2016-09-08T03:03:50.803Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 61, "fields": {"name": "Bonnie Jones", "comment": "Vestibulum sed magna at nunc commodo placerat.", "date_created": "2016-09-08T03:03:50.805Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 62, "fields": {"name": "Judy Davis", "comment": "Pellentesque ultrices mattis odio.", "date_created": "2016-09-08T03:03:50.808Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 63, "fields": {"name": "Karen Harris", "comment": "Aliquam quis turpis eget elit sodales scelerisque.", "date_created": "2016-09-08T03:03:50.811Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 64, "fields": {"name": "Mildred Kelley", "comment": "Nulla suscipit ligula in lacus.", "date_created": "2016-09-08T03:03:50.814Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 65, "fields": {"name": "Judith Mitchell", "comment": "Quisque id justo sit amet sapien dignissim vestibulum.", "date_created": "2016-09-08T03:03:50.816Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 66, "fields": {"name": "Lillian Banks", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi.", "date_created": "2016-09-08T03:03:50.818Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 67, "fields": {"name": "Lillian Gomez", "comment": "Donec dapibus.", "date_created": "2016-09-08T03:03:50.820Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 68, "fields": {"name": "Janice Rodriguez", "comment": "Nullam porttitor lacus at turpis.", "date_created": "2016-09-08T03:03:50.822Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 69, "fields": {"name": "Amanda Dixon", "comment": "Aenean auctor gravida sem.", "date_created": "2016-09-08T03:03:50.825Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 70, "fields": {"name": "Judy Wells", "comment": "Nulla tempus.", "date_created": "2016-09-08T03:03:50.828Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 71, "fields": {"name": "Donna Hughes", "comment": "Sed vel enim sit amet nunc viverra dapibus.", "date_created": "2016-09-08T03:03:50.831Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 72, "fields": {"name": "Tammy Campbell", "comment": "Maecenas ut massa quis augue luctus tincidunt.", "date_created": "2016-09-08T03:03:50.833Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 73, "fields": {"name": "Lawrence Barnes", "comment": "Quisque ut erat.", "date_created": "2016-09-08T03:03:50.835Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 74, "fields": {"name": "Michelle Ramos", "comment": "Duis at velit eu est congue elementum.", "date_created": "2016-09-08T03:03:50.837Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 75, "fields": {"name": "Betty Wells", "comment": "Cras in purus eu magna vulputate luctus.", "date_created": "2016-09-08T03:03:50.839Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 76, "fields": {"name": "Jacqueline Adams", "comment": "Nulla suscipit ligula in lacus.", "date_created": "2016-09-08T03:03:50.841Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 77, "fields": {"name": "Lori Evans", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi.", "date_created": "2016-09-08T03:03:50.843Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 78, "fields": {"name": "Christina Nguyen", "comment": "Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo.", "date_created": "2016-09-08T03:03:50.846Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 79, "fields": {"name": "Jane Long", "comment": "In hac habitasse platea dictumst.", "date_created": "2016-09-08T03:03:50.848Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 80, "fields": {"name": "Elizabeth Garrett", "comment": "Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.", "date_created": "2016-09-08T03:03:50.851Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 81, "fields": {"name": "Frances Flores", "comment": "In eleifend quam a odio.", "date_created": "2016-09-08T03:03:50.853Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 82, "fields": {"name": "Bonnie Bowman", "comment": "Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci.", "date_created": "2016-09-08T03:03:50.855Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 83, "fields": {"name": "Robin Thomas", "comment": "Nulla nisl.", "date_created": "2016-09-08T03:03:50.857Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 84, "fields": {"name": "Phyllis Martinez", "comment": "Aenean sit amet justo.", "date_created": "2016-09-08T03:03:50.860Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 85, "fields": {"name": "Tammy West", "comment": "Morbi porttitor lorem id ligula.", "date_created": "2016-09-08T03:03:50.863Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 86, "fields": {"name": "Kathryn Harrison", "comment": "Integer ac leo.", "date_created": "2016-09-08T03:03:50.865Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 87, "fields": {"name": "Denise Stanley", "comment": "Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.", "date_created": "2016-09-08T03:03:50.867Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 88, "fields": {"name": "Lois Foster", "comment": "Donec quis orci eget orci vehicula condimentum.", "date_created": "2016-09-08T03:03:50.869Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 89, "fields": {"name": "Ann Vasquez", "comment": "Mauris sit amet eros.", "date_created": "2016-09-08T03:03:50.872Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 90, "fields": {"name": "Annie Clark", "comment": "Duis at velit eu est congue elementum.", "date_created": "2016-09-08T03:03:50.874Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 91, "fields": {"name": "Stephanie Richards", "comment": "Donec ut dolor.", "date_created": "2016-09-08T03:03:50.877Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 92, "fields": {"name": "Louise Robinson", "comment": "Aliquam erat volutpat.", "date_created": "2016-09-08T03:03:50.879Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 93, "fields": {"name": "Melissa Kim", "comment": "Aenean fermentum.", "date_created": "2016-09-08T03:03:50.881Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 94, "fields": {"name": "Barbara Cooper", "comment": "Suspendisse potenti.", "date_created": "2016-09-08T03:03:50.883Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 95, "fields": {"name": "Louise Hall", "comment": "Etiam justo.", "date_created": "2016-09-08T03:03:50.886Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 96, "fields": {"name": "Brenda Roberts", "comment": "Suspendisse potenti.", "date_created": "2016-09-08T03:03:50.888Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 97, "fields": {"name": "Bonnie Lawrence", "comment": "In blandit ultrices enim.", "date_created": "2016-09-08T03:03:50.890Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 98, "fields": {"name": "Irene Perry", "comment": "Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo.", "date_created": "2016-09-08T03:03:50.893Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 99, "fields": {"name": "Helen Alvarez", "comment": "Donec quis orci eget orci vehicula condimentum.", "date_created": "2016-09-08T03:03:50.895Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 100, "fields": {"name": "Annie Bowman", "comment": "Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla.", "date_created": "2016-09-08T03:03:50.898Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 101, "fields": {"name": "Mary Allen", "comment": "Morbi quis tortor id nulla ultrices aliquet.", "date_created": "2016-09-08T03:03:50.900Z", "created_by": "admin"}}, {"model": "assets.idc", "pk": 1, "fields": {"name": "Sarah Garcia", "bandwidth": "200M", "contact": "Lillian Woods", "phone": "9-(989)805-2918", "address": "Los Gatos38602 Artisan Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.578Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Sed vel enim sit amet nunc viverra dapibus."}}, {"model": "assets.idc", "pk": 2, "fields": {"name": "Sara Jacobs", "bandwidth": "200M", "contact": "Karen Richardson", "phone": "1-(911)092-5399", "address": "Red Bluff16 Golf View Hill", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.580Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Praesent blandit."}}, {"model": "assets.idc", "pk": 3, "fields": {"name": "Katherine Johnston", "bandwidth": "200M", "contact": "Barbara Morrison", "phone": "1-(277)477-6778", "address": "Corte Madera17 Kinsman Pass", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.581Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nulla suscipit ligula in lacus."}}, {"model": "assets.idc", "pk": 4, "fields": {"name": "Susan Henderson", "bandwidth": "200M", "contact": "Beverly Kim", "phone": "6-(700)332-5745", "address": "Vacaville1 Mccormick Terrace", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.583Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Duis bibendum."}}, {"model": "assets.idc", "pk": 5, "fields": {"name": "Virginia Murphy", "bandwidth": "200M", "contact": "Debra Frazier", "phone": "0-(685)123-0909", "address": "Indian Wells20 High Crossing Court", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.584Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Vivamus vel nulla eget eros elementum pellentesque."}}, {"model": "assets.idc", "pk": 6, "fields": {"name": "Amanda Spencer", "bandwidth": "200M", "contact": "Susan Hamilton", "phone": "8-(788)858-9745", "address": "Turlock629 Lien Parkway", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.585Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "In congue."}}, {"model": "assets.idc", "pk": 7, "fields": {"name": "Doris Fuller", "bandwidth": "200M", "contact": "Ruby Dixon", "phone": "7-(611)985-8789", "address": "Corning6712 Sunbrook Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.587Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nunc purus."}}, {"model": "assets.idc", "pk": 8, "fields": {"name": "Rebecca West", "bandwidth": "200M", "contact": "Denise Burton", "phone": "8-(681)023-6320", "address": "Yucca Valley0 Linden Place", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.588Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Nunc purus."}}, {"model": "assets.idc", "pk": 9, "fields": {"name": "Judith Martin", "bandwidth": "200M", "contact": "Paula Riley", "phone": "3-(953)498-9393", "address": "Mammoth Lakes394 Mosinee Drive", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.589Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Sed ante."}}, {"model": "assets.idc", "pk": 10, "fields": {"name": "Mildred Graham", "bandwidth": "200M", "contact": "Gloria Kelley", "phone": "4-(826)981-1294", "address": "El Segundo0475 Westport Place", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.591Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla."}}, {"model": "assets.idc", "pk": 11, "fields": {"name": "Betty Payne", "bandwidth": "200M", "contact": "Martha Smith", "phone": "4-(077)936-4994", "address": "Tehachapi38097 Texas Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.593Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Morbi ut odio."}}, {"model": "assets.idc", "pk": 12, "fields": {"name": "Christina Olson", "bandwidth": "200M", "contact": "Evelyn Sanchez", "phone": "2-(403)747-5722", "address": "Dana Point083 Hallows Alley", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.595Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Quisque porta volutpat erat."}}, {"model": "assets.idc", "pk": 13, "fields": {"name": "Rachel Evans", "bandwidth": "200M", "contact": "Mildred Ferguson", "phone": "9-(718)282-1930", "address": "Lodi45 Park Meadow Park", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.596Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nulla nisl."}}, {"model": "assets.idc", "pk": 14, "fields": {"name": "Kathleen Stanley", "bandwidth": "200M", "contact": "Heather Dean", "phone": "2-(467)650-8119", "address": "Carson29 Sauthoff Drive", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.597Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Mauris sit amet eros."}}, {"model": "assets.idc", "pk": 15, "fields": {"name": "Mildred Olson", "bandwidth": "200M", "contact": "Amy Woods", "phone": "0-(721)578-5551", "address": "Maricopa75 Twin Pines Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.599Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo."}}, {"model": "assets.idc", "pk": 16, "fields": {"name": "Martha Fox", "bandwidth": "200M", "contact": "Nancy Hunt", "phone": "6-(751)553-7447", "address": "San Pablo18509 Starling Avenue", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.600Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Morbi a ipsum."}}, {"model": "assets.idc", "pk": 17, "fields": {"name": "Mary Morgan", "bandwidth": "200M", "contact": "Julia Garza", "phone": "3-(761)154-0695", "address": "Riverside6 Corscot Pass", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.601Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "In eleifend quam a odio."}}, {"model": "assets.idc", "pk": 18, "fields": {"name": "Laura Gilbert", "bandwidth": "200M", "contact": "Joyce Reid", "phone": "1-(489)059-4526", "address": "Huron3 Westerfield Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.603Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Praesent blandit."}}, {"model": "assets.idc", "pk": 19, "fields": {"name": "Sharon Gutierrez", "bandwidth": "200M", "contact": "Robin Graham", "phone": "9-(488)714-5225", "address": "Palm Desert15 Petterle Point", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.604Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam."}}, {"model": "assets.idc", "pk": 20, "fields": {"name": "Joyce Sullivan", "bandwidth": "200M", "contact": "Alice Adams", "phone": "3-(803)533-8553", "address": "Winters84 Caliangt Court", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.605Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Nunc nisl."}}, {"model": "assets.idc", "pk": 21, "fields": {"name": "Phyllis Vasquez", "bandwidth": "200M", "contact": "Judy Gray", "phone": "3-(968)523-4654", "address": "Los Angeles8704 Calypso Court", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.607Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Mauris sit amet eros."}}, {"model": "assets.idc", "pk": 22, "fields": {"name": "Alice Cunningham", "bandwidth": "200M", "contact": "Denise Simmons", "phone": "3-(552)123-5275", "address": "Temecula53706 Dapin Parkway", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.608Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Phasellus id sapien in sapien iaculis congue."}}, {"model": "assets.idc", "pk": 23, "fields": {"name": "Louise Gardner", "bandwidth": "200M", "contact": "Theresa Dixon", "phone": "8-(285)789-4870", "address": "Napa12843 Forster Way", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.609Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros."}}, {"model": "assets.idc", "pk": 24, "fields": {"name": "Donna Lawrence", "bandwidth": "200M", "contact": "Sandra Bryant", "phone": "2-(935)136-2730", "address": "La Ca\u00f1ada Flintridge87243 Crescent Oaks Avenue", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.611Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Etiam vel augue."}}, {"model": "assets.idc", "pk": 25, "fields": {"name": "Jacqueline Carter", "bandwidth": "200M", "contact": "Laura Simpson", "phone": "3-(679)977-4491", "address": "Anaheim46308 Merrick Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.612Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Morbi ut odio."}}, {"model": "assets.idc", "pk": 26, "fields": {"name": "Louise Snyder", "bandwidth": "200M", "contact": "Lori Hayes", "phone": "4-(342)858-0193", "address": "Rocklin57 Vernon Plaza", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.614Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nunc purus."}}, {"model": "assets.idc", "pk": 27, "fields": {"name": "Doris Reynolds", "bandwidth": "200M", "contact": "Norma Wagner", "phone": "8-(952)261-6195", "address": "Indian Wells53 Ramsey Street", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.616Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Nulla tellus."}}, {"model": "assets.idc", "pk": 28, "fields": {"name": "Kelly Reid", "bandwidth": "200M", "contact": "Sara Mcdonald", "phone": "5-(543)248-9479", "address": "Pinole64 Dorton Way", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.617Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Suspendisse potenti."}}, {"model": "assets.idc", "pk": 29, "fields": {"name": "Ruth Gray", "bandwidth": "200M", "contact": "Heather Vasquez", "phone": "3-(725)241-1940", "address": "Paramount963 Shasta Road", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.618Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem."}}, {"model": "assets.idc", "pk": 30, "fields": {"name": "Elizabeth Jones", "bandwidth": "200M", "contact": "Marilyn Castillo", "phone": "9-(571)254-8016", "address": "Hidden Hills24059 Clyde Gallagher Point", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.620Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Donec ut dolor."}}, {"model": "assets.idc", "pk": 31, "fields": {"name": "Bonnie Watson", "bandwidth": "200M", "contact": "Marilyn Brooks", "phone": "1-(006)215-0363", "address": "Montebello58 Northland Way", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.621Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Maecenas pulvinar lobortis est."}}, {"model": "assets.idc", "pk": 32, "fields": {"name": "Lois Stewart", "bandwidth": "200M", "contact": "Ashley Flores", "phone": "4-(991)326-9366", "address": "Brawley27158 Fair Oaks Alley", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.623Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Morbi a ipsum."}}, {"model": "assets.idc", "pk": 33, "fields": {"name": "Wanda Peterson", "bandwidth": "200M", "contact": "Susan Lawson", "phone": "5-(056)760-9786", "address": "Baldwin Park107 Briar Crest Drive", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.624Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Proin risus."}}, {"model": "assets.idc", "pk": 34, "fields": {"name": "Sarah Sullivan", "bandwidth": "200M", "contact": "Christina Greene", "phone": "7-(850)229-0377", "address": "Cypress54 Hoepker Lane", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.626Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Quisque ut erat."}}, {"model": "assets.idc", "pk": 35, "fields": {"name": "Jane Rodriguez", "bandwidth": "200M", "contact": "Robin Knight", "phone": "5-(352)755-6372", "address": "Antioch542 Tennyson Park", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.636Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Lorem ipsum dolor sit amet, consectetuer adipiscing elit."}}, {"model": "assets.idc", "pk": 36, "fields": {"name": "Lois Brown", "bandwidth": "200M", "contact": "Robin Riley", "phone": "1-(857)758-4309", "address": "Redding4239 Beilfuss Place", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.638Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Morbi non quam nec dui luctus rutrum."}}, {"model": "assets.idc", "pk": 37, "fields": {"name": "Ann Kelly", "bandwidth": "200M", "contact": "Evelyn Morales", "phone": "3-(877)185-2885", "address": "Culver City5980 Mallory Junction", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.640Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Phasellus id sapien in sapien iaculis congue."}}, {"model": "assets.idc", "pk": 38, "fields": {"name": "Ruth Wilson", "bandwidth": "200M", "contact": "Ruby Medina", "phone": "0-(567)412-9481", "address": "Sonoma8579 Arkansas Point", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.641Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Suspendisse ornare consequat lectus."}}, {"model": "assets.idc", "pk": 39, "fields": {"name": "Diane Hayes", "bandwidth": "200M", "contact": "Robin White", "phone": "8-(517)345-4223", "address": "Rancho Cucamonga5023 Sycamore Plaza", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.642Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla."}}, {"model": "assets.idc", "pk": 40, "fields": {"name": "Donna Martin", "bandwidth": "200M", "contact": "Sandra Lynch", "phone": "2-(378)254-7616", "address": "St. Helena68 Grim Parkway", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.644Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Donec posuere metus vitae ipsum."}}, {"model": "assets.idc", "pk": 41, "fields": {"name": "Ashley Jenkins", "bandwidth": "200M", "contact": "Teresa Black", "phone": "5-(485)633-6931", "address": "Pleasanton546 Ryan Pass", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.645Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Aenean lectus."}}, {"model": "assets.idc", "pk": 42, "fields": {"name": "Marilyn Butler", "bandwidth": "200M", "contact": "Julie Hicks", "phone": "3-(960)818-5834", "address": "Sausalito72680 Maryland Parkway", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.646Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam."}}, {"model": "assets.idc", "pk": 43, "fields": {"name": "Angela Carpenter", "bandwidth": "200M", "contact": "Lisa Holmes", "phone": "7-(830)614-5780", "address": "Camarillo32 Anzinger Alley", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.648Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Morbi quis tortor id nulla ultrices aliquet."}}, {"model": "assets.idc", "pk": 44, "fields": {"name": "Janice Medina", "bandwidth": "200M", "contact": "Mary Anderson", "phone": "8-(137)407-5518", "address": "Lincoln51 Darwin Plaza", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.649Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Curabitur convallis."}}, {"model": "assets.idc", "pk": 45, "fields": {"name": "Pamela Evans", "bandwidth": "200M", "contact": "Sharon Carter", "phone": "0-(899)129-7470", "address": "Maywood3067 Troy Avenue", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.650Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis."}}, {"model": "assets.idc", "pk": 46, "fields": {"name": "Joan Cruz", "bandwidth": "200M", "contact": "Laura Mcdonald", "phone": "6-(790)029-1689", "address": "Burbank42678 Harper Street", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.652Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Praesent blandit."}}, {"model": "assets.idc", "pk": 47, "fields": {"name": "Barbara Matthews", "bandwidth": "200M", "contact": "Janice White", "phone": "9-(607)152-4392", "address": "Sonora46105 Sullivan Alley", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.653Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Vestibulum sed magna at nunc commodo placerat."}}, {"model": "assets.idc", "pk": 48, "fields": {"name": "Patricia Johnston", "bandwidth": "200M", "contact": "Christina Williamson", "phone": "5-(078)214-3571", "address": "Palos Verdes Estates09871 Upham Street", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.654Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Suspendisse accumsan tortor quis turpis."}}, {"model": "assets.idc", "pk": 49, "fields": {"name": "Michelle Fox", "bandwidth": "200M", "contact": "Diana Brown", "phone": "9-(428)218-1317", "address": "Corning0 Northland Avenue", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.656Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Etiam pretium iaculis justo."}}, {"model": "assets.idc", "pk": 50, "fields": {"name": "Katherine Greene", "bandwidth": "200M", "contact": "Barbara Allen", "phone": "7-(478)112-1822", "address": "Fremont415 Johnson Avenue", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.657Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Nulla ut erat id mauris vulputate elementum."}}, {"model": "assets.idc", "pk": 51, "fields": {"name": "Wanda Watkins", "bandwidth": "200M", "contact": "Rebecca Spencer", "phone": "3-(088)780-4286", "address": "Lake Elsinore16473 Cherokee Park", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.659Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci."}}, {"model": "assets.idc", "pk": 52, "fields": {"name": "Evelyn Mendoza", "bandwidth": "200M", "contact": "Carol Frazier", "phone": "9-(767)843-3362", "address": "Cerritos6 Raven Road", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.660Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Morbi a ipsum."}}, {"model": "assets.idc", "pk": 53, "fields": {"name": "Catherine Jordan", "bandwidth": "200M", "contact": "Theresa Fields", "phone": "3-(550)264-9110", "address": "Huron4 Carioca Lane", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.661Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nullam varius."}}, {"model": "assets.idc", "pk": 54, "fields": {"name": "Andrea Arnold", "bandwidth": "200M", "contact": "Janice Henry", "phone": "9-(391)293-0447", "address": "Auburn124 Leroy Point", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.663Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nulla facilisi."}}, {"model": "assets.idc", "pk": 55, "fields": {"name": "Rebecca Johnson", "bandwidth": "200M", "contact": "Diana Johnston", "phone": "2-(342)711-1279", "address": "Pomona4 Hanover Road", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.664Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis."}}, {"model": "assets.idc", "pk": 56, "fields": {"name": "Margaret Wheeler", "bandwidth": "200M", "contact": "Evelyn Mason", "phone": "9-(643)580-2251", "address": "El Segundo4036 Dovetail Lane", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.665Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Morbi non quam nec dui luctus rutrum."}}, {"model": "assets.idc", "pk": 57, "fields": {"name": "Rachel Warren", "bandwidth": "200M", "contact": "Brenda Sims", "phone": "3-(498)355-6668", "address": "Moorpark96 Glendale Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.667Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Etiam pretium iaculis justo."}}, {"model": "assets.idc", "pk": 58, "fields": {"name": "Diane Mcdonald", "bandwidth": "200M", "contact": "Margaret Gibson", "phone": "3-(324)871-6721", "address": "Grover Beach02783 Haas Park", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.668Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Praesent blandit lacinia erat."}}, {"model": "assets.idc", "pk": 59, "fields": {"name": "Joyce Knight", "bandwidth": "200M", "contact": "Janet Tucker", "phone": "9-(362)424-3687", "address": "Port Hueneme1932 Barby Hill", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.669Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Nulla mollis molestie lorem."}}, {"model": "assets.idc", "pk": 60, "fields": {"name": "Julie Gonzales", "bandwidth": "200M", "contact": "Julie Payne", "phone": "1-(290)664-5180", "address": "San Ramon861 Spenser Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.670Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Praesent id massa id nisl venenatis lacinia."}}, {"model": "assets.idc", "pk": 61, "fields": {"name": "Linda Jackson", "bandwidth": "200M", "contact": "Janet Mason", "phone": "8-(818)915-4748", "address": "Yucaipa7 Sunnyside Hill", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.672Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Duis ac nibh."}}, {"model": "assets.idc", "pk": 62, "fields": {"name": "Kathleen Garza", "bandwidth": "200M", "contact": "Anna Garza", "phone": "7-(484)629-0239", "address": "Avenal672 Dapin Plaza", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.673Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Nam dui."}}, {"model": "assets.idc", "pk": 63, "fields": {"name": "Joyce Gilbert", "bandwidth": "200M", "contact": "Rachel Gonzales", "phone": "1-(988)826-1084", "address": "Exeter0132 Laurel Way", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.674Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Nulla justo."}}, {"model": "assets.idc", "pk": 64, "fields": {"name": "Judith Stanley", "bandwidth": "200M", "contact": "Sara Patterson", "phone": "3-(243)240-0628", "address": "Laguna Hills4293 Wayridge Drive", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.675Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Quisque porta volutpat erat."}}, {"model": "assets.idc", "pk": 65, "fields": {"name": "Denise Jordan", "bandwidth": "200M", "contact": "Ruby Perry", "phone": "6-(225)677-9653", "address": "Sunnyvale308 Manley Drive", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.677Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Morbi porttitor lorem id ligula."}}, {"model": "assets.idc", "pk": 66, "fields": {"name": "Susan Medina", "bandwidth": "200M", "contact": "Joyce Davis", "phone": "4-(973)281-1036", "address": "Highland89 Almo Center", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.678Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Suspendisse accumsan tortor quis turpis."}}, {"model": "assets.idc", "pk": 67, "fields": {"name": "Diane Lawson", "bandwidth": "200M", "contact": "Marilyn Rogers", "phone": "7-(613)944-2049", "address": "Palmdale4702 Hoard Park", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.680Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci."}}, {"model": "assets.idc", "pk": 68, "fields": {"name": "Anne Greene", "bandwidth": "200M", "contact": "Michelle Reid", "phone": "1-(416)221-9748", "address": "Dublin48967 Spaight Alley", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.681Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Integer a nibh."}}, {"model": "assets.idc", "pk": 69, "fields": {"name": "Julia Hicks", "bandwidth": "200M", "contact": "Kelly Allen", "phone": "9-(657)457-2642", "address": "La Habra Heights53682 Bunker Hill Avenue", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.682Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Duis bibendum."}}, {"model": "assets.idc", "pk": 70, "fields": {"name": "Alice Watkins", "bandwidth": "200M", "contact": "Jane Berry", "phone": "4-(224)620-1407", "address": "Bellflower87 Fairview Hill", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.683Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Etiam pretium iaculis justo."}}, {"model": "assets.idc", "pk": 71, "fields": {"name": "Lillian Perkins", "bandwidth": "200M", "contact": "Tammy Bryant", "phone": "1-(274)123-4455", "address": "Ripon542 Carioca Park", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.685Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Maecenas ut massa quis augue luctus tincidunt."}}, {"model": "assets.idc", "pk": 72, "fields": {"name": "Doris Campbell", "bandwidth": "200M", "contact": "Brenda Gordon", "phone": "0-(531)710-4188", "address": "Santa Barbara8 Manley Avenue", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.686Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "In sagittis dui vel nisl."}}, {"model": "assets.idc", "pk": 73, "fields": {"name": "Linda Austin", "bandwidth": "200M", "contact": "Bonnie Alexander", "phone": "8-(081)978-7177", "address": "Yucaipa520 Melody Alley", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.687Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Morbi quis tortor id nulla ultrices aliquet."}}, {"model": "assets.idc", "pk": 74, "fields": {"name": "Katherine Ray", "bandwidth": "200M", "contact": "Doris Kelley", "phone": "2-(098)399-2112", "address": "Atwater605 Boyd Plaza", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.689Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Donec ut mauris eget massa tempor convallis."}}, {"model": "assets.idc", "pk": 75, "fields": {"name": "Barbara Stanley", "bandwidth": "200M", "contact": "Virginia Morgan", "phone": "6-(120)039-5912", "address": "Novato53 Oak Plaza", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.690Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Vestibulum sed magna at nunc commodo placerat."}}, {"model": "assets.idc", "pk": 76, "fields": {"name": "Brenda Adams", "bandwidth": "200M", "contact": "Janet Ellis", "phone": "9-(597)492-3981", "address": "San Rafael621 Spaight Hill", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.692Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem."}}, {"model": "assets.idc", "pk": 77, "fields": {"name": "Carolyn Gardner", "bandwidth": "200M", "contact": "Carolyn Henry", "phone": "8-(718)258-6746", "address": "Woodside08 Victoria Terrace", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.693Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Duis mattis egestas metus."}}, {"model": "assets.idc", "pk": 78, "fields": {"name": "Andrea Butler", "bandwidth": "200M", "contact": "Norma Bell", "phone": "5-(405)151-6296", "address": "Shasta Lake57386 Springs Circle", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.694Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Maecenas pulvinar lobortis est."}}, {"model": "assets.idc", "pk": 79, "fields": {"name": "Pamela Scott", "bandwidth": "200M", "contact": "Ruby Ford", "phone": "9-(440)049-6700", "address": "La Ca\u00f1ada Flintridge5174 Nelson Circle", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.695Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Pellentesque eget nunc."}}, {"model": "assets.idc", "pk": 80, "fields": {"name": "Kathy Hawkins", "bandwidth": "200M", "contact": "Evelyn Gray", "phone": "8-(785)701-6664", "address": "Seaside362 Pine View Hill", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.697Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "In congue."}}, {"model": "assets.idc", "pk": 81, "fields": {"name": "Jennifer Kennedy", "bandwidth": "200M", "contact": "Susan Jacobs", "phone": "3-(470)242-5893", "address": "Marysville12936 Village Green Hill", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.698Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante."}}, {"model": "assets.idc", "pk": 82, "fields": {"name": "Andrea Bishop", "bandwidth": "200M", "contact": "Kelly Bishop", "phone": "9-(838)134-8682", "address": "Delano248 North Way", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.700Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Praesent blandit."}}, {"model": "assets.idc", "pk": 83, "fields": {"name": "Beverly Jenkins", "bandwidth": "200M", "contact": "Ann Anderson", "phone": "1-(622)378-6834", "address": "Danville320 Derek Court", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.701Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam."}}, {"model": "assets.idc", "pk": 84, "fields": {"name": "Elizabeth Lewis", "bandwidth": "200M", "contact": "Catherine Ross", "phone": "3-(759)815-3880", "address": "Blythe04918 Dexter Pass", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.702Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Duis bibendum, felis sed interdum venenatis, turpis enim blandit mi, in porttitor pede justo eu massa."}}, {"model": "assets.idc", "pk": 85, "fields": {"name": "Amy Stanley", "bandwidth": "200M", "contact": "Shirley Bennett", "phone": "5-(242)223-2401", "address": "Marysville37 Anniversary Place", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.704Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Curabitur convallis."}}, {"model": "assets.idc", "pk": 86, "fields": {"name": "Sarah Harrison", "bandwidth": "200M", "contact": "Julia Little", "phone": "7-(117)040-4718", "address": "Apple Valley71 Hovde Place", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.705Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Nullam molestie nibh in lectus."}}, {"model": "assets.idc", "pk": 87, "fields": {"name": "Cynthia Perkins", "bandwidth": "200M", "contact": "Emily Garrett", "phone": "9-(407)716-3250", "address": "Lafayette8 Novick Circle", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.706Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis."}}, {"model": "assets.idc", "pk": 88, "fields": {"name": "Frances Crawford", "bandwidth": "200M", "contact": "Paula Jordan", "phone": "6-(767)856-1779", "address": "Los Altos59 Nobel Center", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.708Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Integer ac leo."}}, {"model": "assets.idc", "pk": 89, "fields": {"name": "Denise Jackson", "bandwidth": "200M", "contact": "Paula Powell", "phone": "1-(714)929-3650", "address": "Port Hueneme8 Oakridge Center", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.709Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante."}}, {"model": "assets.idc", "pk": 90, "fields": {"name": "Katherine Fox", "bandwidth": "200M", "contact": "Doris Washington", "phone": "6-(452)637-6093", "address": "Kingsburg6294 Schurz Lane", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.710Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Nulla facilisi."}}, {"model": "assets.idc", "pk": 91, "fields": {"name": "Catherine Jordan", "bandwidth": "200M", "contact": "Louise Weaver", "phone": "3-(789)565-9624", "address": "Alturas054 Bunker Hill Plaza", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.712Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Suspendisse potenti."}}, {"model": "assets.idc", "pk": 92, "fields": {"name": "Lillian Howell", "bandwidth": "200M", "contact": "Ruth Jordan", "phone": "1-(088)412-0788", "address": "Pacific Grove9 Sage Way", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.713Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Donec ut dolor."}}, {"model": "assets.idc", "pk": 93, "fields": {"name": "Kelly Murphy", "bandwidth": "200M", "contact": "Virginia Simmons", "phone": "8-(344)877-8031", "address": "Ukiah13789 Rutledge Park", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.714Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Aenean fermentum."}}, {"model": "assets.idc", "pk": 94, "fields": {"name": "Mildred Sanchez", "bandwidth": "200M", "contact": "Jennifer Montgomery", "phone": "1-(853)653-5085", "address": "Laguna Woods5094 Stephen Pass", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.715Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Maecenas tincidunt lacus at velit."}}, {"model": "assets.idc", "pk": 95, "fields": {"name": "Mary Matthews", "bandwidth": "200M", "contact": "Beverly Mccoy", "phone": "5-(448)087-2874", "address": "Kerman861 Carey Road", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.716Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nulla justo."}}, {"model": "assets.idc", "pk": 96, "fields": {"name": "Angela Gibson", "bandwidth": "200M", "contact": "Ashley Fox", "phone": "9-(368)523-3859", "address": "Temple City6983 Blue Bill Park Hill", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.718Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Morbi non lectus."}}, {"model": "assets.idc", "pk": 97, "fields": {"name": "Marilyn Ross", "bandwidth": "200M", "contact": "Louise Wilson", "phone": "0-(285)436-0947", "address": "Montclair68397 Nancy Place", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.719Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Curabitur at ipsum ac tellus semper interdum."}}, {"model": "assets.idc", "pk": 98, "fields": {"name": "Judy Robertson", "bandwidth": "200M", "contact": "Anne Brown", "phone": "6-(433)915-0987", "address": "Madera59172 Victoria Circle", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.720Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Integer ac neque."}}, {"model": "assets.idc", "pk": 99, "fields": {"name": "Heather Taylor", "bandwidth": "200M", "contact": "Cynthia Moreno", "phone": "6-(490)900-9533", "address": "Orange840 Anhalt Junction", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.721Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nulla tellus."}}, {"model": "assets.idc", "pk": 100, "fields": {"name": "Cynthia Kelley", "bandwidth": "200M", "contact": "Diana Weaver", "phone": "4-(412)590-7474", "address": "Ojai385 Thompson Terrace", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.723Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Integer pede justo, lacinia eget, tincidunt eget, tempus vel, pede."}} \ No newline at end of file diff --git a/apps/users/views.py b/apps/users/views.py index adf998870..1dbacc83b 100644 --- a/apps/users/views.py +++ b/apps/users/views.py @@ -98,7 +98,7 @@ class UserCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateView): form_class = UserCreateForm template_name = 'users/user_create.html' success_url = reverse_lazy('users:user-list') - success_message = _('Create user %s success.') + success_message = _('Create user %s successfully.') def get_context_data(self, **kwargs): context = super(UserCreateView, self).get_context_data(**kwargs) From 62cac20ba7c9ae171fb483afa5d66210a6934ca6 Mon Sep 17 00:00:00 2001 From: "xiaokong1937@gmail.com" <763691951@qq.com> Date: Thu, 8 Sep 2016 19:30:22 +0800 Subject: [PATCH 18/50] fix #9 --- apps/users/templates/users/login.html | 2 +- apps/users/views.py | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/apps/users/templates/users/login.html b/apps/users/templates/users/login.html index b3ba10ce0..455e15eb7 100644 --- a/apps/users/templates/users/login.html +++ b/apps/users/templates/users/login.html @@ -40,7 +40,7 @@
    {% trans 'Login' %}
    -
    + {% csrf_token %} {% if form.errors %} {% if 'captcha' in form.errors %} diff --git a/apps/users/views.py b/apps/users/views.py index adf998870..bc967cb1e 100644 --- a/apps/users/views.py +++ b/apps/users/views.py @@ -41,12 +41,17 @@ class UserLoginView(FormView): def get(self, request, *args, **kwargs): if request.user.is_staff: - return redirect(request.POST.get(self.redirect_field_name, reverse('index'))) - return self.render_to_response(self.get_context_data(**kwargs)) + return redirect(self.get_success_url()) + return super(UserLoginView, self).get(request, *args, **kwargs) def form_valid(self, form): auth_login(self.request, form.get_user()) - return redirect(self.request.POST.get(self.redirect_field_name, reverse('index'))) + return redirect(self.get_success_url()) + + def get_success_url(self): + return self.request.POST.get( + self.redirect_field_name, + self.request.GET.get(self.redirect_field_name, reverse('index'))) @method_decorator(never_cache, name='dispatch') From 239dd0567f74adf793d7a95b038aa6daef494a43 Mon Sep 17 00:00:00 2001 From: ibuler Date: Thu, 8 Sep 2016 20:39:06 +0800 Subject: [PATCH 19/50] Finish admin user view --- ...ate.html => admin_user_create_update.html} | 0 .../templates/assets/admin_user_detail.html | 220 ++++++++++++++++++ .../templates/assets/admin_user_list.html | 2 +- .../templates/assets/asset_group_detail.html | 38 +-- apps/assets/views.py | 46 +++- apps/users/templates/users/user_detail.html | 4 +- apps/users/urls.py | 1 - 7 files changed, 282 insertions(+), 29 deletions(-) rename apps/assets/templates/assets/{admin_user_create.html => admin_user_create_update.html} (100%) create mode 100644 apps/assets/templates/assets/admin_user_detail.html diff --git a/apps/assets/templates/assets/admin_user_create.html b/apps/assets/templates/assets/admin_user_create_update.html similarity index 100% rename from apps/assets/templates/assets/admin_user_create.html rename to apps/assets/templates/assets/admin_user_create_update.html diff --git a/apps/assets/templates/assets/admin_user_detail.html b/apps/assets/templates/assets/admin_user_detail.html new file mode 100644 index 000000000..12a108f6c --- /dev/null +++ b/apps/assets/templates/assets/admin_user_detail.html @@ -0,0 +1,220 @@ +{% extends 'base.html' %} +{% load common_tags %} +{% load users_tags %} +{% load static %} +{% load i18n %} + +{% block custom_head_css_js %} + + +{% endblock %} +{% block content %} +
    +
    +
    +
    + +
    +
    +
    +
    + {{ admin_user.name }} +
    + + + + + + + + + + +
    +
    +
    +
    - {% for group in groups %} - + {% endfor %}
    - +
    {{ group.name }} - - {{ group.name }} + +
    {% trans 'ID' %}{% trans 'Name' %}{% trans 'Username' %}{% trans 'Asset num' %}{% trans 'Lost connection' %}{% trans 'Comment' %}
    {{ admin_user.id }} + + {{ admin_user.name }} + + {{ admin_user.username }}{{ admin_user.assets.count }}{{ admin_user.assets.count }}{{ admin_user.comment|truncatewords:8 }} + + {% trans 'Script' %} + + {% trans 'Refresh' %} + {% trans 'Update' %} + {% trans 'Delete' %} +
    + + + + + + + + + + + + + + + + + + + + + + +
    {% trans 'Name' %}:{{ admin_user.name }}
    {% trans 'Username' %}:{{ admin_user.username }}
    {% trans 'Date created' %}:{{ admin_user.date_created }}
    {% trans 'Created by' %}:{{ asset_group.created_by }}
    {% trans 'Comment' %}:{{ admin_user.comment }}
    +
    +
    + +
    +
    + {% trans 'Asset list of ' %} {{ admin_user.name }} +
    + + + + + + + + + + +
    +
    +
    + + + + + + + + + + + {% for asset in page_obj %} + + + + + + + {% endfor %} + +
    {% trans 'Hostname' %}{% trans 'IP' %}{% trans 'Port' %}{% trans 'Alive' %}
    {{ asset.hostname }}{{ asset.ip }}{{ asset.port }}Alive
    +
    + {% include '_pagination.html' %} +
    +
    +
    +
    +
    +
    +
    + {% trans 'Quick update' %} +
    +
    + + + + + + + + + + + + + + + + + +
    {% trans 'Get install script' %}: + + + +
    {% trans 'Retest asset connectivity' %}: + + + +
    {% trans 'Reset private key' %}: + + + +
    +
    +
    + +
    +
    + {% trans 'Replace asset admin user with this' %} +
    +
    + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    +
    + + + + + +{% endblock %} +{% block custom_foot_js %} + +{% endblock %} \ No newline at end of file diff --git a/apps/assets/templates/assets/admin_user_list.html b/apps/assets/templates/assets/admin_user_list.html index d7aae75aa..eeb4587bd 100644 --- a/apps/assets/templates/assets/admin_user_list.html +++ b/apps/assets/templates/assets/admin_user_list.html @@ -20,7 +20,7 @@ {{ admin_user.id }} - + {{ admin_user.name }} diff --git a/apps/assets/templates/assets/asset_group_detail.html b/apps/assets/templates/assets/asset_group_detail.html index 08272a04f..4c48867b9 100644 --- a/apps/assets/templates/assets/asset_group_detail.html +++ b/apps/assets/templates/assets/asset_group_detail.html @@ -69,7 +69,7 @@
    - {% trans 'Asset list of ' %} {{ asset_group.name }} + {% trans 'Asset list of ' %} {{ asset_group.name }}
    @@ -118,7 +118,7 @@
    - {% trans 'Associate asset user(system/admin)' %} + {% trans 'Associate system user' %}
    @@ -207,23 +207,23 @@ {% endblock %} {% block custom_foot_js %} +{% endblock %} +{% block content %} +
    +
    +
    +
    +
    +
    Basic Wizzard
    + +
    +
    +

    + This is basic example of Step +

    +
    +

    First Step

    +
    +
    +

    Hello in Step 1

    +

    + This is the first content. +

    +
    +
    + +

    Second Step

    +
    +
    +

    This is step 2

    +

    + This content is diferent than the first one. +

    +
    +
    + +

    Third Step

    +
    +
    +

    This is step 3

    +

    + This is last content. +

    +
    +
    +
    + +
    +
    +
    +
    +
    +{% endblock %} +{% block custom_foot_js %} + +{% endblock %} + diff --git a/apps/users/urls.py b/apps/users/urls.py index a89958a2a..179827216 100644 --- a/apps/users/urls.py +++ b/apps/users/urls.py @@ -16,6 +16,7 @@ urlpatterns = [ name='reset-password-success'), url(r'^user$', views.UserListView.as_view(), name='user-list'), url(r'^user/(?P[0-9]+)$', views.UserDetailView.as_view(), name='user-detail'), + url(r'^first-login/$', views.UserFirstLoginView.as_view(), name='user-first-login'), url(r'^user/(?P[0-9]+)/assets-perm$', views.UserDetailView.as_view(), name='user-detail'), url(r'^user/create$', views.UserCreateView.as_view(), name='user-create'), url(r'^user/(?P[0-9]+)/update$', views.UserUpdateView.as_view(), name='user-update'), diff --git a/apps/users/views.py b/apps/users/views.py index bc967cb1e..c34d5fcf8 100644 --- a/apps/users/views.py +++ b/apps/users/views.py @@ -7,9 +7,10 @@ import logging from django.conf import settings from django.contrib.auth import login as auth_login, logout as auth_logout from django.contrib.messages.views import SuccessMessageMixin +from django.core.files.storage import default_storage from django.db.models import Q from django.http import HttpResponseRedirect -from django.shortcuts import get_object_or_404, reverse, redirect +from django.shortcuts import get_object_or_404, reverse, redirect, render from django.utils.decorators import method_decorator from django.utils.translation import ugettext as _ from django.urls import reverse_lazy @@ -21,10 +22,12 @@ from django.views.generic.list import ListView from django.views.generic.edit import CreateView, DeleteView, UpdateView, FormView from django.views.generic.detail import DetailView +from formtools.wizard.views import SessionWizardView + from common.utils import get_object_or_none from .models import User, UserGroup -from .forms import UserCreateForm, UserUpdateForm, UserGroupForm, UserLoginForm +from .forms import (UserCreateForm, UserUpdateForm, UserGroupForm, UserLoginForm, UserInfoForm, UserKeyForm) from .utils import AdminUserRequiredMixin, user_add_success_next, send_reset_password_mail @@ -49,6 +52,9 @@ class UserLoginView(FormView): return redirect(self.get_success_url()) def get_success_url(self): + if self.request.user.is_first_login: + return '/firstlogin' + return self.request.POST.get( self.redirect_field_name, self.request.GET.get(self.redirect_field_name, reverse('index'))) @@ -292,3 +298,18 @@ class UserResetPasswordView(TemplateView): user.reset_password(password) return HttpResponseRedirect(reverse('users:reset-password-success')) + + +class UserFirstLoginView(SessionWizardView): + template_name = 'users/first_login.html' + form_list = [UserInfoForm, UserKeyForm] + file_storage = default_storage + + def done(self, form_list, form_dict, **kwargs): + print form_list + return redirect(reverse('index')) + + def get_context_data(self, **kwargs): + context = super(UserFirstLoginView, self).get_context_data(**kwargs) + context.update({'app': _('Users'), 'action': _('First Login')}) + return context diff --git a/requirements.txt b/requirements.txt index 1b3476a53..ffc458d20 100644 --- a/requirements.txt +++ b/requirements.txt @@ -17,3 +17,4 @@ paramiko==2.0.2 celery==3.1.23 ansible==2.1.1.0 django-simple-captcha==0.5.2 +django-formtools==1.0 From 5259dd8054c7d1350c471bf96513a4efc04f21ac Mon Sep 17 00:00:00 2001 From: ibuler Date: Thu, 8 Sep 2016 22:54:05 +0800 Subject: [PATCH 21/50] Asset form: Add some comment --- apps/assets/forms.py | 9 +++++++++ apps/assets/views.py | 1 + 2 files changed, 10 insertions(+) diff --git a/apps/assets/forms.py b/apps/assets/forms.py index 8b5262714..1d62eadcb 100644 --- a/apps/assets/forms.py +++ b/apps/assets/forms.py @@ -21,6 +21,7 @@ class AssetForm(forms.ModelForm): class AssetGroupForm(forms.ModelForm): + # See AdminUserForm comment same it assets = forms.ModelMultipleChoiceField(queryset=Asset.objects.all(), label=_('Asset'), required=False, @@ -51,6 +52,7 @@ class AssetGroupForm(forms.ModelForm): class IDCForm(forms.ModelForm): + # See AdminUserForm comment same it assets = forms.ModelMultipleChoiceField(queryset=Asset.objects.all(), label=_('Asset'), required=False, @@ -81,29 +83,35 @@ class IDCForm(forms.ModelForm): class AdminUserForm(forms.ModelForm): + # Admin user assets define, let user select, save it in form not in view assets = forms.ModelMultipleChoiceField(queryset=Asset.objects.all(), label=_('Asset'), required=False, widget=forms.SelectMultiple( attrs={'class': 'select2', 'data-placeholder': _('Select assets')}) ) + # Form field name can not start with `_`, so redefine it, password = forms.CharField(widget=forms.PasswordInput, max_length=100, min_length=8, strip=True, help_text=_('If also set private key, use that first'), required=False) + # Need use upload private key file except paste private key content private_key_file = forms.FileField(required=False) def __init__(self, *args, **kwargs): + # When update a admin user instance, initial it if kwargs.get('instance'): initial = kwargs.get('initial', {}) initial['assets'] = kwargs['instance'].assets.all() super(AdminUserForm, self).__init__(*args, **kwargs) def _save_m2m(self): + # Save assets relation with admin user super(AdminUserForm, self)._save_m2m() assets = self.cleaned_data['assets'] self.instance.assets.clear() self.instance.assets.add(*tuple(assets)) def save(self, commit=True): + # Because we define custom field, so we need rewrite :method: `save` admin_user = super(AdminUserForm, self).save(commit=commit) password = self.cleaned_data['password'] private_key_file = self.cleaned_data['private_key_file'] @@ -111,6 +119,7 @@ class AdminUserForm(forms.ModelForm): if password: admin_user.password = password print(password) + # Todo: Validate private key file, and generate public key if private_key_file: print(private_key_file) admin_user.private_key = private_key_file.read() diff --git a/apps/assets/views.py b/apps/assets/views.py index 06cec83d2..7ff0292a5 100644 --- a/apps/assets/views.py +++ b/apps/assets/views.py @@ -277,6 +277,7 @@ class AdminUserDetailView(AdminUserRequiredMixin, SingleObjectMixin, ListView): self.object = self.get_object(queryset=AdminUser.objects.all()) return super(AdminUserDetailView, self).get(request, *args, **kwargs) + # Todo: queryset default order by connectivity, need ops support def get_queryset(self): return self.object.assets.all() From 4fc9274e0094cc7dbe79272ee0b3fd41ca2fdf6b Mon Sep 17 00:00:00 2001 From: ibuler Date: Fri, 9 Sep 2016 00:09:49 +0800 Subject: [PATCH 22/50] Add asset system user --- apps/assets/forms.py | 78 +++++++++++++++- apps/assets/models.py | 70 ++++++++++++--- .../assets/admin_user_create_update.html | 8 +- .../assets/system_user_create_update.html | 88 +++++++++++++++++++ .../templates/assets/system_user_list.html | 43 +++++++++ apps/assets/urls.py | 5 ++ apps/assets/views.py | 67 +++++++++++++- apps/templates/_nav.html | 2 +- 8 files changed, 343 insertions(+), 18 deletions(-) create mode 100644 apps/assets/templates/assets/system_user_create_update.html create mode 100644 apps/assets/templates/assets/system_user_list.html diff --git a/apps/assets/forms.py b/apps/assets/forms.py index 1d62eadcb..221420ce0 100644 --- a/apps/assets/forms.py +++ b/apps/assets/forms.py @@ -90,6 +90,7 @@ class AdminUserForm(forms.ModelForm): widget=forms.SelectMultiple( attrs={'class': 'select2', 'data-placeholder': _('Select assets')}) ) + auto_generate_key = forms.BooleanField(required=True, initial=True) # Form field name can not start with `_`, so redefine it, password = forms.CharField(widget=forms.PasswordInput, max_length=100, min_length=8, strip=True, help_text=_('If also set private key, use that first'), required=False) @@ -120,15 +121,15 @@ class AdminUserForm(forms.ModelForm): admin_user.password = password print(password) # Todo: Validate private key file, and generate public key + # Todo: Auto generate private key and public key if private_key_file: - print(private_key_file) admin_user.private_key = private_key_file.read() admin_user.save() return self.instance class Meta: model = AdminUser - fields = ['name', 'username', 'password', 'private_key_file', 'as_default', 'comment'] + fields = ['name', 'username', 'auto_generate_key', 'password', 'private_key_file', 'as_default', 'comment'] widgets = { 'name': forms.TextInput(attrs={'placeholder': _('Name')}), 'username': forms.TextInput(attrs={'placeholder': _('Username')}), @@ -138,3 +139,76 @@ class AdminUserForm(forms.ModelForm): 'username': '* required', } + +class SystemUserForm(forms.ModelForm): + # Admin user assets define, let user select, save it in form not in view + assets = forms.ModelMultipleChoiceField(queryset=Asset.objects.all(), + label=_('Asset'), + required=False, + widget=forms.SelectMultiple( + attrs={'class': 'select2', 'data-placeholder': _('Select assets')}) + ) + asset_groups = forms.ModelMultipleChoiceField(queryset=AssetGroup.objects.all(), + label=_('Asset group'), + required=False, + widget=forms.SelectMultiple( + attrs={'class': 'select2', + 'data-placeholder': _('Select asset groups')}) + ) + auto_generate_key = forms.BooleanField(required=True, initial=True) + # Form field name can not start with `_`, so redefine it, + password = forms.CharField(widget=forms.PasswordInput, max_length=100, min_length=8, strip=True, + help_text=_('If also set private key, use that first'), required=False) + # Need use upload private key file except paste private key content + private_key_file = forms.FileField(required=False) + + def __init__(self, *args, **kwargs): + # When update a admin user instance, initial it + if kwargs.get('instance'): + initial = kwargs.get('initial', {}) + initial['assets'] = kwargs['instance'].assets.all() + initial['asset_groups'] = kwargs['instance'].asset_groups.all() + super(SystemUserForm, self).__init__(*args, **kwargs) + + def _save_m2m(self): + # Save assets relation with admin user + super(SystemUserForm, self)._save_m2m() + assets = self.cleaned_data['assets'] + asset_groups = self.cleaned_data['asset_groups'] + self.instance.assets.clear() + self.instance.assets.add(*tuple(assets)) + self.instance.asset_groups.clear() + self.instance.asset_groups.add(*tuple(asset_groups)) + + def save(self, commit=True): + # Because we define custom field, so we need rewrite :method: `save` + system_user = super(SystemUserForm, self).save(commit=commit) + password = self.cleaned_data['password'] + private_key_file = self.cleaned_data['private_key_file'] + + if password: + system_user.password = password + print(password) + # Todo: Validate private key file, and generate public key + # Todo: Auto generate private key and public key + if private_key_file: + system_user.private_key = private_key_file.read() + system_user.save() + return self.instance + + class Meta: + model = SystemUser + fields = [ + 'name', 'username', 'protocol', 'auto_generate_key', 'password', 'private_key_file', 'as_default', + 'auto_push', 'auto_update', 'sudo', 'comment', 'shell', 'home', 'uid', + ] + widgets = { + 'name': forms.TextInput(attrs={'placeholder': _('Name')}), + 'username': forms.TextInput(attrs={'placeholder': _('Username')}), + } + help_texts = { + 'name': '* required', + 'username': '* required', + 'auth_push': 'Auto push system user to asset', + 'auth_update': 'Auto update system user ssh key', + } \ No newline at end of file diff --git a/apps/assets/models.py b/apps/assets/models.py index 213a49822..6701d65ce 100644 --- a/apps/assets/models.py +++ b/apps/assets/models.py @@ -135,28 +135,72 @@ class SystemUser(models.Model): ('telnet', 'telnet'), ) name = models.CharField(max_length=128, unique=True, verbose_name=_('Name')) - username = models.CharField(max_length=16, blank=True, verbose_name=_('Username')) - password = models.CharField(max_length=256, blank=True, verbose_name=_('Password')) - protocol = models.CharField(max_length=16, default='ssh', verbose_name=_('Protocol')) - private_key = models.CharField(max_length=4096, blank=True, verbose_name=_('SSH private key')) - public_key = models.CharField(max_length=4096, blank=True, verbose_name=_('SSH public key')) - is_default = models.BooleanField(default=True, verbose_name=_('As default')) + username = models.CharField(max_length=16, verbose_name=_('Username')) + _password = models.CharField(max_length=256, blank=True, verbose_name=_('Password')) + protocol = models.CharField(max_length=16, choices=PROTOCOL_CHOICES, default='ssh', verbose_name=_('Protocol')) + _private_key = models.CharField(max_length=4096, blank=True, verbose_name=_('SSH private key')) + _public_key = models.CharField(max_length=4096, blank=True, verbose_name=_('SSH public key')) + as_default = models.BooleanField(default=False, verbose_name=_('As default')) auto_push = models.BooleanField(default=True, verbose_name=_('Auto push')) auto_update = models.BooleanField(default=True, verbose_name=_('Auto update pass/key')) - sudo = models.TextField(max_length=4096, blank=True, verbose_name=_('Sudo')) - shell = models.CharField(max_length=64, blank=True, verbose_name=_('Shell')) + sudo = models.TextField(max_length=4096, default='/user/bin/whoami', verbose_name=_('Sudo')) + shell = models.CharField(max_length=64, default='/bin/bash', verbose_name=_('Shell')) home = models.CharField(max_length=64, blank=True, verbose_name=_('Home')) - uid = models.IntegerField(blank=True, verbose_name=_('Uid')) - date_created = models.DateTimeField(auto_now=True, null=True) + uid = models.IntegerField(null=True, blank=True, verbose_name=_('Uid')) + date_created = models.DateTimeField(auto_now=True) created_by = models.CharField(max_length=32, blank=True, verbose_name=_('Created by')) - comment = models.CharField(max_length=128, blank=True, verbose_name=_('Comment')) + comment = models.TextField(max_length=128, blank=True, verbose_name=_('Comment')) def __unicode__(self): return self.name + @property + def password(self): + return decrypt(self._password) + + @password.setter + def password(self, password_raw): + self._password = encrypt(password_raw) + + @property + def private_key(self): + return decrypt(self._private_key) + + @private_key.setter + def private_key(self, private_key_raw): + self._private_key = encrypt(private_key_raw) + + @property + def public_key(self): + return decrypt(self._public_key) + + @public_key.setter + def public_key(self, public_key_raw): + self._public_key = encrypt(public_key_raw) + class Meta: db_table = 'system_user' + @classmethod + def generate_fake(cls, count=100): + from random import seed + import forgery_py + from django.db import IntegrityError + + seed() + for i in range(count): + obj = cls(name=forgery_py.name.full_name(), + username=forgery_py.internet.user_name(), + password=forgery_py.lorem_ipsum.word(), + comment=forgery_py.lorem_ipsum.sentence(), + created_by='Fake') + try: + obj.save() + logger.debug('Generate fake asset group: %s' % obj.name) + except IntegrityError: + print('Error continue') + continue + class AssetGroup(models.Model): name = models.CharField(max_length=64, unique=True, verbose_name=_('Name')) @@ -206,7 +250,7 @@ class Asset(models.Model): password = models.CharField(max_length=256, null=True, blank=True, verbose_name=_("Admin password")) admin_user = models.ForeignKey(AdminUser, null=True, related_name='assets', on_delete=models.SET_NULL, verbose_name=_("Admin user")) - system_user = models.ManyToManyField(SystemUser, blank=True, verbose_name=_("System User")) + system_user = models.ManyToManyField(SystemUser, blank=True, related_name='assets', verbose_name=_("System User")) idc = models.ForeignKey(IDC, null=True, related_name='assets', on_delete=models.SET_NULL, verbose_name=_('IDC')) mac_address = models.CharField(max_length=20, null=True, blank=True, verbose_name=_("Mac address")) brand = models.CharField(max_length=64, null=True, blank=True, verbose_name=_('Brand')) @@ -227,7 +271,7 @@ class Asset(models.Model): comment = models.CharField(max_length=128, null=True, blank=True, verbose_name=_('Comment')) def __unicode__(self): - return '%(ip)s:%(port)d' % {'ip': self.ip, 'port': self.port} + return '%(ip)s:%(port)s' % {'ip': self.ip, 'port': self.port} def initial(self): pass diff --git a/apps/assets/templates/assets/admin_user_create_update.html b/apps/assets/templates/assets/admin_user_create_update.html index b340b7c3a..7738adec0 100644 --- a/apps/assets/templates/assets/admin_user_create_update.html +++ b/apps/assets/templates/assets/admin_user_create_update.html @@ -13,7 +13,7 @@
    -
    {% trans 'Create asset group' %}
    +
    {% trans 'Create admin user' %}
    @@ -31,6 +31,12 @@ {% csrf_token %} {{ form.name|bootstrap_horizontal }} {{ form.username|bootstrap_horizontal }} +
    + +
    + {{ form.auto_generate_key}} +
    +
    {{ form.password|bootstrap_horizontal }} {{ form.private_key_file|bootstrap_horizontal }}
    diff --git a/apps/assets/templates/assets/system_user_create_update.html b/apps/assets/templates/assets/system_user_create_update.html new file mode 100644 index 000000000..cfb40e8f8 --- /dev/null +++ b/apps/assets/templates/assets/system_user_create_update.html @@ -0,0 +1,88 @@ +{% extends 'base.html' %} +{% load i18n %} +{% load static %} +{% load bootstrap %} +{% block custom_head_css_js %} + + +{% endblock %} + +{% block content %} +
    +
    +
    +
    + +
    +
    + {% csrf_token %} + {{ form.name|bootstrap_horizontal }} + {{ form.username|bootstrap_horizontal }} + {{ form.protocol|bootstrap_horizontal }} +
    + +
    + {{ form.auto_generate_key}} +
    +
    + {{ form.password|bootstrap_horizontal }} + {{ form.private_key_file|bootstrap_horizontal }} +
    + +
    + {{ form.as_default}} +
    +
    +
    + +
    + {{ form.auto_push}} +
    +
    +
    + +
    + {{ form.auto_update}} +
    +
    + {{ form.assets|bootstrap_horizontal }} + {{ form.asset_groups|bootstrap_horizontal }} + {{ form.sudo|bootstrap_horizontal }} + {{ form.comment|bootstrap_horizontal }} + {{ form.home|bootstrap_horizontal }} + {{ form.shell|bootstrap_horizontal }} + {{ form.uid|bootstrap_horizontal }} + +
    +
    + + +
    +
    + +
    +
    +
    +
    +
    +{% endblock %} +{% block custom_foot_js %} + +{% endblock %} \ No newline at end of file diff --git a/apps/assets/templates/assets/system_user_list.html b/apps/assets/templates/assets/system_user_list.html new file mode 100644 index 000000000..12f2b0bdf --- /dev/null +++ b/apps/assets/templates/assets/system_user_list.html @@ -0,0 +1,43 @@ +{% extends '_list_base.html' %} +{% load i18n %} +{% load common_tags %} +{% block content_left_head %} + {% trans "Create system user" %} +{% endblock %} + +{% block table_head %} +
    + + + + + + + +{% endblock %} + +{% block table_body %} + {% for system_user in system_user_list %} + + + + + + + + + + + {% endfor %} +{% endblock %} diff --git a/apps/assets/urls.py b/apps/assets/urls.py index 631dc7189..d19f294a4 100644 --- a/apps/assets/urls.py +++ b/apps/assets/urls.py @@ -33,5 +33,10 @@ urlpatterns = [ url(r'^admin-user/(?P[0-9]+)$', views.AdminUserDetailView.as_view(), name='admin-user-detail'), url(r'^admin-user/(?P[0-9]+)/update', views.AdminUserUpdateView.as_view(), name='admin-user-update'), url(r'^admin-user/(?P[0-9]+)/delete$', views.AdminUserDeleteView.as_view(), name='admin-user-delete'), + url(r'^system-user$', views.SystemUserListView.as_view(), name='system-user-list'), + url(r'^system-user/create$', views.SystemUserCreateView.as_view(), name='system-user-create'), + url(r'^system-user/(?P[0-9]+)$', views.SystemUserDetailView.as_view(), name='system-user-detail'), + url(r'^system-user/(?P[0-9]+)/update', views.SystemUserUpdateView.as_view(), name='system-user-update'), + url(r'^system-user/(?P[0-9]+)/delete$', views.SystemUserDeleteView.as_view(), name='system-user-delete'), # url(r'^api/v1.0/', include(router.urls)), ] diff --git a/apps/assets/views.py b/apps/assets/views.py index 7ff0292a5..47c92c234 100644 --- a/apps/assets/views.py +++ b/apps/assets/views.py @@ -11,7 +11,7 @@ from django.contrib.messages.views import SuccessMessageMixin from django.views.generic.detail import DetailView, SingleObjectMixin from .models import Asset, AssetGroup, IDC, AssetExtend, AdminUser, SystemUser -from .forms import AssetForm, AssetGroupForm, IDCForm, AdminUserForm +from .forms import AssetForm, AssetGroupForm, IDCForm, AdminUserForm, SystemUserForm from .hands import AdminUserRequiredMixin @@ -294,3 +294,68 @@ class AdminUserDeleteView(AdminUserRequiredMixin, DeleteView): model = AdminUser template_name = 'assets/delete_confirm.html' success_url = 'assets:admin-user-list' + + +class SystemUserListView(AdminUserRequiredMixin, ListView): + model = SystemUser + paginate_by = settings.CONFIG.DISPLAY_PER_PAGE + context_object_name = 'system_user_list' + template_name = 'assets/system_user_list.html' + + def get_context_data(self, **kwargs): + context = { + 'app': _('Assets'), + 'action': _('Admin user list'), + 'keyword': self.request.GET.get('keyword', '') + } + kwargs.update(context) + return super(SystemUserListView, self).get_context_data(**kwargs) + + def get_queryset(self): + # Todo: Default order by lose asset connection num + self.queryset = super(SystemUserListView, self).get_queryset() + self.keyword = keyword = self.request.GET.get('keyword', '') + self.sort = sort = self.request.GET.get('sort', '-date_created') + + if keyword: + self.queryset = self.queryset.filter(Q(name__icontains=keyword) | + Q(comment__icontains=keyword)) + + if sort: + self.queryset = self.queryset.order_by(sort) + return self.queryset + + +class SystemUserCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateView): + model = SystemUser + form_class = SystemUserForm + template_name = 'assets/system_user_create_update.html' + success_url = reverse_lazy('assets:system-user-list') + success_message = _('Create system user %s successfully.') + + def get_context_data(self, **kwargs): + context = { + 'app': 'assets', + 'action': 'Create system user' + } + kwargs.update(context) + return super(SystemUserCreateView, self).get_context_data(**kwargs) + + def get_success_message(self, cleaned_data): + return self.success_message % ( + reverse_lazy('assets:system-user-detail', kwargs={'pk': self.object.pk}), + self.object.name, + ) + + +class SystemUserUpdateView(UpdateView): + pass + + +class SystemUserDetailView(DetailView): + pass + + +class SystemUserDeleteView(DeleteView): + pass + diff --git a/apps/templates/_nav.html b/apps/templates/_nav.html index 07ac9bc25..9eee251ca 100644 --- a/apps/templates/_nav.html +++ b/apps/templates/_nav.html @@ -22,7 +22,7 @@
  • {% trans 'Asset group' %}
  • {% trans 'IDC' %}
  • {% trans 'Admin user' %}
  • -
  • {% trans 'System user' %}
  • +
  • {% trans 'System user' %}
  • {% trans 'Label' %}
  • From a89ae94d850928b47059a0755aa60aef32ab7079 Mon Sep 17 00:00:00 2001 From: ibuler Date: Fri, 9 Sep 2016 00:34:23 +0800 Subject: [PATCH 23/50] Update system user create template script --- .../assets/templates/assets/system_user_create_update.html | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/apps/assets/templates/assets/system_user_create_update.html b/apps/assets/templates/assets/system_user_create_update.html index cfb40e8f8..ea8d466d9 100644 --- a/apps/assets/templates/assets/system_user_create_update.html +++ b/apps/assets/templates/assets/system_user_create_update.html @@ -83,6 +83,13 @@ {% endblock %} \ No newline at end of file From 292179d41d993c1909a9412c853e717e7eee4716 Mon Sep 17 00:00:00 2001 From: ibuler Date: Fri, 9 Sep 2016 21:48:44 +0800 Subject: [PATCH 24/50] system-user --- apps/assets/models.py | 1 - apps/assets/views.py | 21 ++++++++++++++++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/apps/assets/models.py b/apps/assets/models.py index 6701d65ce..5ae270d0c 100644 --- a/apps/assets/models.py +++ b/apps/assets/models.py @@ -132,7 +132,6 @@ class AdminUser(models.Model): class SystemUser(models.Model): PROTOCOL_CHOICES = ( ('ssh', 'ssh'), - ('telnet', 'telnet'), ) name = models.CharField(max_length=128, unique=True, verbose_name=_('Name')) username = models.CharField(max_length=16, verbose_name=_('Username')) diff --git a/apps/assets/views.py b/apps/assets/views.py index 47c92c234..aa44c819d 100644 --- a/apps/assets/views.py +++ b/apps/assets/views.py @@ -305,7 +305,7 @@ class SystemUserListView(AdminUserRequiredMixin, ListView): def get_context_data(self, **kwargs): context = { 'app': _('Assets'), - 'action': _('Admin user list'), + 'action': _('System user list'), 'keyword': self.request.GET.get('keyword', '') } kwargs.update(context) @@ -348,8 +348,23 @@ class SystemUserCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateVi ) -class SystemUserUpdateView(UpdateView): - pass +class SystemUserUpdateView(AdminUserRequiredMixin, UpdateView): + model = SystemUser + form_class = SystemUserForm + template_name = 'assets/system_user_create_update.html' + success_message = _('Update system user %s successfully.') + + def get_context_data(self, **kwargs): + context = { + 'app': 'assets', + 'action': 'Update system user' + } + kwargs.update(context) + return super(SystemUserUpdateView, self).get_context_data(**kwargs) + + def get_success_url(self): + success_url = reverse_lazy('assets:system-user-detail', pk=self.object.pk) + return success_url class SystemUserDetailView(DetailView): From c58725dbc016fd5c841aed5648cebbe26e8c7ae5 Mon Sep 17 00:00:00 2001 From: ibuler Date: Fri, 9 Sep 2016 23:19:39 +0800 Subject: [PATCH 25/50] Finish system user view --- apps/assets/forms.py | 2 +- .../templates/assets/system_user_asset.html | 139 +++++++++++++ .../assets/system_user_asset_group.html | 140 +++++++++++++ .../templates/assets/system_user_detail.html | 192 ++++++++++++++++++ .../templates/assets/system_user_list.html | 4 +- apps/assets/urls.py | 3 + apps/assets/views.py | 74 ++++++- 7 files changed, 543 insertions(+), 11 deletions(-) create mode 100644 apps/assets/templates/assets/system_user_asset.html create mode 100644 apps/assets/templates/assets/system_user_asset_group.html create mode 100644 apps/assets/templates/assets/system_user_detail.html diff --git a/apps/assets/forms.py b/apps/assets/forms.py index 221420ce0..101ad854b 100644 --- a/apps/assets/forms.py +++ b/apps/assets/forms.py @@ -155,7 +155,7 @@ class SystemUserForm(forms.ModelForm): attrs={'class': 'select2', 'data-placeholder': _('Select asset groups')}) ) - auto_generate_key = forms.BooleanField(required=True, initial=True) + auto_generate_key = forms.BooleanField(initial=True) # Form field name can not start with `_`, so redefine it, password = forms.CharField(widget=forms.PasswordInput, max_length=100, min_length=8, strip=True, help_text=_('If also set private key, use that first'), required=False) diff --git a/apps/assets/templates/assets/system_user_asset.html b/apps/assets/templates/assets/system_user_asset.html new file mode 100644 index 000000000..4f1fb4097 --- /dev/null +++ b/apps/assets/templates/assets/system_user_asset.html @@ -0,0 +1,139 @@ +{% extends 'base.html' %} +{% load common_tags %} +{% load users_tags %} +{% load static %} +{% load i18n %} + +{% block custom_head_css_js %} + + +{% endblock %} +{% block content %} +
    +
    +
    +
    + +
    +
    +
    +
    + {% trans 'Asset list of ' %} {{ admin_user.name }} +
    + + + + + + + + + + +
    +
    +
    +
    {% trans 'ID' %}{% trans 'Name' %}{% trans 'Username' %}{% trans 'Asset num' %}{% trans 'Asset group num' %}{% trans 'Lost connection' %}{% trans 'Comment' %}
    {{ system_user.id }} + + {{ system_user.name }} + + {{ system_user.username }}{{ system_user.assets.count }}{{ system_user.asset_groups.count }}{{ system_user.assets.count }}{{ system_user.comment|truncatewords:8 }} + + {% trans 'Script' %} + + {% trans 'Refresh' %} + {% trans 'Update' %} + {% trans 'Delete' %} +
    + + + + + + + + + + {% for asset in page_obj %} + + + + + + + {% endfor %} + +
    {% trans 'Hostname' %}{% trans 'IP' %}{% trans 'Port' %}{% trans 'Alive' %}
    {{ asset.hostname }}{{ asset.ip }}{{ asset.port }}Alive
    +
    + {% include '_pagination.html' %} +
    +
    +
    +
    +
    +
    +
    + {% trans 'Add asset to this system user' %} +
    +
    + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    +
    +
    + + + + +{% endblock %} +{% block custom_foot_js %} + +{% endblock %} \ No newline at end of file diff --git a/apps/assets/templates/assets/system_user_asset_group.html b/apps/assets/templates/assets/system_user_asset_group.html new file mode 100644 index 000000000..bcddd09fc --- /dev/null +++ b/apps/assets/templates/assets/system_user_asset_group.html @@ -0,0 +1,140 @@ +{% extends 'base.html' %} +{% load common_tags %} +{% load users_tags %} +{% load static %} +{% load i18n %} + +{% block custom_head_css_js %} + + +{% endblock %} +{% block content %} +
    +
    +
    +
    + +
    +
    +
    +
    + {% trans 'Asset list of ' %} {{ admin_user.name }} +
    + + + + + + + + + + +
    +
    +
    + + + + + + + + + + + {% for asset_group in page_obj %} + + + + + + + {% endfor %} + +
    {% trans 'Name' %}{% trans 'Asset num' %}{% trans 'Unavailable num' %}{% trans 'Comment' %}
    {{ asset_group.name }}{{ asset_group_group.assets.count }}{{ asset_group_group.assets.count }}{{ asset_group.comment|truncatewords:4 }}
    +
    + {% include '_pagination.html' %} +
    +
    +
    +
    +
    +
    +
    + {% trans 'Add asset group to this system user' %} +
    +
    + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    + + +{% endblock %} +{% block custom_foot_js %} + +{% endblock %} \ No newline at end of file diff --git a/apps/assets/templates/assets/system_user_detail.html b/apps/assets/templates/assets/system_user_detail.html new file mode 100644 index 000000000..9dde0a0e1 --- /dev/null +++ b/apps/assets/templates/assets/system_user_detail.html @@ -0,0 +1,192 @@ +{% extends 'base.html' %} +{% load common_tags %} +{% load users_tags %} +{% load static %} +{% load i18n %} + +{% block custom_head_css_js %} + + +{% endblock %} +{% block content %} +
    +
    +
    +
    + +
    +
    +
    +
    + {{ system_user.name }} +
    + + + + + + + + + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {% if system_user.shell %} + + + + + {% endif %} + {% if system_user.home %} + + + + + {% endif %} + {% if system_user.uid %} + + + + + {% endif %} + + + + + + + + + + + + + +
    {% trans 'Name' %}:{{ system_user.name }}
    {% trans 'Username' %}:{{ system_user.username }}
    {% trans 'Protocol' %}:{{ system_user.protocol }}
    {% trans 'Auto push' %}:{{ system_user.protocol }}
    {% trans 'Auto update' %}:{{ system_user.auto_update }}
    {% trans 'As default' %}:{{ system_user.protocol }}
    {% trans 'Sudo' %}:{{ system_user.sudo }}
    {% trans 'Shell' %}:{{ system_user.shell }}
    {% trans 'Home' %}:{{ system_user.home }}
    {% trans 'Uid' %}:{{ system_user.uid }}
    {% trans 'Date created' %}:{{ system_user.date_created }}
    {% trans 'Created by' %}:{{ asset_group.created_by }}
    {% trans 'Comment' %}:{{ system_user.comment }}
    +
    +
    +
    + +
    +
    +
    + {% trans 'Quick update' %} +
    +
    + + + + + + + + + + + + + + + + + +
    {% trans 'Get mannual install script' %}: + + + +
    {% trans 'Retest asset connectivity' %}: + + + +
    {% trans 'Reset private key' %}: + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    + + +{% endblock %} +{% block custom_foot_js %} + +{% endblock %} \ No newline at end of file diff --git a/apps/assets/templates/assets/system_user_list.html b/apps/assets/templates/assets/system_user_list.html index 12f2b0bdf..37be0c3fc 100644 --- a/apps/assets/templates/assets/system_user_list.html +++ b/apps/assets/templates/assets/system_user_list.html @@ -11,7 +11,7 @@ {% trans 'Username' %} {% trans 'Asset num' %} {% trans 'Asset group num' %} - {% trans 'Lost connection' %} + {% trans 'Unavailable' %} {% trans 'Comment' %} {% endblock %} @@ -29,7 +29,7 @@ {{ system_user.assets.count }} {{ system_user.asset_groups.count }} {{ system_user.assets.count }} - {{ system_user.comment|truncatewords:8 }} + {{ system_user.comment|truncatewords:4 }} {% trans 'Script' %} diff --git a/apps/assets/urls.py b/apps/assets/urls.py index d19f294a4..ad2224048 100644 --- a/apps/assets/urls.py +++ b/apps/assets/urls.py @@ -38,5 +38,8 @@ urlpatterns = [ url(r'^system-user/(?P[0-9]+)$', views.SystemUserDetailView.as_view(), name='system-user-detail'), url(r'^system-user/(?P[0-9]+)/update', views.SystemUserUpdateView.as_view(), name='system-user-update'), url(r'^system-user/(?P[0-9]+)/delete$', views.SystemUserDeleteView.as_view(), name='system-user-delete'), + url(r'^system-user/(?P[0-9]+)/asset$', views.SystemUserAssetView.as_view(), name='system-user-asset'), + url(r'^system-user/(?P[0-9]+)/asset-group$', views.SystemUserAssetGroupView.as_view(), + name='system-user-asset-group'), # url(r'^api/v1.0/', include(router.urls)), ] diff --git a/apps/assets/views.py b/apps/assets/views.py index aa44c819d..04f4ae053 100644 --- a/apps/assets/views.py +++ b/apps/assets/views.py @@ -335,8 +335,8 @@ class SystemUserCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateVi def get_context_data(self, **kwargs): context = { - 'app': 'assets', - 'action': 'Create system user' + 'app': _('Assets'), + 'action': _('Create system user'), } kwargs.update(context) return super(SystemUserCreateView, self).get_context_data(**kwargs) @@ -356,8 +356,8 @@ class SystemUserUpdateView(AdminUserRequiredMixin, UpdateView): def get_context_data(self, **kwargs): context = { - 'app': 'assets', - 'action': 'Update system user' + 'app': _('Assets'), + 'action': _('Update system user') } kwargs.update(context) return super(SystemUserUpdateView, self).get_context_data(**kwargs) @@ -367,10 +367,68 @@ class SystemUserUpdateView(AdminUserRequiredMixin, UpdateView): return success_url -class SystemUserDetailView(DetailView): - pass +class SystemUserDetailView(AdminUserRequiredMixin, DetailView): + template_name = 'assets/system_user_detail.html' + context_object_name = 'system_user' + model = SystemUser + + def get_context_data(self, **kwargs): + context = { + 'app': _('Assets'), + 'action': _('System user detail') + } + kwargs.update(context) + return super(SystemUserDetailView, self).get_context_data(**kwargs) -class SystemUserDeleteView(DeleteView): - pass +class SystemUserDeleteView(AdminUserRequiredMixin, DeleteView): + model = SystemUser + template_name = 'assets/delete_confirm.html' + success_url = 'assets:system-user-list' + + +class SystemUserAssetView(AdminUserRequiredMixin, SingleObjectMixin, ListView): + paginate_by = settings.CONFIG.DISPLAY_PER_PAGE + template_name = 'assets/system_user_asset.html' + context_object_name = 'system_user' + + def get(self, request, *args, **kwargs): + self.object = self.get_object(queryset=SystemUser.objects.all()) + return super(SystemUserAssetView, self).get(request, *args, **kwargs) + + # Todo: queryset default order by connectivity, need ops support + def get_queryset(self): + return self.object.assets.all() + + def get_context_data(self, **kwargs): + context = { + 'app': 'assets', + 'action': 'System user asset', + 'assets': self.get_queryset(), + } + kwargs.update(context) + return super(SystemUserAssetView, self).get_context_data(**kwargs) + + +class SystemUserAssetGroupView(AdminUserRequiredMixin, SingleObjectMixin, ListView): + paginate_by = settings.CONFIG.DISPLAY_PER_PAGE + template_name = 'assets/system_user_asset_group.html' + context_object_name = 'system_user' + + def get(self, request, *args, **kwargs): + self.object = self.get_object(queryset=SystemUser.objects.all()) + return super(SystemUserAssetGroupView, self).get(request, *args, **kwargs) + + # Todo: queryset default order by connectivity, need ops support + def get_queryset(self): + return self.object.asset_groups.all() + + def get_context_data(self, **kwargs): + context = { + 'app': 'assets', + 'action': 'System user asset group', + 'asset_groups': self.get_queryset(), + } + kwargs.update(context) + return super(SystemUserAssetGroupView, self).get_context_data(**kwargs) From 6069b8946b95dfec866cf2cae45d9a1b0ddc8570 Mon Sep 17 00:00:00 2001 From: ibuler Date: Sat, 10 Sep 2016 00:29:57 +0800 Subject: [PATCH 26/50] Start asset extend --- apps/assets/models.py | 19 ++++++++++++++++++- apps/assets/urls.py | 9 +++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/apps/assets/models.py b/apps/assets/models.py index 5ae270d0c..71a076d02 100644 --- a/apps/assets/models.py +++ b/apps/assets/models.py @@ -61,7 +61,24 @@ class AssetExtend(models.Model): comment = models.TextField(blank=True, verbose_name=_('Comment')) def __unicode__(self): - return self.name + return '%(key)s: %(value)s' % {'key': self.key, 'value': self.value} + + @classmethod + def initial(cls): + for k, v in ( + (_('status'), _('In use')), + (_('status'), _('Out of use')), + (_('type'), _('Server')), + (_('type'), _('VM')), + (_('type'), _('Switch')), + (_('type'), _('Router')), + (_('type'), _('Firewall')), + (_('type'), _('Storage')), + (_('env'), _('Production')), + (_('env'), _('Development')), + (_('env'), _('Testing')), + ): + cls.objects.create(key=k, value=v, created_by='System') class Meta: db_table = 'asset_extend' diff --git a/apps/assets/urls.py b/apps/assets/urls.py index ad2224048..175c01afc 100644 --- a/apps/assets/urls.py +++ b/apps/assets/urls.py @@ -12,27 +12,36 @@ import views app_name = 'assets' urlpatterns = [ + # Resource asset url url(r'^$', views.AssetListView.as_view(), name='asset-index'), url(r'^asset$', views.AssetListView.as_view(), name='asset-list'), url(r'^asset/create$', views.AssetCreateView.as_view(), name='asset-create'), url(r'^asset/(?P[0-9]+)$', views.AssetDetailView.as_view(), name='asset-detail'), url(r'^asset/(?P[0-9]+)/update', views.AssetUpdateView.as_view(), name='asset-update'), url(r'^asset/(?P[0-9]+)/delete$', views.AssetDeleteView.as_view(), name='asset-delete'), + + # Resource asset group url url(r'^asset-group$', views.AssetGroupListView.as_view(), name='asset-group-list'), url(r'^asset-group/create$', views.AssetGroupCreateView.as_view(), name='asset-group-create'), url(r'^asset-group/(?P[0-9]+)$', views.AssetGroupDetailView.as_view(), name='asset-group-detail'), url(r'^asset-group/(?P[0-9]+)/update$', views.AssetGroupUpdateView.as_view(), name='asset-group-update'), url(r'^asset-group/(?P[0-9]+)/delete$', views.AssetGroupDeleteView.as_view(), name='asset-group-delete'), + + # Resource idc url url(r'^idc$', views.IDCListView.as_view(), name='idc-list'), url(r'^idc/create$', views.IDCCreateView.as_view(), name='idc-create'), url(r'^idc/(?P[0-9]+)$', views.IDCDetailView.as_view(), name='idc-detail'), url(r'^idc/(?P[0-9]+)/update', views.IDCUpdateView.as_view(), name='idc-update'), url(r'^idc/(?P[0-9]+)/delete$', views.IDCDeleteView.as_view(), name='idc-delete'), + + # Resource admin user url url(r'^admin-user$', views.AdminUserListView.as_view(), name='admin-user-list'), url(r'^admin-user/create$', views.AdminUserCreateView.as_view(), name='admin-user-create'), url(r'^admin-user/(?P[0-9]+)$', views.AdminUserDetailView.as_view(), name='admin-user-detail'), url(r'^admin-user/(?P[0-9]+)/update', views.AdminUserUpdateView.as_view(), name='admin-user-update'), url(r'^admin-user/(?P[0-9]+)/delete$', views.AdminUserDeleteView.as_view(), name='admin-user-delete'), + + # Resource system user url url(r'^system-user$', views.SystemUserListView.as_view(), name='system-user-list'), url(r'^system-user/create$', views.SystemUserCreateView.as_view(), name='system-user-create'), url(r'^system-user/(?P[0-9]+)$', views.SystemUserDetailView.as_view(), name='system-user-detail'), From a7e3f9c465383e77da2829d3c447675371a35d4a Mon Sep 17 00:00:00 2001 From: "xiaokong1937@gmail.com" <763691951@qq.com> Date: Sat, 10 Sep 2016 13:16:58 +0800 Subject: [PATCH 27/50] #8 user first login view --- apps/jumpserver/settings.py | 3 +- apps/users/forms.py | 19 +++-- apps/users/templates/users/first_login.html | 56 ++++++++------ .../templates/users/first_login.old.html | 77 ------------------- apps/users/utils.py | 59 +++++++++++++- apps/users/views.py | 33 +++++++- 6 files changed, 134 insertions(+), 113 deletions(-) delete mode 100644 apps/users/templates/users/first_login.old.html diff --git a/apps/jumpserver/settings.py b/apps/jumpserver/settings.py index 0e8487b2a..409cc2d03 100644 --- a/apps/jumpserver/settings.py +++ b/apps/jumpserver/settings.py @@ -108,6 +108,7 @@ TEMPLATES = [ # WSGI_APPLICATION = 'jumpserver.wsgi.application' LOGIN_REDIRECT_URL = reverse_lazy('index') +LOGIN_URL = reverse_lazy('users:login') # Database # https://docs.djangoproject.com/en/1.10/ref/settings/#databases @@ -227,7 +228,7 @@ USE_L10N = True USE_TZ = True # I18N translation -LOCALE_PATHS = [os.path.join(BASE_DIR, 'locale'),] +LOCALE_PATHS = [os.path.join(BASE_DIR, 'locale'), ] # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/1.10/howto/static-files/ diff --git a/apps/users/forms.py b/apps/users/forms.py index c7f2a96e8..a24565f89 100644 --- a/apps/users/forms.py +++ b/apps/users/forms.py @@ -71,11 +71,20 @@ class UserGroupForm(forms.ModelForm): class UserInfoForm(forms.Form): - name = forms.CharField(max_length=20) - wechat = forms.CharField(max_length=30) - phone = forms.CharField(max_length=20) - enable_otp = forms.BooleanField() + name = forms.CharField(max_length=20, label=_('name')) + avatar = forms.ImageField(label=_('avatar'), required=False) + wechat = forms.CharField(max_length=30, label=_('wechat'), required=False) + phone = forms.CharField(max_length=20, label=_('phone'), required=False) + enable_otp = forms.BooleanField(required=False, label=_('enable otp')) class UserKeyForm(forms.Form): - private_key = forms.CharField(max_length=5000, widget=forms.Textarea) + private_key = forms.CharField(max_length=5000, widget=forms.Textarea, label=_('private key')) + + def clean_private_key(self): + from users.utils import validate_ssh_pk + ssh_pk = self.cleaned_data['private_key'] + checked, reason = validate_ssh_pk(ssh_pk) + if not checked: + raise forms.ValidationError(_('Not a valid ssh private key.')) + return ssh_pk diff --git a/apps/users/templates/users/first_login.html b/apps/users/templates/users/first_login.html index 6d51ca435..915a1f425 100644 --- a/apps/users/templates/users/first_login.html +++ b/apps/users/templates/users/first_login.html @@ -13,7 +13,7 @@
    -
    Basic Wizzard
    +
    {% trans 'First Login' %}
    @@ -33,32 +30,34 @@ {% for step in wizard.steps.all %} {% endfor %}
    -
    + {% csrf_token %} - {{ wizard.management_form }} - {% if wizard.form.forms %} - {{ wizard.form.management_form }} - {% for form in wizard.form.forms %} - {{ form|bootstrap }} - {% endfor %} - {% else %} - {{ wizard.form|bootstrap }} - {% endif %} -
    -
    + {{ wizard.management_form }} + {% if wizard.form.forms %} + {{ wizard.form.management_form }} + {% for form in wizard.form.forms %} + {{ form|bootstrap }} + {% endfor %} + {% else %} + {{ wizard.form|bootstrap }} + {% endif %}
    - {% if wizard.steps.prev %} - - - {% endif %} - +
    + +
    @@ -66,3 +65,16 @@ {% endblock %} +{% block custom_foot_js %} + +{% endblock %} diff --git a/apps/users/templates/users/first_login.old.html b/apps/users/templates/users/first_login.old.html deleted file mode 100644 index b6b1cf838..000000000 --- a/apps/users/templates/users/first_login.old.html +++ /dev/null @@ -1,77 +0,0 @@ -{% extends 'base.html' %} -{% load static %} -{% load i18n %} - -{% block custom_head_css_js %} - - -{% endblock %} -{% block content %} -
    -
    -
    -
    -
    -
    Basic Wizzard
    - -
    -
    -

    - This is basic example of Step -

    -
    -

    First Step

    -
    -
    -

    Hello in Step 1

    -

    - This is the first content. -

    -
    -
    - -

    Second Step

    -
    -
    -

    This is step 2

    -

    - This content is diferent than the first one. -

    -
    -
    - -

    Third Step

    -
    -
    -

    This is step 3

    -

    - This is last content. -

    -
    -
    -
    - -
    -
    -
    -
    -
    -{% endblock %} -{% block custom_foot_js %} - -{% endblock %} - diff --git a/apps/users/utils.py b/apps/users/utils.py index 7b3222c29..9e9a34321 100644 --- a/apps/users/utils.py +++ b/apps/users/utils.py @@ -1,18 +1,18 @@ # ~*~ coding: utf-8 ~*~ # - from __future__ import unicode_literals -import os import logging +import os +import re -from paramiko.rsakey import RSAKey from django.contrib.auth.mixins import UserPassesTestMixin from django.urls import reverse_lazy from django.utils.translation import ugettext as _ +from paramiko.rsakey import RSAKey + from common.tasks import send_mail_async from common.utils import reverse -from users.models import User try: @@ -125,5 +125,56 @@ def send_reset_password_mail(user): send_mail_async.delay(subject, message, recipient_list, html_message=message) +def validate_ssh_pk(text): + """ + Expects a SSH private key as string. + Returns a boolean and a error message. + If the text is parsed as private key successfully, + (True,'') is returned. Otherwise, + (False, ) is returned. + from https://github.com/githubnemo/SSH-private-key-validator/blob/master/validate.py + """ + + if not text: + return False, 'No text given' + + startPattern = re.compile("^-----BEGIN [A-Z]+ PRIVATE KEY-----") + optionPattern = re.compile("^.+: .+") + contentPattern = re.compile("^([a-zA-Z0-9+/]{64}|[a-zA-Z0-9+/]{1,64}[=]{0,2})$") + endPattern = re.compile("^-----END [A-Z]+ PRIVATE KEY-----") + + def contentState(text): + for i in range(0, len(text)): + line = text[i] + + if endPattern.match(line): + if i == len(text) - 1 or len(text[i + 1]) == 0: + return True, '' + else: + return False, 'At end but content coming' + + elif not contentPattern.match(line): + return False, 'Wrong string in content section' + + return False, 'No content or missing end line' + + def optionState(text): + for i in range(0, len(text)): + line = text[i] + + if line[-1:] == '\\': + return optionState(text[i + 2:]) + + if not optionPattern.match(line): + return contentState(text[i + 1:]) + + return False, 'Expected option, found nothing' + + def startState(text): + if len(text) == 0 or not startPattern.match(text[0]): + return False, 'Header is wrong' + return optionState(text[1:]) + + return startState([n.strip() for n in text.splitlines()]) diff --git a/apps/users/views.py b/apps/users/views.py index c34d5fcf8..4bc044b12 100644 --- a/apps/users/views.py +++ b/apps/users/views.py @@ -6,11 +6,12 @@ import logging from django.conf import settings from django.contrib.auth import login as auth_login, logout as auth_logout +from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.messages.views import SuccessMessageMixin from django.core.files.storage import default_storage from django.db.models import Q from django.http import HttpResponseRedirect -from django.shortcuts import get_object_or_404, reverse, redirect, render +from django.shortcuts import get_object_or_404, reverse, redirect from django.utils.decorators import method_decorator from django.utils.translation import ugettext as _ from django.urls import reverse_lazy @@ -53,7 +54,7 @@ class UserLoginView(FormView): def get_success_url(self): if self.request.user.is_first_login: - return '/firstlogin' + return reverse('users:user-first-login') return self.request.POST.get( self.redirect_field_name, @@ -300,16 +301,40 @@ class UserResetPasswordView(TemplateView): return HttpResponseRedirect(reverse('users:reset-password-success')) -class UserFirstLoginView(SessionWizardView): +class UserFirstLoginView(LoginRequiredMixin, SessionWizardView): template_name = 'users/first_login.html' form_list = [UserInfoForm, UserKeyForm] file_storage = default_storage + def dispatch(self, request, *args, **kwargs): + if request.user.is_authenticated() and not request.user.is_first_login: + return redirect(reverse('index')) + return super(UserFirstLoginView, self).dispatch(request, *args, **kwargs) + def done(self, form_list, form_dict, **kwargs): - print form_list + user = self.request.user + for form in form_list: + for field in form: + if field.value(): + setattr(user, field.name, field.value()) + if field.name == 'enable_otp': + user.enable_otp = field.value() + user.is_first_login = False + user.save() return redirect(reverse('index')) def get_context_data(self, **kwargs): context = super(UserFirstLoginView, self).get_context_data(**kwargs) context.update({'app': _('Users'), 'action': _('First Login')}) return context + + def get_form_initial(self, step): + user = self.request.user + if step == '0': + return { + 'name': user.name or user.username, + 'enable_otp': user.enable_otp or True, + 'wechat': user.wechat or '', + 'phone': user.phone or '' + } + return super(UserFirstLoginView, self).get_form_initial(step) From 627a5825f44c778214d0048d362e02ec18ce1911 Mon Sep 17 00:00:00 2001 From: ibuler Date: Sat, 10 Sep 2016 21:08:10 +0800 Subject: [PATCH 28/50] Add user perm --- apps/common/utils.py | 9 ++++ apps/perms/forms.py | 17 ++++++++ apps/perms/hands.py | 11 +++++ apps/perms/models.py | 22 +++++++++- apps/perms/views.py | 101 ++++++++++++++++++++++++++++++++++++++++++- apps/users/hands.py | 2 +- apps/users/models.py | 6 +-- 7 files changed, 158 insertions(+), 10 deletions(-) create mode 100644 apps/perms/forms.py create mode 100644 apps/perms/hands.py diff --git a/apps/common/utils.py b/apps/common/utils.py index 4451f2532..f6cb9ea9a 100644 --- a/apps/common/utils.py +++ b/apps/common/utils.py @@ -6,6 +6,7 @@ from __future__ import unicode_literals from django.shortcuts import reverse as dj_reverse from django.conf import settings from django.core import signing +from django.utils import timezone def reverse(viewname, urlconf=None, args=None, kwargs=None, current_app=None, external=False): @@ -31,3 +32,11 @@ def encrypt(*args, **kwargs): def decrypt(*args, **kwargs): return signing.loads(*args, **kwargs) + +def date_expired_default(): + try: + years = int(settings.CONFIG.DEFAULT_EXPIRED_YEARS) + except TypeError: + years = 70 + + return timezone.now() + timezone.timedelta(days=365 * years) \ No newline at end of file diff --git a/apps/perms/forms.py b/apps/perms/forms.py new file mode 100644 index 000000000..83f9fe65b --- /dev/null +++ b/apps/perms/forms.py @@ -0,0 +1,17 @@ +# ~*~ coding: utf-8 ~*~ + +from __future__ import absolute_import, unicode_literals +from django import forms +from django.utils.translation import ugettext_lazy as _ + +from users.models import User, UserGroup +from assets.models import Asset, AssetGroup, SystemUser +from .models import UserAssetPerm + + +class UserAssetPermForm(forms.ModelForm): + class Meta: + model = UserAssetPerm + fields = [ + 'assets', 'asset_groups', 'system_users', 'date_expired', 'comment' + ] diff --git a/apps/perms/hands.py b/apps/perms/hands.py new file mode 100644 index 000000000..e4d282927 --- /dev/null +++ b/apps/perms/hands.py @@ -0,0 +1,11 @@ +# ~*~ coding: utf-8 ~*~ +# + +from django.db import models +from django.utils.translation import ugettext_lazy as _ + + + + + + diff --git a/apps/perms/models.py b/apps/perms/models.py index bd4b2abe9..85c8b4672 100644 --- a/apps/perms/models.py +++ b/apps/perms/models.py @@ -1,5 +1,23 @@ -from __future__ import unicode_literals +from __future__ import unicode_literals, absolute_import from django.db import models +from django.utils.translation import ugettext_lazy as _ -# Create your models here. +from users.models import User, UserGroup +from assets.models import Asset, AssetGroup, SystemUser +from common.utils import date_expired_default + + +class UserAssetPerm(models.Model): + user = models.ForeignKey(User, related_name='asset_perm', on_delete=models.CASCADE) + assets = models.ManyToManyField(Asset, related_name='user_perms', blank=True) + asset_groups = models.ManyToManyField(AssetGroup, related_name='user_perm', blank=True) + system_users = models.ManyToManyField(SystemUser, related_name='user_perm', blank=True) + date_expired = models.DateTimeField(default=date_expired_default, verbose_name=_('Date expired')) + created_by = models.CharField(max_length=128) + date_created = models.DateTimeField(auto_now=True) + comment = models.TextField(verbose_name=_('Comment')) + + +class UserGroupAssetPerm(models.Model): + pass diff --git a/apps/perms/views.py b/apps/perms/views.py index 91ea44a21..166d9e6f3 100644 --- a/apps/perms/views.py +++ b/apps/perms/views.py @@ -1,3 +1,100 @@ -from django.shortcuts import render +# ~*~ coding: utf-8 ~*~ -# Create your views here. +from __future__ import unicode_literals, absolute_import + +from django.views.generic.list import ListView +from django.conf import settings + +from .hands import AdminUserRequiredMixin +from .models import UserAssetPerm, UserGroupAssetPerm + + +class SystemUserListView(AdminUserRequiredMixin, ListView): + model = UserAssetPerm + paginate_by = settings.CONFIG.DISPLAY_PER_PAGE + context_object_name = 'system_user_list' + template_name = 'assets/system_user_list.html' + + def get_context_data(self, **kwargs): + context = { + 'app': _('Assets'), + 'action': _('System user list'), + 'keyword': self.request.GET.get('keyword', '') + } + kwargs.update(context) + return super(SystemUserListView, self).get_context_data(**kwargs) + + def get_queryset(self): + # Todo: Default order by lose asset connection num + self.queryset = super(SystemUserListView, self).get_queryset() + self.keyword = keyword = self.request.GET.get('keyword', '') + self.sort = sort = self.request.GET.get('sort', '-date_created') + + if keyword: + self.queryset = self.queryset.filter(Q(name__icontains=keyword) | + Q(comment__icontains=keyword)) + + if sort: + self.queryset = self.queryset.order_by(sort) + return self.queryset + + +class SystemUserCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateView): + model = SystemUser + form_class = SystemUserForm + template_name = 'assets/system_user_create_update.html' + success_url = reverse_lazy('assets:system-user-list') + success_message = _('Create system user %s successfully.') + + def get_context_data(self, **kwargs): + context = { + 'app': _('Assets'), + 'action': _('Create system user'), + } + kwargs.update(context) + return super(SystemUserCreateView, self).get_context_data(**kwargs) + + def get_success_message(self, cleaned_data): + return self.success_message % ( + reverse_lazy('assets:system-user-detail', kwargs={'pk': self.object.pk}), + self.object.name, + ) + + +class SystemUserUpdateView(AdminUserRequiredMixin, UpdateView): + model = SystemUser + form_class = SystemUserForm + template_name = 'assets/system_user_create_update.html' + success_message = _('Update system user %s successfully.') + + def get_context_data(self, **kwargs): + context = { + 'app': _('Assets'), + 'action': _('Update system user') + } + kwargs.update(context) + return super(SystemUserUpdateView, self).get_context_data(**kwargs) + + def get_success_url(self): + success_url = reverse_lazy('assets:system-user-detail', pk=self.object.pk) + return success_url + + +class SystemUserDetailView(AdminUserRequiredMixin, DetailView): + template_name = 'assets/system_user_detail.html' + context_object_name = 'system_user' + model = SystemUser + + def get_context_data(self, **kwargs): + context = { + 'app': _('Assets'), + 'action': _('System user detail') + } + kwargs.update(context) + return super(SystemUserDetailView, self).get_context_data(**kwargs) + + +class SystemUserDeleteView(AdminUserRequiredMixin, DeleteView): + model = SystemUser + template_name = 'assets/delete_confirm.html' + success_url = 'assets:system-user-list' diff --git a/apps/users/hands.py b/apps/users/hands.py index e87060ecd..c24f183d7 100644 --- a/apps/users/hands.py +++ b/apps/users/hands.py @@ -10,5 +10,5 @@ :license: GPL v2, see LICENSE for more details. """ - +from users.utils import AdminUserRequiredMixin diff --git a/apps/users/models.py b/apps/users/models.py index fba66a8d8..80a5b51da 100644 --- a/apps/users/models.py +++ b/apps/users/models.py @@ -14,7 +14,7 @@ from django.utils.translation import ugettext_lazy as _ from rest_framework.authtoken.models import Token -from common.utils import encrypt, decrypt +from common.utils import encrypt, decrypt, date_expired_default class UserGroup(models.Model): @@ -58,10 +58,6 @@ class UserGroup(models.Model): continue -def date_expired_default(): - return timezone.now() + timezone.timedelta(days=365 * 70) - - class User(AbstractUser): ROLE_CHOICES = ( ('Admin', _('Administrator')), From 70cae93a4b0308b0cfed4b94f864888c9ce7611b Mon Sep 17 00:00:00 2001 From: ibuler Date: Sun, 11 Sep 2016 09:50:42 +0800 Subject: [PATCH 29/50] Add user perm model and form --- apps/assets/api.py | 29 ++-- apps/assets/hands.py | 1 + apps/assets/migrations/0001_initial.py | 30 ++-- apps/perms/models.py | 69 +++++++- apps/perms/templates/perms/example.html | 0 .../perms/templates/perms/perm_user_list.html | 72 ++++++++ apps/perms/urls.py | 18 ++ apps/perms/views.py | 159 +++++++++++------- 8 files changed, 283 insertions(+), 95 deletions(-) delete mode 100644 apps/perms/templates/perms/example.html create mode 100644 apps/perms/templates/perms/perm_user_list.html diff --git a/apps/assets/api.py b/apps/assets/api.py index 27539eb09..bfd4d7200 100644 --- a/apps/assets/api.py +++ b/apps/assets/api.py @@ -1,32 +1,37 @@ # ~*~ coding: utf-8 ~*~ + from rest_framework import serializers -from .models import ( - AssetGroup,Asset,IDC,AssetExtend -) -from rest_framework import viewsets,serializers +from rest_framework import viewsets, serializers + +from .models import AssetGroup, Asset, IDC, AssetExtend + class AssetGroupSerializer(serializers.ModelSerializer): class Meta: model = AssetGroup - #exclude = [ - #'password', 'first_name', 'last_name', 'secret_key_otp', - #'private_key', 'public_key', 'avatar', - #] + # exclude = [ + # 'password', 'first_name', 'last_name', 'secret_key_otp', + # 'private_key', 'public_key', 'avatar', + # ] + class AssetSerializer(serializers.ModelSerializer): class Meta: model = Asset - #fields = ('id', 'title', 'code', 'linenos', 'language', 'style') + # fields = ('id', 'title', 'code', 'linenos', 'language', 'style') + class IDCSerializer(serializers.ModelSerializer): class Meta: model = IDC - #fields = ('id', 'title', 'code', 'linenos', 'language', 'style') + # fields = ('id', 'title', 'code', 'linenos', 'language', 'style') class AssetGroupViewSet(viewsets.ModelViewSet): - """ - API endpoint that allows AssetGroup to be viewed or edited. + """ API endpoint that allows AssetGroup to be viewed or edited. + + some other comment + """ queryset = AssetGroup.objects.all() serializer_class = AssetGroupSerializer diff --git a/apps/assets/hands.py b/apps/assets/hands.py index 3dab35ec7..70dedfeb4 100644 --- a/apps/assets/hands.py +++ b/apps/assets/hands.py @@ -12,3 +12,4 @@ from users.utils import AdminUserRequiredMixin +from users.models import User, UserGroup diff --git a/apps/assets/migrations/0001_initial.py b/apps/assets/migrations/0001_initial.py index a63d3d984..8a1733e68 100644 --- a/apps/assets/migrations/0001_initial.py +++ b/apps/assets/migrations/0001_initial.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.10 on 2016-09-08 03:02 +# Generated by Django 1.10 on 2016-09-10 16:40 from __future__ import unicode_literals from django.db import migrations, models @@ -43,7 +43,7 @@ class Migration(migrations.Migration): ('port', models.IntegerField(blank=True, null=True, verbose_name='Port')), ('username', models.CharField(blank=True, max_length=16, null=True, verbose_name='Admin user')), ('password', models.CharField(blank=True, max_length=256, null=True, verbose_name='Admin password')), - ('mac_addr', models.CharField(blank=True, max_length=20, null=True, verbose_name='Mac address')), + ('mac_address', models.CharField(blank=True, max_length=20, null=True, verbose_name='Mac address')), ('brand', models.CharField(blank=True, max_length=64, null=True, verbose_name='Brand')), ('cpu', models.CharField(blank=True, max_length=64, null=True, verbose_name='CPU')), ('memory', models.CharField(blank=True, max_length=128, null=True, verbose_name='Memory')), @@ -57,7 +57,7 @@ class Migration(migrations.Migration): ('is_active', models.BooleanField(default=True, verbose_name='Is active')), ('date_created', models.DateTimeField(auto_now=True, null=True, verbose_name='Date added')), ('comment', models.CharField(blank=True, max_length=128, null=True, verbose_name='Comment')), - ('admin_user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='assets.AdminUser', verbose_name='Admin user')), + ('admin_user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='assets', to='assets.AdminUser', verbose_name='Admin user')), ], options={ 'db_table': 'asset', @@ -129,21 +129,21 @@ class Migration(migrations.Migration): fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=128, unique=True, verbose_name='Name')), - ('username', models.CharField(blank=True, max_length=16, verbose_name='Username')), - ('password', models.CharField(blank=True, max_length=256, verbose_name='Password')), - ('protocol', models.CharField(default='ssh', max_length=16, verbose_name='Protocol')), - ('private_key', models.CharField(blank=True, max_length=4096, verbose_name='SSH private key')), - ('public_key', models.CharField(blank=True, max_length=4096, verbose_name='SSH public key')), - ('is_default', models.BooleanField(default=True, verbose_name='As default')), + ('username', models.CharField(max_length=16, verbose_name='Username')), + ('_password', models.CharField(blank=True, max_length=256, verbose_name='Password')), + ('protocol', models.CharField(choices=[('ssh', 'ssh')], default='ssh', max_length=16, verbose_name='Protocol')), + ('_private_key', models.CharField(blank=True, max_length=4096, verbose_name='SSH private key')), + ('_public_key', models.CharField(blank=True, max_length=4096, verbose_name='SSH public key')), + ('as_default', models.BooleanField(default=False, verbose_name='As default')), ('auto_push', models.BooleanField(default=True, verbose_name='Auto push')), ('auto_update', models.BooleanField(default=True, verbose_name='Auto update pass/key')), - ('sudo', models.TextField(blank=True, max_length=4096, verbose_name='Sudo')), - ('shell', models.CharField(blank=True, max_length=64, verbose_name='Shell')), + ('sudo', models.TextField(default='/user/bin/whoami', max_length=4096, verbose_name='Sudo')), + ('shell', models.CharField(default='/bin/bash', max_length=64, verbose_name='Shell')), ('home', models.CharField(blank=True, max_length=64, verbose_name='Home')), - ('uid', models.IntegerField(blank=True, verbose_name='Uid')), - ('date_created', models.DateTimeField(auto_now=True, null=True)), + ('uid', models.IntegerField(blank=True, null=True, verbose_name='Uid')), + ('date_created', models.DateTimeField(auto_now=True)), ('created_by', models.CharField(blank=True, max_length=32, verbose_name='Created by')), - ('comment', models.CharField(blank=True, max_length=128, verbose_name='Comment')), + ('comment', models.TextField(blank=True, max_length=128, verbose_name='Comment')), ], options={ 'db_table': 'system_user', @@ -177,7 +177,7 @@ class Migration(migrations.Migration): migrations.AddField( model_name='asset', name='system_user', - field=models.ManyToManyField(blank=True, to='assets.SystemUser', verbose_name='System User'), + field=models.ManyToManyField(blank=True, related_name='assets', to='assets.SystemUser', verbose_name='System User'), ), migrations.AddField( model_name='asset', diff --git a/apps/perms/models.py b/apps/perms/models.py index 85c8b4672..f9c4a0726 100644 --- a/apps/perms/models.py +++ b/apps/perms/models.py @@ -2,22 +2,77 @@ from __future__ import unicode_literals, absolute_import from django.db import models from django.utils.translation import ugettext_lazy as _ +from django.utils import timezone from users.models import User, UserGroup from assets.models import Asset, AssetGroup, SystemUser from common.utils import date_expired_default -class UserAssetPerm(models.Model): - user = models.ForeignKey(User, related_name='asset_perm', on_delete=models.CASCADE) - assets = models.ManyToManyField(Asset, related_name='user_perms', blank=True) - asset_groups = models.ManyToManyField(AssetGroup, related_name='user_perm', blank=True) - system_users = models.ManyToManyField(SystemUser, related_name='user_perm', blank=True) +class PermUserAsset(models.Model): + ACTION_CHOICE = ( + ('1', 'Allow'), + ('0', 'Deny'), + ) + + user = models.ForeignKey(User, on_delete=models.CASCADE) + action = models.CharField(choices=ACTION_CHOICE, max_length=8, default='1') + assets = models.ManyToManyField(Asset, blank=True) + asset_groups = models.ManyToManyField(AssetGroup, blank=True) + system_users = models.ManyToManyField(SystemUser, blank=True) + date_expired = models.DateTimeField(default=date_expired_default, verbose_name=_('Date expired')) + created_by = models.CharField(max_length=128, blank=True) + date_created = models.DateTimeField(auto_now=True) + comment = models.TextField(verbose_name=_('Comment')) + + def __unicode__(self): + return '%(id)s: %(user)s %(action)s' % { + 'id': self.id, + 'user': self.user.username, + 'action': self.action, + } + + @property + def is_expired(self): + if self.date_expired > timezone.now(): + return False + else: + return True + + class Meta: + db_table = 'perm_user_asset' + + +class PermUserGroupAsset(models.Model): + ACTION_CHOICES = ( + ('0', 'Deny'), + ('1', 'Allow'), + ) + + user_group = models.ForeignKey(User, on_delete=models.CASCADE) + action = models.CharField(choices=ACTION_CHOICES, max_length=8, default='1') + assets = models.ManyToManyField(Asset, blank=True) + asset_groups = models.ManyToManyField(AssetGroup, blank=True) + system_users = models.ManyToManyField(SystemUser, blank=True) date_expired = models.DateTimeField(default=date_expired_default, verbose_name=_('Date expired')) created_by = models.CharField(max_length=128) date_created = models.DateTimeField(auto_now=True) comment = models.TextField(verbose_name=_('Comment')) + def __unicode__(self): + return '%(id)s: %(user)s %(action)s' % { + 'id': self.id, + 'user': self.user_group.name, + 'action': self.action, + } + + @property + def is_expired(self): + if self.date_expired > timezone.now(): + return False + else: + return True + + class Meta: + db_table = 'perm_user_group_asset' -class UserGroupAssetPerm(models.Model): - pass diff --git a/apps/perms/templates/perms/example.html b/apps/perms/templates/perms/example.html deleted file mode 100644 index e69de29bb..000000000 diff --git a/apps/perms/templates/perms/perm_user_list.html b/apps/perms/templates/perms/perm_user_list.html new file mode 100644 index 000000000..8994ecce9 --- /dev/null +++ b/apps/perms/templates/perms/perm_user_list.html @@ -0,0 +1,72 @@ +{% extends '_list_base.html' %} +{% load i18n %} +{% load common_tags %} +{% block content_left_head %} +{% endblock %} + +{% block table_head %} + + + + {% trans 'Name' %} + {% trans 'Username' %} + {% trans 'User group' %} + {% trans 'Asset available' %} + {% trans 'Asset unavailable' %} + {% trans 'Asset group' %} + {% trans 'System user' %} + {% trans 'Active' %} + +{% endblock %} + +{% block table_body %} + {% for user in user_list %} + + + + + + + {{ user.name }} + + + {{ user.username }} + {{ user.get_role_display }} + {{ user.groups.all|join_queryset_attr:"name" }} + {{ user.name }} + + {% if user.is_expired and user.is_active %} + + {% else %} + + {% endif %} + + + {% trans 'Update' %} + {% trans 'Delete' %} + + + {% endfor %} +{% endblock %} + +{% block content_bottom_left %} + +{% endblock %} + + diff --git a/apps/perms/urls.py b/apps/perms/urls.py index 39b3350fb..e985480f2 100644 --- a/apps/perms/urls.py +++ b/apps/perms/urls.py @@ -1 +1,19 @@ +# coding:utf-8 + from django.conf.urls import url +import views + +app_name = 'perms' + +urlpatterns = [ + # Resource asset url + url(r'^user$', views.PermUserAssetListView.as_view(), name='perm-user-list'), + # url(r'^user/(?P[0-9]+)/perm-asset/$', views.AssetListView.as_view(), name='perm-user-asset-list'), + # url(r'^user/(?P[0-9]+)/perm-asset/$', views.AssetListView.as_view(), name='perm-user-asset-list'), + # url(r'^user/(?P[0-9]+)$', views.AssetListView.as_view(), name='asset-list'), + # url(r'^asset/create$', views.AssetCreateView.as_view(), name='asset-create'), + # url(r'^asset/(?P[0-9]+)$', views.AssetDetailView.as_view(), name='asset-detail'), + # url(r'^asset/(?P[0-9]+)/update', views.AssetUpdateView.as_view(), name='asset-update'), + # url(r'^asset/(?P[0-9]+)/delete$', views.AssetDeleteView.as_view(), name='asset-delete'), +] + diff --git a/apps/perms/views.py b/apps/perms/views.py index 166d9e6f3..78d1a1a58 100644 --- a/apps/perms/views.py +++ b/apps/perms/views.py @@ -2,31 +2,38 @@ from __future__ import unicode_literals, absolute_import -from django.views.generic.list import ListView +from django.utils.translation import ugettext as _ from django.conf import settings +from django.db.models import Q +from django.views.generic import TemplateView, ListView +from django.views.generic.edit import CreateView, DeleteView, FormView, UpdateView +from django.urls import reverse_lazy +from django.contrib.messages.views import SuccessMessageMixin +from django.views.generic.detail import DetailView, SingleObjectMixin -from .hands import AdminUserRequiredMixin -from .models import UserAssetPerm, UserGroupAssetPerm +from .hands import AdminUserRequiredMixin, User, UserGroup +from .models import PermUserAsset, PermUserGroupAsset +from .forms import UserAssetPermForm -class SystemUserListView(AdminUserRequiredMixin, ListView): - model = UserAssetPerm +class PermUserListView(AdminUserRequiredMixin, ListView): + model = User paginate_by = settings.CONFIG.DISPLAY_PER_PAGE - context_object_name = 'system_user_list' - template_name = 'assets/system_user_list.html' + context_object_name = 'user_list' + template_name = 'perms/perm_user_list.html' def get_context_data(self, **kwargs): context = { - 'app': _('Assets'), - 'action': _('System user list'), + 'app': _('Perms'), + 'action': _('Perms user list'), 'keyword': self.request.GET.get('keyword', '') } kwargs.update(context) - return super(SystemUserListView, self).get_context_data(**kwargs) + return super(PermUserListView, self).get_context_data(**kwargs) def get_queryset(self): # Todo: Default order by lose asset connection num - self.queryset = super(SystemUserListView, self).get_queryset() + self.queryset = super(PermUserListView, self).get_queryset() self.keyword = keyword = self.request.GET.get('keyword', '') self.sort = sort = self.request.GET.get('sort', '-date_created') @@ -39,62 +46,92 @@ class SystemUserListView(AdminUserRequiredMixin, ListView): return self.queryset -class SystemUserCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateView): - model = SystemUser - form_class = SystemUserForm - template_name = 'assets/system_user_create_update.html' - success_url = reverse_lazy('assets:system-user-list') - success_message = _('Create system user %s successfully.') +class PermUserAssetListView(AdminUserRequiredMixin, ListView): + model = PermUserAsset + paginate_by = settings.CONFIG.DISPLAY_PER_PAGE + context_object_name = 'system_user_list' + template_name = 'assets/system_user_list.html' def get_context_data(self, **kwargs): context = { 'app': _('Assets'), - 'action': _('Create system user'), + 'action': _('System user list'), + 'keyword': self.request.GET.get('keyword', '') } kwargs.update(context) - return super(SystemUserCreateView, self).get_context_data(**kwargs) + return super(PermUserAssetListView, self).get_context_data(**kwargs) - def get_success_message(self, cleaned_data): - return self.success_message % ( - reverse_lazy('assets:system-user-detail', kwargs={'pk': self.object.pk}), - self.object.name, - ) + def get_queryset(self): + # Todo: Default order by lose asset connection num + self.queryset = super(PermUserAssetListView, self).get_queryset() + self.keyword = keyword = self.request.GET.get('keyword', '') + self.sort = sort = self.request.GET.get('sort', '-date_created') + if keyword: + self.queryset = self.queryset.filter(Q(name__icontains=keyword) | + Q(comment__icontains=keyword)) -class SystemUserUpdateView(AdminUserRequiredMixin, UpdateView): - model = SystemUser - form_class = SystemUserForm - template_name = 'assets/system_user_create_update.html' - success_message = _('Update system user %s successfully.') - - def get_context_data(self, **kwargs): - context = { - 'app': _('Assets'), - 'action': _('Update system user') - } - kwargs.update(context) - return super(SystemUserUpdateView, self).get_context_data(**kwargs) - - def get_success_url(self): - success_url = reverse_lazy('assets:system-user-detail', pk=self.object.pk) - return success_url - - -class SystemUserDetailView(AdminUserRequiredMixin, DetailView): - template_name = 'assets/system_user_detail.html' - context_object_name = 'system_user' - model = SystemUser - - def get_context_data(self, **kwargs): - context = { - 'app': _('Assets'), - 'action': _('System user detail') - } - kwargs.update(context) - return super(SystemUserDetailView, self).get_context_data(**kwargs) - - -class SystemUserDeleteView(AdminUserRequiredMixin, DeleteView): - model = SystemUser - template_name = 'assets/delete_confirm.html' - success_url = 'assets:system-user-list' + if sort: + self.queryset = self.queryset.order_by(sort) + return self.queryset +# +# +# class PermUserAssetCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateView): +# model = PermUserAsset +# form_class = PermUserAssetForm +# template_name = 'assets/system_user_create_update.html' +# success_url = reverse_lazy('assets:system-user-list') +# success_message = _('Create system user %s successfully.') +# +# def get_context_data(self, **kwargs): +# context = { +# 'app': _('Assets'), +# 'action': _('Create system user'), +# } +# kwargs.update(context) +# return super(PermUserAssetCreateView, self).get_context_data(**kwargs) +# +# def get_success_message(self, cleaned_data): +# return self.success_message % ( +# reverse_lazy('assets:system-user-detail', kwargs={'pk': self.object.pk}), +# self.object.name, +# ) +# +# +# class PermUserAssetUpdateView(AdminUserRequiredMixin, UpdateView): +# model = PermUserAsset +# form_class = PermUserAssetForm +# template_name = 'assets/system_user_create_update.html' +# success_message = _('Update system user %s successfully.') +# +# def get_context_data(self, **kwargs): +# context = { +# 'app': _('Assets'), +# 'action': _('Update system user') +# } +# kwargs.update(context) +# return super(PermUserAssetUpdateView, self).get_context_data(**kwargs) +# +# def get_success_url(self): +# success_url = reverse_lazy('assets:system-user-detail', pk=self.object.pk) +# return success_url +# +# +# class PermUserAssetDetailView(AdminUserRequiredMixin, DetailView): +# template_name = 'assets/system_user_detail.html' +# context_object_name = 'system_user' +# model = PermUserAsset +# +# def get_context_data(self, **kwargs): +# context = { +# 'app': _('Assets'), +# 'action': _('System user detail') +# } +# kwargs.update(context) +# return super(PermUserAssetDetailView, self).get_context_data(**kwargs) +# +# +# class PermUserAssetDeleteView(AdminUserRequiredMixin, DeleteView): +# model = PermUserAsset +# template_name = 'assets/delete_confirm.html' +# success_url = 'assets:system-user-list' From 324bb68667711f29530d9026d52086d6aafad566 Mon Sep 17 00:00:00 2001 From: ibuler Date: Sun, 11 Sep 2016 16:59:19 +0800 Subject: [PATCH 30/50] user-pserm --- apps/jumpserver/urls.py | 1 + apps/perms/forms.py | 21 +++-- apps/perms/hands.py | 5 +- apps/perms/models.py | 2 +- .../perms/perm_user_asset_create_update.html | 80 +++++++++++++++++ .../templates/perms/perm_user_asset_list.html | 66 ++++++++++++++ .../perms/templates/perms/perm_user_list.html | 22 ++--- apps/perms/urls.py | 7 +- apps/perms/views.py | 85 ++++++++++--------- apps/templates/_nav.html | 2 +- apps/users/hands.py | 2 +- 11 files changed, 223 insertions(+), 70 deletions(-) create mode 100644 apps/perms/templates/perms/perm_user_asset_create_update.html create mode 100644 apps/perms/templates/perms/perm_user_asset_list.html diff --git a/apps/jumpserver/urls.py b/apps/jumpserver/urls.py index 0c1b83403..c93a30439 100644 --- a/apps/jumpserver/urls.py +++ b/apps/jumpserver/urls.py @@ -25,6 +25,7 @@ urlpatterns = [ url(r'^$', TemplateView.as_view(template_name='base.html'), name='index'), url(r'^(api/)?users/', include('users.urls')), url(r'^assets/', include('assets.urls')), + url(r'^perms/', include('perms.urls')), url(r'^terminal/', include('webterminal.urls')), ] diff --git a/apps/perms/forms.py b/apps/perms/forms.py index 83f9fe65b..36cf3ff8f 100644 --- a/apps/perms/forms.py +++ b/apps/perms/forms.py @@ -4,14 +4,23 @@ from __future__ import absolute_import, unicode_literals from django import forms from django.utils.translation import ugettext_lazy as _ -from users.models import User, UserGroup -from assets.models import Asset, AssetGroup, SystemUser -from .models import UserAssetPerm +from .hands import User, UserGroup, Asset, AssetGroup, SystemUser +from .models import PermUserAsset -class UserAssetPermForm(forms.ModelForm): +class PermUserAssetForm(forms.ModelForm): class Meta: - model = UserAssetPerm + model = PermUserAsset fields = [ - 'assets', 'asset_groups', 'system_users', 'date_expired', 'comment' + 'user', 'action', 'assets', 'asset_groups', 'system_users', 'date_expired', 'comment' ] + widgets = { + 'user': forms.HiddenInput(attrs={'style': 'display: none'}), + 'assets': forms.SelectMultiple(attrs={'class': 'select2', + 'data-placeholder': _('Select assets')}), + 'asset_groups': forms.SelectMultiple(attrs={'class': 'select2', + 'data-placeholder': _('Select asset groups')}), + 'system_users': forms.SelectMultiple(attrs={'class': 'select2', + 'data-placeholder': _('Select system users')}), + + } diff --git a/apps/perms/hands.py b/apps/perms/hands.py index e4d282927..2a0f5b43f 100644 --- a/apps/perms/hands.py +++ b/apps/perms/hands.py @@ -5,7 +5,8 @@ from django.db import models from django.utils.translation import ugettext_lazy as _ - - +from users.utils import AdminUserRequiredMixin +from users.models import User, UserGroup +from assets.models import Asset, AssetGroup, SystemUser diff --git a/apps/perms/models.py b/apps/perms/models.py index f9c4a0726..e1108ce2f 100644 --- a/apps/perms/models.py +++ b/apps/perms/models.py @@ -23,7 +23,7 @@ class PermUserAsset(models.Model): date_expired = models.DateTimeField(default=date_expired_default, verbose_name=_('Date expired')) created_by = models.CharField(max_length=128, blank=True) date_created = models.DateTimeField(auto_now=True) - comment = models.TextField(verbose_name=_('Comment')) + comment = models.TextField(verbose_name=_('Comment'), blank=True) def __unicode__(self): return '%(id)s: %(user)s %(action)s' % { diff --git a/apps/perms/templates/perms/perm_user_asset_create_update.html b/apps/perms/templates/perms/perm_user_asset_create_update.html new file mode 100644 index 000000000..298f95cb4 --- /dev/null +++ b/apps/perms/templates/perms/perm_user_asset_create_update.html @@ -0,0 +1,80 @@ +{% extends 'base.html' %} +{% load i18n %} +{% load static %} +{% load bootstrap %} +{% block custom_head_css_js %} + + + +{% endblock %} + +{% block content %} +
    +
    +
    +
    +
    +
    {% trans 'Create asset perm for ' %}{{ user.name }}
    + +
    +
    +
    + {% csrf_token %} + + {{ form.action|bootstrap_horizontal }} + {{ form.assets|bootstrap_horizontal }} + {{ form.asset_groups|bootstrap_horizontal }} + {{ form.system_users |bootstrap_horizontal }} + +
    + +
    +
    + + +
    + {{ form.date_expired.errors }} +
    +
    + {{ form.comment|bootstrap_horizontal }} + +
    +
    + + +
    +
    +
    +
    +
    +
    +
    +
    +{% endblock %} +{% block custom_foot_js %} + + +{% endblock %} \ No newline at end of file diff --git a/apps/perms/templates/perms/perm_user_asset_list.html b/apps/perms/templates/perms/perm_user_asset_list.html new file mode 100644 index 000000000..792716f0b --- /dev/null +++ b/apps/perms/templates/perms/perm_user_asset_list.html @@ -0,0 +1,66 @@ +{% extends '_list_base.html' %} +{% load i18n %} +{% load common_tags %} +{% block content_left_head %} + {% trans "Create perm " %} +{% endblock %} + +{% block table_head %} + + + + {% trans 'Name' %} + {% trans 'Username' %} + {% trans 'Role' %} + {% trans 'Asset num' %} + {% trans 'Asset group' %} + {% trans 'System user' %} + {% trans 'Active' %} + +{% endblock %} + +{% block table_body %} + {% for perm in page_obj %} + + + + + + + {{ user.name }} + + + {{ user.username }} + {{ user.get_role_display }} + 35/40 + 20 + 3 + + {% trans 'Create perm' %} + {% trans 'Flush' %} + + + {% endfor %} +{% endblock %} + +{% block content_bottom_left %} + +{% endblock %} + + diff --git a/apps/perms/templates/perms/perm_user_list.html b/apps/perms/templates/perms/perm_user_list.html index 8994ecce9..ac5e40871 100644 --- a/apps/perms/templates/perms/perm_user_list.html +++ b/apps/perms/templates/perms/perm_user_list.html @@ -2,6 +2,7 @@ {% load i18n %} {% load common_tags %} {% block content_left_head %} + {% trans "Batch create perm " %} {% endblock %} {% block table_head %} @@ -10,9 +11,8 @@ {% trans 'Name' %} {% trans 'Username' %} - {% trans 'User group' %} - {% trans 'Asset available' %} - {% trans 'Asset unavailable' %} + {% trans 'Role' %} + {% trans 'Asset num' %} {% trans 'Asset group' %} {% trans 'System user' %} {% trans 'Active' %} @@ -32,18 +32,12 @@ {{ user.username }} {{ user.get_role_display }} - {{ user.groups.all|join_queryset_attr:"name" }} - {{ user.name }} + 35/40 + 20 + 3 - {% if user.is_expired and user.is_active %} - - {% else %} - - {% endif %} - - - {% trans 'Update' %} - {% trans 'Delete' %} + {% trans 'Create perm' %} + {% trans 'Flush' %} {% endfor %} diff --git a/apps/perms/urls.py b/apps/perms/urls.py index e985480f2..4491b2dcf 100644 --- a/apps/perms/urls.py +++ b/apps/perms/urls.py @@ -7,9 +7,10 @@ app_name = 'perms' urlpatterns = [ # Resource asset url - url(r'^user$', views.PermUserAssetListView.as_view(), name='perm-user-list'), - # url(r'^user/(?P[0-9]+)/perm-asset/$', views.AssetListView.as_view(), name='perm-user-asset-list'), - # url(r'^user/(?P[0-9]+)/perm-asset/$', views.AssetListView.as_view(), name='perm-user-asset-list'), + url(r'^user$', views.PermUserListView.as_view(), name='perm-user-list'), + url(r'^user/(?P[0-9]+)/perm-asset/$', views.PermUserAssetListView.as_view(), name='perm-user-asset-list'), + url(r'^user/(?P[0-9]+)/perm-asset/create$', views.PermUserAssetCreateView.as_view(), + name='perm-user-asset-create'), # url(r'^user/(?P[0-9]+)$', views.AssetListView.as_view(), name='asset-list'), # url(r'^asset/create$', views.AssetCreateView.as_view(), name='asset-create'), # url(r'^asset/(?P[0-9]+)$', views.AssetDetailView.as_view(), name='asset-detail'), diff --git a/apps/perms/views.py b/apps/perms/views.py index 78d1a1a58..1932d899c 100644 --- a/apps/perms/views.py +++ b/apps/perms/views.py @@ -13,7 +13,7 @@ from django.views.generic.detail import DetailView, SingleObjectMixin from .hands import AdminUserRequiredMixin, User, UserGroup from .models import PermUserAsset, PermUserGroupAsset -from .forms import UserAssetPermForm +from .forms import PermUserAssetForm class PermUserListView(AdminUserRequiredMixin, ListView): @@ -35,7 +35,7 @@ class PermUserListView(AdminUserRequiredMixin, ListView): # Todo: Default order by lose asset connection num self.queryset = super(PermUserListView, self).get_queryset() self.keyword = keyword = self.request.GET.get('keyword', '') - self.sort = sort = self.request.GET.get('sort', '-date_created') + self.sort = sort = self.request.GET.get('sort', '-date_joined') if keyword: self.queryset = self.queryset.filter(Q(name__icontains=keyword) | @@ -46,58 +46,59 @@ class PermUserListView(AdminUserRequiredMixin, ListView): return self.queryset -class PermUserAssetListView(AdminUserRequiredMixin, ListView): - model = PermUserAsset +class PermUserAssetListView(AdminUserRequiredMixin, SingleObjectMixin, ListView): paginate_by = settings.CONFIG.DISPLAY_PER_PAGE - context_object_name = 'system_user_list' - template_name = 'assets/system_user_list.html' + context_object_name = 'perm_user_asset_list' + template_name = 'perms/perm_user_asset_list.html' + model = User + + def get(self, request, *args, **kwargs): + self.object = self.get_object(queryset=User.objects.all()) + return super(PermUserAssetListView, self).get(request, *args, **kwargs) def get_context_data(self, **kwargs): context = { 'app': _('Assets'), - 'action': _('System user list'), + 'action': _('User perm asset list'), 'keyword': self.request.GET.get('keyword', '') } kwargs.update(context) return super(PermUserAssetListView, self).get_context_data(**kwargs) def get_queryset(self): - # Todo: Default order by lose asset connection num - self.queryset = super(PermUserAssetListView, self).get_queryset() - self.keyword = keyword = self.request.GET.get('keyword', '') - self.sort = sort = self.request.GET.get('sort', '-date_created') - - if keyword: - self.queryset = self.queryset.filter(Q(name__icontains=keyword) | - Q(comment__icontains=keyword)) - - if sort: - self.queryset = self.queryset.order_by(sort) + self.queryset = self.object.permuserasset_set.all() return self.queryset -# -# -# class PermUserAssetCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateView): -# model = PermUserAsset -# form_class = PermUserAssetForm -# template_name = 'assets/system_user_create_update.html' -# success_url = reverse_lazy('assets:system-user-list') -# success_message = _('Create system user %s successfully.') -# -# def get_context_data(self, **kwargs): -# context = { -# 'app': _('Assets'), -# 'action': _('Create system user'), -# } -# kwargs.update(context) -# return super(PermUserAssetCreateView, self).get_context_data(**kwargs) -# -# def get_success_message(self, cleaned_data): -# return self.success_message % ( -# reverse_lazy('assets:system-user-detail', kwargs={'pk': self.object.pk}), -# self.object.name, -# ) -# -# + + +class PermUserAssetCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateView): + model = PermUserAsset + form_class = PermUserAssetForm + template_name = 'perms/perm_user_asset_create_update.html' + success_url = reverse_lazy('perms:perm-user-list') + success_message = _('Create user asset perm %s successfully.') + + def get_initial(self): + return {'user': self.get_object(queryset=User.objects.all())} + + def form_invalid(self, form): + print(form.errors) + return super(PermUserAssetCreateView, self).form_invalid(form) + + def get_context_data(self, **kwargs): + context = { + 'app': _('Perms'), + 'action': _('Create user asset perm'), + 'user': self.get_object(queryset=User.objects.all()), + } + kwargs.update(context) + return super(PermUserAssetCreateView, self).get_context_data(**kwargs) + + def get_success_message(self, cleaned_data): + return self.success_message % ( + reverse_lazy('perms:perm-user-asset-list', kwargs={'pk': self.object.user.id}) + ) + + # class PermUserAssetUpdateView(AdminUserRequiredMixin, UpdateView): # model = PermUserAsset # form_class = PermUserAssetForm diff --git a/apps/templates/_nav.html b/apps/templates/_nav.html index 9eee251ca..dbb2bf637 100644 --- a/apps/templates/_nav.html +++ b/apps/templates/_nav.html @@ -30,7 +30,7 @@ {% trans 'Perms' %} -
  • +
  • {% trans 'Perms' %}
  • diff --git a/apps/users/models.py b/apps/users/models.py index 80a5b51da..516c9dd20 100644 --- a/apps/users/models.py +++ b/apps/users/models.py @@ -32,7 +32,7 @@ class UserGroup(models.Model): return False class Meta: - db_table = 'user-group' + db_table = 'user_group' @classmethod def initial(cls): diff --git a/apps/users/views.py b/apps/users/views.py index cfa3dd6fc..a385b473c 100644 --- a/apps/users/views.py +++ b/apps/users/views.py @@ -84,7 +84,7 @@ class UserListView(AdminUserRequiredMixin, ListView): model = User paginate_by = settings.CONFIG.DISPLAY_PER_PAGE context_object_name = 'user_list' - template_name = 'users/user_list.html' + template_name = 'users/asset_permission_list.html' ordering = '-date_joined' def get_queryset(self): From 7b99a33a2f409fead7e62282279ad4c113212033 Mon Sep 17 00:00:00 2001 From: ibuler Date: Sun, 11 Sep 2016 23:20:14 +0800 Subject: [PATCH 33/50] permission update and delete finished --- ...ml => asset_permission_create_update.html} | 0 .../perms/asset_permission_list.html | 4 +- .../perms/templates/perms/delete_confirm.html | 15 +++ apps/perms/urls.py | 10 +- apps/perms/views.py | 97 ++++++++++--------- 5 files changed, 74 insertions(+), 52 deletions(-) rename apps/perms/templates/perms/{asset_permission_create.html => asset_permission_create_update.html} (100%) create mode 100644 apps/perms/templates/perms/delete_confirm.html diff --git a/apps/perms/templates/perms/asset_permission_create.html b/apps/perms/templates/perms/asset_permission_create_update.html similarity index 100% rename from apps/perms/templates/perms/asset_permission_create.html rename to apps/perms/templates/perms/asset_permission_create_update.html diff --git a/apps/perms/templates/perms/asset_permission_list.html b/apps/perms/templates/perms/asset_permission_list.html index 8d06f2e6f..c186d9dd8 100644 --- a/apps/perms/templates/perms/asset_permission_list.html +++ b/apps/perms/templates/perms/asset_permission_list.html @@ -43,8 +43,8 @@ {% endif %} - {% trans 'Update' %} - {% trans 'Delete' %} + {% trans 'Update' %} + {% trans 'Delete' %} {% endfor %} diff --git a/apps/perms/templates/perms/delete_confirm.html b/apps/perms/templates/perms/delete_confirm.html new file mode 100644 index 000000000..777d1dbf9 --- /dev/null +++ b/apps/perms/templates/perms/delete_confirm.html @@ -0,0 +1,15 @@ +{% load i18n %} + + + + + {% trans 'Confirm delete' %} + + + + {% csrf_token %} +

    Are you sure you want to delete "{{ object.name }}"?

    + + + + \ No newline at end of file diff --git a/apps/perms/urls.py b/apps/perms/urls.py index 78a14c267..794ee4884 100644 --- a/apps/perms/urls.py +++ b/apps/perms/urls.py @@ -6,7 +6,13 @@ import views app_name = 'perms' urlpatterns = [ - url(r'^asset-permission$', views.UserAssetPermissionListView.as_view(), name='asset-permission-list'), - url(r'^asset-permission/create$', views.UserAssetPermissionCreateView.as_view(), name='asset-permission-create'), + url(r'^asset-permission$', views.AssetPermissionListView.as_view(), name='asset-permission-list'), + url(r'^asset-permission/create$', views.AssetPermissionCreateView.as_view(), name='asset-permission-create'), + url(r'^asset-permission/(?P[0-9]+)/update$', views.AssetPermissionUpdateView.as_view(), + name='asset-permission-update'), + url(r'^asset-permission/(?P[0-9]+)$', views.AssetPermissionDetailView.as_view(), + name='asset-permission-detail'), + url(r'^asset-permission/(?P[0-9]+)/delete$', views.AssetPermissionDeleteView.as_view(), + name='asset-permission-delete'), ] diff --git a/apps/perms/views.py b/apps/perms/views.py index 2ec9a01f2..709eca7d9 100644 --- a/apps/perms/views.py +++ b/apps/perms/views.py @@ -16,7 +16,7 @@ from .models import AssetPermission from .forms import AssetPermissionForm -class UserAssetPermissionListView(AdminUserRequiredMixin, ListView): +class AssetPermissionListView(AdminUserRequiredMixin, ListView): model = AssetPermission paginate_by = settings.CONFIG.DISPLAY_PER_PAGE context_object_name = 'asset_permission_list' @@ -29,11 +29,11 @@ class UserAssetPermissionListView(AdminUserRequiredMixin, ListView): 'keyword': self.request.GET.get('keyword', '') } kwargs.update(context) - return super(UserAssetPermissionListView, self).get_context_data(**kwargs) + return super(AssetPermissionListView, self).get_context_data(**kwargs) def get_queryset(self): # Todo: Default order by lose asset connection num - self.queryset = super(UserAssetPermissionListView, self).get_queryset() + self.queryset = super(AssetPermissionListView, self).get_queryset() self.keyword = keyword = self.request.GET.get('keyword', '') self.sort = sort = self.request.GET.get('sort', '-date_created') @@ -53,12 +53,12 @@ class UserAssetPermissionListView(AdminUserRequiredMixin, ListView): return self.queryset -class UserAssetPermissionCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateView): +class AssetPermissionCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateView): model = AssetPermission form_class = AssetPermissionForm - template_name = 'perms/asset_permission_create.html' + template_name = 'perms/asset_permission_create_update.html' success_url = reverse_lazy('perms:asset-permission-list') - success_message = _('Create asset %s perm successfully.') + success_message = _('Create asset permission %s successfully.') def get_context_data(self, **kwargs): context = { @@ -66,48 +66,49 @@ class UserAssetPermissionCreateView(AdminUserRequiredMixin, SuccessMessageMixin, 'action': _('Create asset permission'), } kwargs.update(context) - return super(UserAssetPermissionCreateView, self).get_context_data(**kwargs) + return super(AssetPermissionCreateView, self).get_context_data(**kwargs) - # def get_success_message(self, cleaned_data): - # return self.success_message % ( - # reverse_lazy('perms:asset-permission-list', kwargs={'pk': self.object.pk}) - # ) + def get_success_message(self, cleaned_data): + return self.success_message % ( + reverse_lazy('perms:asset-permission-detail', kwargs={'pk': self.object.pk}), + self.object.name, + ) -# class PermUserAssetUpdateView(AdminUserRequiredMixin, UpdateView): -# model = PermUserAsset -# form_class = PermUserAssetForm -# template_name = 'assets/system_user_create_update.html' -# success_message = _('Update system user %s successfully.') -# -# def get_context_data(self, **kwargs): -# context = { -# 'app': _('Assets'), -# 'action': _('Update system user') -# } -# kwargs.update(context) -# return super(PermUserAssetUpdateView, self).get_context_data(**kwargs) -# -# def get_success_url(self): -# success_url = reverse_lazy('assets:system-user-detail', pk=self.object.pk) -# return success_url -# -# -# class PermUserAssetDetailView(AdminUserRequiredMixin, DetailView): -# template_name = 'assets/system_user_detail.html' -# context_object_name = 'system_user' -# model = PermUserAsset -# -# def get_context_data(self, **kwargs): -# context = { -# 'app': _('Assets'), -# 'action': _('System user detail') -# } -# kwargs.update(context) -# return super(PermUserAssetDetailView, self).get_context_data(**kwargs) -# -# -# class PermUserAssetDeleteView(AdminUserRequiredMixin, DeleteView): -# model = PermUserAsset -# template_name = 'assets/delete_confirm.html' -# success_url = 'assets:system-user-list' +class AssetPermissionUpdateView(AdminUserRequiredMixin, UpdateView): + model = AssetPermission + form_class = AssetPermissionForm + template_name = 'perms/asset_permission_create_update.html' + success_message = _('Update asset permission %s successfully.') + + def get_context_data(self, **kwargs): + context = { + 'app': _('Perms'), + 'action': _('Update asset permission') + } + kwargs.update(context) + return super(AssetPermissionUpdateView, self).get_context_data(**kwargs) + + def get_success_url(self): + success_url = reverse_lazy('perms:asset-permission-detail', kwargs={'pk': self.object.pk}) + return success_url + + +class AssetPermissionDetailView(AdminUserRequiredMixin, DetailView): + template_name = 'assets/system_user_detail.html' + context_object_name = 'system_user' + model = AssetPermission + + def get_context_data(self, **kwargs): + context = { + 'app': _('Assets'), + 'action': _('System user detail') + } + kwargs.update(context) + return super(AssetPermissionDetailView, self).get_context_data(**kwargs) + + +class AssetPermissionDeleteView(AdminUserRequiredMixin, DeleteView): + model = AssetPermission + template_name = 'perms/delete_confirm.html' + success_url = reverse_lazy('perms:asset-permission-list') From 12831a7d2117087914803f183827d6074f91cbae Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 12 Sep 2016 15:35:50 +0800 Subject: [PATCH 34/50] text --- apps/fixtures/init.json | 2 +- apps/fixtures/users.json | 2 +- apps/jumpserver/settings.py | 19 +++++++++++++++---- apps/users/templates/users/user_list.html | 2 +- apps/users/views.py | 1 - 5 files changed, 18 insertions(+), 8 deletions(-) diff --git a/apps/fixtures/init.json b/apps/fixtures/init.json index a9b504052..96cb0535a 100644 --- a/apps/fixtures/init.json +++ b/apps/fixtures/init.json @@ -1 +1 @@ -[{"model": "users.usergroup", "pk": 1, "fields": {"name": "Default", "comment": "Default user group for all user", "date_added": "2016-09-05T11:39:25.770Z", "created_by": "System"}}, {"model": "users.user", "pk": 1, "fields": {"password": "pbkdf2_sha256$30000$5ReHkQOQA2Hk$DIW0b5U/uK+U0xqjA3QpYvBcODNhm2MPCm7YWbQys3I=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:39:25.771Z", "username": "admin", "name": "Administrator", "email": "admin@jumpserver.org", "role": "Admin", "avatar": "", "wechat": "", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Administrator is the super user of system", "is_first_login": false, "date_expired": "2086-08-19T11:39:25.771Z", "created_by": "System", "user_permissions": [], "groups": [1]}}] \ No newline at end of file +[{"model": "users.usergroup", "pk": 1, "fields": {"name": "Default", "comment": "Default user group for all user", "date_created": "2016-09-05T11:39:25.770Z", "created_by": "System"}}, {"model": "users.user", "pk": 1, "fields": {"password": "pbkdf2_sha256$30000$5ReHkQOQA2Hk$DIW0b5U/uK+U0xqjA3QpYvBcODNhm2MPCm7YWbQys3I=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:39:25.771Z", "username": "admin", "name": "Administrator", "email": "admin@jumpserver.org", "role": "Admin", "avatar": "", "wechat": "", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Administrator is the super user of system", "is_first_login": false, "date_expired": "2086-08-19T11:39:25.771Z", "created_by": "System", "user_permissions": [], "groups": [1]}}] \ No newline at end of file diff --git a/apps/fixtures/users.json b/apps/fixtures/users.json index a9b504052..dc4c209f0 100644 --- a/apps/fixtures/users.json +++ b/apps/fixtures/users.json @@ -1 +1 @@ -[{"model": "users.usergroup", "pk": 1, "fields": {"name": "Default", "comment": "Default user group for all user", "date_added": "2016-09-05T11:39:25.770Z", "created_by": "System"}}, {"model": "users.user", "pk": 1, "fields": {"password": "pbkdf2_sha256$30000$5ReHkQOQA2Hk$DIW0b5U/uK+U0xqjA3QpYvBcODNhm2MPCm7YWbQys3I=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:39:25.771Z", "username": "admin", "name": "Administrator", "email": "admin@jumpserver.org", "role": "Admin", "avatar": "", "wechat": "", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Administrator is the super user of system", "is_first_login": false, "date_expired": "2086-08-19T11:39:25.771Z", "created_by": "System", "user_permissions": [], "groups": [1]}}] \ No newline at end of file +[{"model": "users.usergroup", "pk": 1, "fields": {"name": "Default", "comment": "Default user group for all user", "date_created": "2016-09-05T11:39:25.770Z", "created_by": "System"}}, {"model": "users.user", "pk": 1, "fields": {"password": "pbkdf2_sha256$30000$5ReHkQOQA2Hk$DIW0b5U/uK+U0xqjA3QpYvBcODNhm2MPCm7YWbQys3I=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:39:25.771Z", "username": "admin", "name": "Administrator", "email": "admin@jumpserver.org", "role": "Admin", "avatar": "", "wechat": "", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Administrator is the super user of system", "is_first_login": false, "date_expired": "2086-08-19T11:39:25.771Z", "created_by": "System", "user_permissions": [], "groups": [1]}}] \ No newline at end of file diff --git a/apps/jumpserver/settings.py b/apps/jumpserver/settings.py index 0e8487b2a..48055442f 100644 --- a/apps/jumpserver/settings.py +++ b/apps/jumpserver/settings.py @@ -280,9 +280,11 @@ WEBSOCKET_URL = '/ws/' # WebSocket Redis WS4REDIS_CONNECTION = { - 'host': CONFIG.REDIS_HOST or '127.0.0.1', - 'port': CONFIG.REDIS_PORT or 6379, - 'db': 2, + #'host': CONFIG.REDIS_HOST or '127.0.0.1', + # 'port': CONFIG.REDIS_PORT or 6379, + 'host': '192.168.1.190', + 'port': 6379, + 'db': 3, } # Set the number of seconds each message shall persisted @@ -296,14 +298,23 @@ SESSION_ENGINE = 'redis_sessions.session' SESSION_REDIS_PREFIX = 'session' + + +SESSION_REDIS_HOST = '192.168.1.190' +SESSION_REDIS_PORT = 6379 +SESSION_REDIS_DB = 0 +SESSION_REDIS_PASSWORD = '' + + # Custom User Auth model AUTH_USER_MODEL = 'users.User' # Celery using redis as broker +# BROKER_URL = 'redis://%(password)s%(host)s:%(port)s/3' % { BROKER_URL = 'redis://%(password)s%(host)s:%(port)s/3' % { 'password': CONFIG.REDIS_PASSWORD + ':' if CONFIG.REDIS_PASSWORD else '', 'host': CONFIG.REDIS_HOST or '127.0.0.1', - 'port': CONFIG.REDIS_PORT or 6379, + 'port': CONFIG.REDIS_PORT or 63790, } CELERY_RESULT_BACKEND = BROKER_URL diff --git a/apps/users/templates/users/user_list.html b/apps/users/templates/users/user_list.html index 74edf727c..d072faecc 100644 --- a/apps/users/templates/users/user_list.html +++ b/apps/users/templates/users/user_list.html @@ -19,7 +19,7 @@ {% endblock %} {% block table_body %} - {% for user in user_list %} + {% for user in object_list %} diff --git a/apps/users/views.py b/apps/users/views.py index adf998870..548852a95 100644 --- a/apps/users/views.py +++ b/apps/users/views.py @@ -82,7 +82,6 @@ class UserListView(AdminUserRequiredMixin, ListView): if keyword: self.queryset = self.queryset.filter(Q(username__icontains=keyword) | Q(name__icontains=keyword)) - if sort: self.queryset = self.queryset.order_by(sort) return self.queryset From 4c4f598552023c0d6c27a401724813dc37286890 Mon Sep 17 00:00:00 2001 From: ibuler Date: Tue, 13 Sep 2016 00:37:24 +0800 Subject: [PATCH 35/50] Finish asset permission detail and add user or user group list --- apps/perms/models.py | 8 +- .../perms/asset_permission_detail.html | 224 ++++++++++++++++++ .../perms/asset_permission_list.html | 24 +- .../perms/asset_permission_user_list.html | 186 +++++++++++++++ apps/perms/urls.py | 4 + apps/perms/views.py | 42 +++- 6 files changed, 467 insertions(+), 21 deletions(-) create mode 100644 apps/perms/templates/perms/asset_permission_detail.html create mode 100644 apps/perms/templates/perms/asset_permission_user_list.html diff --git a/apps/perms/models.py b/apps/perms/models.py index dbd1996ee..3a1cb53ce 100644 --- a/apps/perms/models.py +++ b/apps/perms/models.py @@ -22,10 +22,10 @@ class AssetPermission(models.Model): asset_groups = models.ManyToManyField(AssetGroup, related_name='granted_by_permissions', blank=True) system_users = models.ManyToManyField(SystemUser, related_name='granted_by_permissions') action = models.CharField(choices=ACTION_CHOICE, max_length=8, default='1') - is_active = models.BooleanField(default=True) + is_active = models.BooleanField(default=True, verbose_name=_('Active')) date_expired = models.DateTimeField(default=date_expired_default, verbose_name=_('Date expired')) - created_by = models.CharField(max_length=128, blank=True) - date_created = models.DateTimeField(auto_now=True) + created_by = models.CharField(max_length=128, blank=True, verbose_name=_('Created by')) + date_created = models.DateTimeField(auto_now=True, verbose_name=_('Date created')) comment = models.TextField(verbose_name=_('Comment'), blank=True) def __unicode__(self): @@ -33,7 +33,7 @@ class AssetPermission(models.Model): @property def is_valid(self): - if self.date_expired < timezone.now() and is_active: + if self.date_expired < timezone.now() and self.is_active: return True return True diff --git a/apps/perms/templates/perms/asset_permission_detail.html b/apps/perms/templates/perms/asset_permission_detail.html new file mode 100644 index 000000000..c8de5ec44 --- /dev/null +++ b/apps/perms/templates/perms/asset_permission_detail.html @@ -0,0 +1,224 @@ +{% extends 'base.html' %} +{% load common_tags %} +{% load users_tags %} +{% load static %} +{% load i18n %} + +{% block custom_head_css_js %} + + +{% endblock %} + +{% block content %} +
    +
    +
    +
    + +
    +
    +
    +
    + {{ asset_permission.name }} +
    + + + + + + + + + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {% trans 'Name' %}:{{ asset_permission.name }}
    {% trans 'User count' %}:{{ asset_permission.users.count }}
    {% trans 'User group count' %}:{{ asset_permission.users.count }}
    {% trans 'Asset count' %}:{{ asset_permission.assets.count }}
    {% trans 'Asset group count' %}:{{ asset_permission.asset_groups.count }}
    {% trans 'System user count' %}:{{ asset_permission.system_users.count }}
    {% trans 'Action' %}:{{ asset_permission.get_action_display }}
    {% trans 'Is active' %}:{{ asset_permission.is_active|yesno:'Yes, No, Unkown' }}
    {% trans 'Date expired' %}:{{ asset_permission.date_expired }}
    {% trans 'Date created' %}:{{ asset_permission.date_created }}
    {% trans 'Created by' %}:{{ asset_permission.created_by }}
    {% trans 'Comment' %}:{{ asset_permission.comment }}
    +
    +
    +
    + +
    +
    +
    + {% trans 'Quick update' %} +
    +
    + + + + + + + + + + + + + + + + +
    Active: +
    +
    + + +
    +
    +
    {% trans 'Retest asset connectivity' %}: + + + +
    {% trans 'Repush system user' %}: + + + +
    +
    +
    + +
    +
    + {% trans 'System user' %} +
    +
    + + + + + + + + + + + + {% for system_user in system_users %} + + + + + {% endfor %} + +
    + +
    + +
    {{ system_user.name }} + +
    +
    +
    +
    +
    +
    +
    +
    +
    + +{% endblock %} +{% block custom_foot_js %} + +{% endblock %} \ No newline at end of file diff --git a/apps/perms/templates/perms/asset_permission_list.html b/apps/perms/templates/perms/asset_permission_list.html index c186d9dd8..d6e30a35b 100644 --- a/apps/perms/templates/perms/asset_permission_list.html +++ b/apps/perms/templates/perms/asset_permission_list.html @@ -20,31 +20,31 @@ {% endblock %} {% block table_body %} - {% for permission in asset_permission_list %} + {% for asset_permission in asset_permission_list %} - + - - {{ permission.name }} + + {{ asset_permission.name }} - {{ permission.users.count}} - {{ permission.user_groups.count}} - {{ permission.assets.count }} - {{ permission.asset_groups.count }} - {{ permission.system_users.count }} + {{ asset_permission.users.count}} + {{ asset_permission.user_groups.count}} + {{ asset_permission.assets.count }} + {{ asset_permission.asset_groups.count }} + {{ asset_permission.system_users.count }} - {% if permission.is_valid %} + {% if asset_permission.is_valid %} {% else %} {% endif %} - {% trans 'Update' %} - {% trans 'Delete' %} + {% trans 'Update' %} + {% trans 'Delete' %} {% endfor %} diff --git a/apps/perms/templates/perms/asset_permission_user_list.html b/apps/perms/templates/perms/asset_permission_user_list.html new file mode 100644 index 000000000..ec138c401 --- /dev/null +++ b/apps/perms/templates/perms/asset_permission_user_list.html @@ -0,0 +1,186 @@ +{% extends 'base.html' %} +{% load common_tags %} +{% load users_tags %} +{% load static %} +{% load i18n %} + +{% block custom_head_css_js %} + + +{% endblock %} +{% block content %} +
    +
    +
    +
    + +
    +
    +
    +
    + {% trans 'User list of ' %} {{ asset_permission.name }} +
    + + + + + + + + + + +
    +
    +
    + + + + + + + + + + + {% for user in page_obj %} + + + + + + + + {% endfor %} + +
    {% trans 'Name' %}{% trans 'Username' %}{% trans 'Email' %}{% trans 'Active' %}
    {{ user.name }}{{ user.username }}{{ user.email }} + {% if user.is_expired and user.is_active %} + + {% else %} + + {% endif %} +
    +
    + {% include '_pagination.html' %} +
    +
    +
    +
    +
    +
    +
    + {% trans 'Add user to asset permission' %} +
    +
    + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    + {% trans 'Add user group to asset permission' %} +
    +
    + + + + + + + + + + + + {% for user_group in user_groups %} + + + + + {% endfor %} + +
    + +
    + +
    {{ user_group.name }} + +
    +
    +
    +
    +
    +
    +
    +
    +
    + +{% endblock %} +{% block custom_foot_js %} + +{% endblock %} \ No newline at end of file diff --git a/apps/perms/urls.py b/apps/perms/urls.py index 794ee4884..2749ff36c 100644 --- a/apps/perms/urls.py +++ b/apps/perms/urls.py @@ -14,5 +14,9 @@ urlpatterns = [ name='asset-permission-detail'), url(r'^asset-permission/(?P[0-9]+)/delete$', views.AssetPermissionDeleteView.as_view(), name='asset-permission-delete'), + url(r'^asset-permission/(?P[0-9]+)/user$', views.AssetPermissionUserListView.as_view(), + name='asset-permission-user-list'), + url(r'^asset-permission/(?P[0-9]+)/asset$', views.AssetPermissionAssetListView.as_view(), + name='asset-permission-asset-list'), ] diff --git a/apps/perms/views.py b/apps/perms/views.py index 709eca7d9..37ecca9d7 100644 --- a/apps/perms/views.py +++ b/apps/perms/views.py @@ -11,7 +11,7 @@ from django.urls import reverse_lazy from django.contrib.messages.views import SuccessMessageMixin from django.views.generic.detail import DetailView, SingleObjectMixin -from .hands import AdminUserRequiredMixin, User, UserGroup +from .hands import AdminUserRequiredMixin, User, UserGroup, SystemUser from .models import AssetPermission from .forms import AssetPermissionForm @@ -95,14 +95,17 @@ class AssetPermissionUpdateView(AdminUserRequiredMixin, UpdateView): class AssetPermissionDetailView(AdminUserRequiredMixin, DetailView): - template_name = 'assets/system_user_detail.html' - context_object_name = 'system_user' + template_name = 'perms/asset_permission_detail.html' + context_object_name = 'asset_permission' model = AssetPermission def get_context_data(self, **kwargs): context = { - 'app': _('Assets'), - 'action': _('System user detail') + 'app': _('Perms'), + 'action': _('Asset permission detail'), + 'system_users_remain': [system_user for system_user in SystemUser.objects.all() + if system_user not in self.object.system_users.all()], + 'system_users': self.object.system_users.all(), } kwargs.update(context) return super(AssetPermissionDetailView, self).get_context_data(**kwargs) @@ -112,3 +115,32 @@ class AssetPermissionDeleteView(AdminUserRequiredMixin, DeleteView): model = AssetPermission template_name = 'perms/delete_confirm.html' success_url = reverse_lazy('perms:asset-permission-list') + + +class AssetPermissionUserListView(AdminUserRequiredMixin, SingleObjectMixin, ListView): + template_name = 'perms/asset_permission_user_list.html' + context_object_name = 'asset_permission' + paginate_by = settings.CONFIG.DISPLAY_PER_PAGE + + def get(self, request, *args, **kwargs): + self.object = self.get_object(queryset=AssetPermission.objects.all()) + return super(AssetPermissionUserListView, self).get(request, *args, **kwargs) + + def get_queryset(self): + return self.object.users.all() + + def get_context_data(self, **kwargs): + context = { + 'app': _('Perms'), + 'action': _('Asset permission user list'), + 'users_remain': [user for user in User.objects.all() if user not in self.get_queryset()], + 'user_groups': self.object.user_groups.all(), + 'user_groups_remain': [user_group for user_group in UserGroup.objects.all() + if user_group not in self.object.user_groups.all()] + } + kwargs.update(context) + return super(AssetPermissionUserListView, self).get_context_data(**kwargs) + + +class AssetPermissionAssetListView(AdminUserRequiredMixin, ListView): + pass From 00502ce33ddba29ee20affec017aec9e4c24cf12 Mon Sep 17 00:00:00 2001 From: xiaoyu <763691951@qq.com> Date: Tue, 13 Sep 2016 16:38:43 +0800 Subject: [PATCH 36/50] trivial js style changes; bugfix for patch method --- apps/users/templates/users/user_detail.html | 31 ++++++++++----------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/apps/users/templates/users/user_detail.html b/apps/users/templates/users/user_detail.html index ae61ddf9a..41cdde6e5 100644 --- a/apps/users/templates/users/user_detail.html +++ b/apps/users/templates/users/user_detail.html @@ -22,7 +22,7 @@
    -
    +
    {{ user_object.name }} @@ -108,7 +108,7 @@
    - {% trans 'Quick update' %} + {% trans 'Quick modify' %}
    @@ -191,7 +191,7 @@ {% endfor %} @@ -205,12 +205,10 @@ - - {% endblock %} {% block custom_foot_js %} {% endblock %} From 6751c5a63a7f55a76917a86e6c878a37dd1c4238 Mon Sep 17 00:00:00 2001 From: "xiaokong1937@gmail.com" <763691951@qq.com> Date: Tue, 13 Sep 2016 21:45:10 +0800 Subject: [PATCH 37/50] reset user password and ssh pk implement --- .../css/plugins/sweetalert/sweetalert.css | 715 ++++++++++++++++++ apps/static/js/jumpserver.js | 38 +- .../js/plugins/sweetalert/sweetalert.min.js | 1 + apps/templates/_modal.html | 20 + apps/users/api.py | 23 + apps/users/serializers.py | 16 + .../templates/users/_user_reset_pk_modal.html | 8 + apps/users/templates/users/user_detail.html | 87 ++- apps/users/urls.py | 2 + apps/users/utils.py | 3 + 10 files changed, 876 insertions(+), 37 deletions(-) create mode 100644 apps/static/css/plugins/sweetalert/sweetalert.css create mode 100644 apps/static/js/plugins/sweetalert/sweetalert.min.js create mode 100644 apps/templates/_modal.html create mode 100644 apps/users/templates/users/_user_reset_pk_modal.html diff --git a/apps/static/css/plugins/sweetalert/sweetalert.css b/apps/static/css/plugins/sweetalert/sweetalert.css new file mode 100644 index 000000000..4469aea6b --- /dev/null +++ b/apps/static/css/plugins/sweetalert/sweetalert.css @@ -0,0 +1,715 @@ +body.stop-scrolling { + height: 100%; + overflow: hidden; } + +.sweet-overlay { + background-color: black; + /* IE8 */ + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"; + /* IE8 */ + background-color: rgba(0, 0, 0, 0.4); + position: fixed; + left: 0; + right: 0; + top: 0; + bottom: 0; + display: none; + z-index: 10000; } + +.sweet-alert { + background-color: white; + font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; + width: 478px; + padding: 17px; + border-radius: 5px; + text-align: center; + position: fixed; + left: 50%; + top: 50%; + margin-left: -256px; + margin-top: -200px; + overflow: hidden; + display: none; + z-index: 99999; } + @media all and (max-width: 540px) { + .sweet-alert { + width: auto; + margin-left: 0; + margin-right: 0; + left: 15px; + right: 15px; } } + .sweet-alert h2 { + color: #575757; + font-size: 30px; + text-align: center; + font-weight: 600; + text-transform: none; + position: relative; + margin: 25px 0; + padding: 0; + line-height: 40px; + display: block; } + .sweet-alert p { + color: #797979; + font-size: 16px; + text-align: center; + font-weight: 300; + position: relative; + text-align: inherit; + float: none; + margin: 0; + padding: 0; + line-height: normal; } + .sweet-alert fieldset { + border: none; + position: relative; } + .sweet-alert .sa-error-container { + background-color: #f1f1f1; + margin-left: -17px; + margin-right: -17px; + overflow: hidden; + padding: 0 10px; + max-height: 0; + webkit-transition: padding 0.15s, max-height 0.15s; + transition: padding 0.15s, max-height 0.15s; } + .sweet-alert .sa-error-container.show { + padding: 10px 0; + max-height: 100px; + webkit-transition: padding 0.2s, max-height 0.2s; + transition: padding 0.25s, max-height 0.25s; } + .sweet-alert .sa-error-container .icon { + display: inline-block; + width: 24px; + height: 24px; + border-radius: 50%; + background-color: #ea7d7d; + color: white; + line-height: 24px; + text-align: center; + margin-right: 3px; } + .sweet-alert .sa-error-container p { + display: inline-block; } + .sweet-alert .sa-input-error { + position: absolute; + top: 29px; + right: 26px; + width: 20px; + height: 20px; + opacity: 0; + -webkit-transform: scale(0.5); + transform: scale(0.5); + -webkit-transform-origin: 50% 50%; + transform-origin: 50% 50%; + -webkit-transition: all 0.1s; + transition: all 0.1s; } + .sweet-alert .sa-input-error::before, .sweet-alert .sa-input-error::after { + content: ""; + width: 20px; + height: 6px; + background-color: #f06e57; + border-radius: 3px; + position: absolute; + top: 50%; + margin-top: -4px; + left: 50%; + margin-left: -9px; } + .sweet-alert .sa-input-error::before { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); } + .sweet-alert .sa-input-error::after { + -webkit-transform: rotate(45deg); + transform: rotate(45deg); } + .sweet-alert .sa-input-error.show { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); } + .sweet-alert input { + width: 100%; + box-sizing: border-box; + border-radius: 3px; + border: 1px solid #d7d7d7; + height: 43px; + margin-top: 10px; + margin-bottom: 17px; + font-size: 18px; + box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.06); + padding: 0 12px; + display: none; + -webkit-transition: all 0.3s; + transition: all 0.3s; } + .sweet-alert input:focus { + outline: none; + box-shadow: 0px 0px 3px #c4e6f5; + border: 1px solid #b4dbed; } + .sweet-alert input:focus::-moz-placeholder { + transition: opacity 0.3s 0.03s ease; + opacity: 0.5; } + .sweet-alert input:focus:-ms-input-placeholder { + transition: opacity 0.3s 0.03s ease; + opacity: 0.5; } + .sweet-alert input:focus::-webkit-input-placeholder { + transition: opacity 0.3s 0.03s ease; + opacity: 0.5; } + .sweet-alert input::-moz-placeholder { + color: #bdbdbd; } + .sweet-alert input:-ms-input-placeholder { + color: #bdbdbd; } + .sweet-alert input::-webkit-input-placeholder { + color: #bdbdbd; } + .sweet-alert.show-input input { + display: block; } + .sweet-alert button { + background-color: #AEDEF4; + color: white; + border: none; + box-shadow: none; + font-size: 17px; + font-weight: 500; + -webkit-border-radius: 4px; + border-radius: 5px; + padding: 10px 32px; + margin: 26px 5px 0 5px; + cursor: pointer; } + .sweet-alert button:focus { + outline: none; + box-shadow: 0 0 2px rgba(128, 179, 235, 0.5), inset 0 0 0 1px rgba(0, 0, 0, 0.05); } + .sweet-alert button:hover { + background-color: #a1d9f2; } + .sweet-alert button:active { + background-color: #81ccee; } + .sweet-alert button.cancel { + background-color: #D0D0D0; } + .sweet-alert button.cancel:hover { + background-color: #c8c8c8; } + .sweet-alert button.cancel:active { + background-color: #b6b6b6; } + .sweet-alert button.cancel:focus { + box-shadow: rgba(197, 205, 211, 0.8) 0px 0px 2px, rgba(0, 0, 0, 0.0470588) 0px 0px 0px 1px inset !important; } + .sweet-alert button::-moz-focus-inner { + border: 0; } + .sweet-alert[data-has-cancel-button=false] button { + box-shadow: none !important; } + .sweet-alert[data-has-confirm-button=false][data-has-cancel-button=false] { + padding-bottom: 40px; } + .sweet-alert .sa-icon { + width: 80px; + height: 80px; + border: 4px solid gray; + -webkit-border-radius: 40px; + border-radius: 40px; + border-radius: 50%; + margin: 20px auto; + padding: 0; + position: relative; + box-sizing: content-box; } + .sweet-alert .sa-icon.sa-error { + border-color: #F27474; } + .sweet-alert .sa-icon.sa-error .sa-x-mark { + position: relative; + display: block; } + .sweet-alert .sa-icon.sa-error .sa-line { + position: absolute; + height: 5px; + width: 47px; + background-color: #F27474; + display: block; + top: 37px; + border-radius: 2px; } + .sweet-alert .sa-icon.sa-error .sa-line.sa-left { + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + left: 17px; } + .sweet-alert .sa-icon.sa-error .sa-line.sa-right { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + right: 16px; } + .sweet-alert .sa-icon.sa-warning { + border-color: #F8BB86; } + .sweet-alert .sa-icon.sa-warning .sa-body { + position: absolute; + width: 5px; + height: 47px; + left: 50%; + top: 10px; + -webkit-border-radius: 2px; + border-radius: 2px; + margin-left: -2px; + background-color: #F8BB86; } + .sweet-alert .sa-icon.sa-warning .sa-dot { + position: absolute; + width: 7px; + height: 7px; + -webkit-border-radius: 50%; + border-radius: 50%; + margin-left: -3px; + left: 50%; + bottom: 10px; + background-color: #F8BB86; } + .sweet-alert .sa-icon.sa-info { + border-color: #C9DAE1; } + .sweet-alert .sa-icon.sa-info::before { + content: ""; + position: absolute; + width: 5px; + height: 29px; + left: 50%; + bottom: 17px; + border-radius: 2px; + margin-left: -2px; + background-color: #C9DAE1; } + .sweet-alert .sa-icon.sa-info::after { + content: ""; + position: absolute; + width: 7px; + height: 7px; + border-radius: 50%; + margin-left: -3px; + top: 19px; + background-color: #C9DAE1; } + .sweet-alert .sa-icon.sa-success { + border-color: #A5DC86; } + .sweet-alert .sa-icon.sa-success::before, .sweet-alert .sa-icon.sa-success::after { + content: ''; + -webkit-border-radius: 40px; + border-radius: 40px; + border-radius: 50%; + position: absolute; + width: 60px; + height: 120px; + background: white; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); } + .sweet-alert .sa-icon.sa-success::before { + -webkit-border-radius: 120px 0 0 120px; + border-radius: 120px 0 0 120px; + top: -7px; + left: -33px; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + -webkit-transform-origin: 60px 60px; + transform-origin: 60px 60px; } + .sweet-alert .sa-icon.sa-success::after { + -webkit-border-radius: 0 120px 120px 0; + border-radius: 0 120px 120px 0; + top: -11px; + left: 30px; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + -webkit-transform-origin: 0px 60px; + transform-origin: 0px 60px; } + .sweet-alert .sa-icon.sa-success .sa-placeholder { + width: 80px; + height: 80px; + border: 4px solid rgba(165, 220, 134, 0.2); + -webkit-border-radius: 40px; + border-radius: 40px; + border-radius: 50%; + box-sizing: content-box; + position: absolute; + left: -4px; + top: -4px; + z-index: 2; } + .sweet-alert .sa-icon.sa-success .sa-fix { + width: 5px; + height: 90px; + background-color: white; + position: absolute; + left: 28px; + top: 8px; + z-index: 1; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); } + .sweet-alert .sa-icon.sa-success .sa-line { + height: 5px; + background-color: #A5DC86; + display: block; + border-radius: 2px; + position: absolute; + z-index: 2; } + .sweet-alert .sa-icon.sa-success .sa-line.sa-tip { + width: 25px; + left: 14px; + top: 46px; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); } + .sweet-alert .sa-icon.sa-success .sa-line.sa-long { + width: 47px; + right: 8px; + top: 38px; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); } + .sweet-alert .sa-icon.sa-custom { + background-size: contain; + border-radius: 0; + border: none; + background-position: center center; + background-repeat: no-repeat; } + +/* + * Animations + */ +@-webkit-keyframes showSweetAlert { + 0% { + transform: scale(0.7); + -webkit-transform: scale(0.7); } + 45% { + transform: scale(1.05); + -webkit-transform: scale(1.05); } + 80% { + transform: scale(0.95); + -webkit-transform: scale(0.95); } + 100% { + transform: scale(1); + -webkit-transform: scale(1); } } + +@keyframes showSweetAlert { + 0% { + transform: scale(0.7); + -webkit-transform: scale(0.7); } + 45% { + transform: scale(1.05); + -webkit-transform: scale(1.05); } + 80% { + transform: scale(0.95); + -webkit-transform: scale(0.95); } + 100% { + transform: scale(1); + -webkit-transform: scale(1); } } + +@-webkit-keyframes hideSweetAlert { + 0% { + transform: scale(1); + -webkit-transform: scale(1); } + 100% { + transform: scale(0.5); + -webkit-transform: scale(0.5); } } + +@keyframes hideSweetAlert { + 0% { + transform: scale(1); + -webkit-transform: scale(1); } + 100% { + transform: scale(0.5); + -webkit-transform: scale(0.5); } } + +@-webkit-keyframes slideFromTop { + 0% { + top: 0%; } + 100% { + top: 50%; } } + +@keyframes slideFromTop { + 0% { + top: 0%; } + 100% { + top: 50%; } } + +@-webkit-keyframes slideToTop { + 0% { + top: 50%; } + 100% { + top: 0%; } } + +@keyframes slideToTop { + 0% { + top: 50%; } + 100% { + top: 0%; } } + +@-webkit-keyframes slideFromBottom { + 0% { + top: 70%; } + 100% { + top: 50%; } } + +@keyframes slideFromBottom { + 0% { + top: 70%; } + 100% { + top: 50%; } } + +@-webkit-keyframes slideToBottom { + 0% { + top: 50%; } + 100% { + top: 70%; } } + +@keyframes slideToBottom { + 0% { + top: 50%; } + 100% { + top: 70%; } } + +.showSweetAlert[data-animation=pop] { + -webkit-animation: showSweetAlert 0.3s; + animation: showSweetAlert 0.3s; } + +.showSweetAlert[data-animation=none] { + -webkit-animation: none; + animation: none; } + +.showSweetAlert[data-animation=slide-from-top] { + -webkit-animation: slideFromTop 0.3s; + animation: slideFromTop 0.3s; } + +.showSweetAlert[data-animation=slide-from-bottom] { + -webkit-animation: slideFromBottom 0.3s; + animation: slideFromBottom 0.3s; } + +.hideSweetAlert[data-animation=pop] { + -webkit-animation: hideSweetAlert 0.2s; + animation: hideSweetAlert 0.2s; } + +.hideSweetAlert[data-animation=none] { + -webkit-animation: none; + animation: none; } + +.hideSweetAlert[data-animation=slide-from-top] { + -webkit-animation: slideToTop 0.4s; + animation: slideToTop 0.4s; } + +.hideSweetAlert[data-animation=slide-from-bottom] { + -webkit-animation: slideToBottom 0.3s; + animation: slideToBottom 0.3s; } + +@-webkit-keyframes animateSuccessTip { + 0% { + width: 0; + left: 1px; + top: 19px; } + 54% { + width: 0; + left: 1px; + top: 19px; } + 70% { + width: 50px; + left: -8px; + top: 37px; } + 84% { + width: 17px; + left: 21px; + top: 48px; } + 100% { + width: 25px; + left: 14px; + top: 45px; } } + +@keyframes animateSuccessTip { + 0% { + width: 0; + left: 1px; + top: 19px; } + 54% { + width: 0; + left: 1px; + top: 19px; } + 70% { + width: 50px; + left: -8px; + top: 37px; } + 84% { + width: 17px; + left: 21px; + top: 48px; } + 100% { + width: 25px; + left: 14px; + top: 45px; } } + +@-webkit-keyframes animateSuccessLong { + 0% { + width: 0; + right: 46px; + top: 54px; } + 65% { + width: 0; + right: 46px; + top: 54px; } + 84% { + width: 55px; + right: 0px; + top: 35px; } + 100% { + width: 47px; + right: 8px; + top: 38px; } } + +@keyframes animateSuccessLong { + 0% { + width: 0; + right: 46px; + top: 54px; } + 65% { + width: 0; + right: 46px; + top: 54px; } + 84% { + width: 55px; + right: 0px; + top: 35px; } + 100% { + width: 47px; + right: 8px; + top: 38px; } } + +@-webkit-keyframes rotatePlaceholder { + 0% { + transform: rotate(-45deg); + -webkit-transform: rotate(-45deg); } + 5% { + transform: rotate(-45deg); + -webkit-transform: rotate(-45deg); } + 12% { + transform: rotate(-405deg); + -webkit-transform: rotate(-405deg); } + 100% { + transform: rotate(-405deg); + -webkit-transform: rotate(-405deg); } } + +@keyframes rotatePlaceholder { + 0% { + transform: rotate(-45deg); + -webkit-transform: rotate(-45deg); } + 5% { + transform: rotate(-45deg); + -webkit-transform: rotate(-45deg); } + 12% { + transform: rotate(-405deg); + -webkit-transform: rotate(-405deg); } + 100% { + transform: rotate(-405deg); + -webkit-transform: rotate(-405deg); } } + +.animateSuccessTip { + -webkit-animation: animateSuccessTip 0.75s; + animation: animateSuccessTip 0.75s; } + +.animateSuccessLong { + -webkit-animation: animateSuccessLong 0.75s; + animation: animateSuccessLong 0.75s; } + +.sa-icon.sa-success.animate::after { + -webkit-animation: rotatePlaceholder 4.25s ease-in; + animation: rotatePlaceholder 4.25s ease-in; } + +@-webkit-keyframes animateErrorIcon { + 0% { + transform: rotateX(100deg); + -webkit-transform: rotateX(100deg); + opacity: 0; } + 100% { + transform: rotateX(0deg); + -webkit-transform: rotateX(0deg); + opacity: 1; } } + +@keyframes animateErrorIcon { + 0% { + transform: rotateX(100deg); + -webkit-transform: rotateX(100deg); + opacity: 0; } + 100% { + transform: rotateX(0deg); + -webkit-transform: rotateX(0deg); + opacity: 1; } } + +.animateErrorIcon { + -webkit-animation: animateErrorIcon 0.5s; + animation: animateErrorIcon 0.5s; } + +@-webkit-keyframes animateXMark { + 0% { + transform: scale(0.4); + -webkit-transform: scale(0.4); + margin-top: 26px; + opacity: 0; } + 50% { + transform: scale(0.4); + -webkit-transform: scale(0.4); + margin-top: 26px; + opacity: 0; } + 80% { + transform: scale(1.15); + -webkit-transform: scale(1.15); + margin-top: -6px; } + 100% { + transform: scale(1); + -webkit-transform: scale(1); + margin-top: 0; + opacity: 1; } } + +@keyframes animateXMark { + 0% { + transform: scale(0.4); + -webkit-transform: scale(0.4); + margin-top: 26px; + opacity: 0; } + 50% { + transform: scale(0.4); + -webkit-transform: scale(0.4); + margin-top: 26px; + opacity: 0; } + 80% { + transform: scale(1.15); + -webkit-transform: scale(1.15); + margin-top: -6px; } + 100% { + transform: scale(1); + -webkit-transform: scale(1); + margin-top: 0; + opacity: 1; } } + +.animateXMark { + -webkit-animation: animateXMark 0.5s; + animation: animateXMark 0.5s; } + +@-webkit-keyframes pulseWarning { + 0% { + border-color: #F8D486; } + 100% { + border-color: #F8BB86; } } + +@keyframes pulseWarning { + 0% { + border-color: #F8D486; } + 100% { + border-color: #F8BB86; } } + +.pulseWarning { + -webkit-animation: pulseWarning 0.75s infinite alternate; + animation: pulseWarning 0.75s infinite alternate; } + +@-webkit-keyframes pulseWarningIns { + 0% { + background-color: #F8D486; } + 100% { + background-color: #F8BB86; } } + +@keyframes pulseWarningIns { + 0% { + background-color: #F8D486; } + 100% { + background-color: #F8BB86; } } + +.pulseWarningIns { + -webkit-animation: pulseWarningIns 0.75s infinite alternate; + animation: pulseWarningIns 0.75s infinite alternate; } + +/* Internet Explorer 9 has some special quirks that are fixed here */ +/* The icons are not animated. */ +/* This file is automatically merged into sweet-alert.min.js through Gulp */ +/* Error icon */ +.sweet-alert .sa-icon.sa-error .sa-line.sa-left { + -ms-transform: rotate(45deg) \9; } + +.sweet-alert .sa-icon.sa-error .sa-line.sa-right { + -ms-transform: rotate(-45deg) \9; } + +/* Success icon */ +.sweet-alert .sa-icon.sa-success { + border-color: transparent\9; } + +.sweet-alert .sa-icon.sa-success .sa-line.sa-tip { + -ms-transform: rotate(45deg) \9; } + +.sweet-alert .sa-icon.sa-success .sa-line.sa-long { + -ms-transform: rotate(-45deg) \9; } diff --git a/apps/static/js/jumpserver.js b/apps/static/js/jumpserver.js index 5b7452b6b..20e62736f 100644 --- a/apps/static/js/jumpserver.js +++ b/apps/static/js/jumpserver.js @@ -4,10 +4,10 @@ var checked=false; function check_all(form) { var checkboxes = document.getElementById(form); - if (checked == false) { - checked = true + if (checked === false) { + checked = true; } else { - checked = false + checked = false; } for (var i = 0; i < checkboxes.elements.length; i++) { if (checkboxes.elements[i].type == "checkbox") { @@ -51,13 +51,13 @@ function GetRowData(row){ //此函数用于在多选提交时至少要选择一行 function GetTableDataBox() { var tabProduct = document.getElementById("editable"); - var tableData = new Array(); - var returnData = new Array(); + var tableData = []; + var returnData = []; var checkboxes = document.getElementById("contents_form"); - var id_list = new Array(); + var id_list = []; len = checkboxes.elements.length; for (var i=0; i < len; i++) { - if (checkboxes.elements[i].type == "checkbox" && checkboxes.elements[i].checked == true && checkboxes.elements[i].value != "checkall") { + if (checkboxes.elements[i].type == "checkbox" && checkboxes.elements[i].checked === true && checkboxes.elements[i].value != "checkall") { id_list.push(i); } } @@ -67,7 +67,7 @@ function GetTableDataBox() { tableData.push(GetRowData(tabProduct.rows[id_list[i]])); } - if (id_list.length == 0){ + if (id_list.length === 0){ alert('请至少选择一行!'); } returnData.push(tableData); @@ -77,7 +77,7 @@ function GetTableDataBox() { function move(from, to, from_o, to_o) { $("#" + from + " option").each(function () { - if ($(this).prop("selected") == true) { + if ($(this).prop("selected") === true) { $("#" + to).append(this); if( typeof from_o !== 'undefined'){ $("#"+to_o).append($("#"+from_o +" option[value='"+this.value+"']")); @@ -88,7 +88,7 @@ function move(from, to, from_o, to_o) { function move_left(from, to, from_o, to_o) { $("#" + from + " option").each(function () { - if ($(this).prop("selected") == true) { + if ($(this).prop("selected") === true) { $("#" + to).append(this); if( typeof from_o !== 'undefined'){ $("#"+to_o).append($("#"+from_o +" option[value='"+this.value+"']")); @@ -126,8 +126,8 @@ function move_left(from, to, from_o, to_o) { function selectAll(){ // 选择该页面所有option $('option').each(function(){ - $(this).attr('selected', true) - }) + $(this).attr('selected', true); + }); } @@ -156,6 +156,8 @@ function getIDall() { function APIUpdateAttr(props) { // props = {url: .., body: , success: , error: , method: ,} props = props || {}; + success_message = props.success_message || 'Update Successfully!'; + fail_message = props.fail_message || 'Error occurred while updating.'; $.ajax({ url: props.url, type: props.method || "PATCH", @@ -164,18 +166,18 @@ function APIUpdateAttr(props) { dataType: props.data_type || "json", }).done(function(data, textStatue, jqXHR) { if (typeof props.success === 'function') { - return props.success(data) + return props.success(data); } else { - toastr.success('Update Success!') + toastr.success(success_message); } }).fail(function(jqXHR, textStatue, errorThrown) { if (typeof props.error === 'function') { - return props.error(errorThrown) + return props.error(errorThrown); } else { - toastr.error('Error occurred while updating.') + toastr.error(fail_message); } - }) + }); return true; } -var jumpserver = new Object(); +var jumpserver = {}; diff --git a/apps/static/js/plugins/sweetalert/sweetalert.min.js b/apps/static/js/plugins/sweetalert/sweetalert.min.js new file mode 100644 index 000000000..3e4e7ff4c --- /dev/null +++ b/apps/static/js/plugins/sweetalert/sweetalert.min.js @@ -0,0 +1 @@ +!function(e,t,n){"use strict";!function o(e,t,n){function a(s,l){if(!t[s]){if(!e[s]){var i="function"==typeof require&&require;if(!l&&i)return i(s,!0);if(r)return r(s,!0);var u=new Error("Cannot find module '"+s+"'");throw u.code="MODULE_NOT_FOUND",u}var c=t[s]={exports:{}};e[s][0].call(c.exports,function(t){var n=e[s][1][t];return a(n?n:t)},c,c.exports,o,e,t,n)}return t[s].exports}for(var r="function"==typeof require&&require,s=0;s=0;)n=n.replace(" "+t+" "," ");e.className=n.replace(/^\s+|\s+$/g,"")}},i=function(e){var n=t.createElement("div");return n.appendChild(t.createTextNode(e)),n.innerHTML},u=function(e){e.style.opacity="",e.style.display="block"},c=function(e){if(e&&!e.length)return u(e);for(var t=0;t0?setTimeout(o,t):e.style.display="none"});o()},h=function(n){if("function"==typeof MouseEvent){var o=new MouseEvent("click",{view:e,bubbles:!1,cancelable:!0});n.dispatchEvent(o)}else if(t.createEvent){var a=t.createEvent("MouseEvents");a.initEvent("click",!1,!1),n.dispatchEvent(a)}else t.createEventObject?n.fireEvent("onclick"):"function"==typeof n.onclick&&n.onclick()},g=function(t){"function"==typeof t.stopPropagation?(t.stopPropagation(),t.preventDefault()):e.event&&e.event.hasOwnProperty("cancelBubble")&&(e.event.cancelBubble=!0)};a.hasClass=r,a.addClass=s,a.removeClass=l,a.escapeHtml=i,a._show=u,a.show=c,a._hide=d,a.hide=f,a.isDescendant=p,a.getTopMargin=m,a.fadeIn=v,a.fadeOut=y,a.fireClick=h,a.stopEventPropagation=g},{}],5:[function(t,o,a){Object.defineProperty(a,"__esModule",{value:!0});var r=t("./handle-dom"),s=t("./handle-swal-dom"),l=function(t,o,a){var l=t||e.event,i=l.keyCode||l.which,u=a.querySelector("button.confirm"),c=a.querySelector("button.cancel"),d=a.querySelectorAll("button[tabindex]");if(-1!==[9,13,32,27].indexOf(i)){for(var f=l.target||l.srcElement,p=-1,m=0;m"),i.innerHTML=e.html?e.text:s.escapeHtml(e.text||"").split("\n").join("
    "),e.text&&s.show(i),e.customClass)s.addClass(t,e.customClass),t.setAttribute("data-custom-class",e.customClass);else{var d=t.getAttribute("data-custom-class");s.removeClass(t,d),t.setAttribute("data-custom-class","")}if(s.hide(t.querySelectorAll(".sa-icon")),e.type&&!a.isIE8()){var f=function(){for(var o=!1,a=0;ao;o++)n=parseInt(e.substr(2*o,2),16),n=Math.round(Math.min(Math.max(0,n+n*t),255)).toString(16),a+=("00"+n).substr(n.length);return a};o.extend=a,o.hexToRgb=r,o.isIE8=s,o.logStr=l,o.colorLuminance=i},{}]},{},[1]),"function"==typeof define&&define.amd?define(function(){return sweetAlert}):"undefined"!=typeof module&&module.exports&&(module.exports=sweetAlert)}(window,document); \ No newline at end of file diff --git a/apps/templates/_modal.html b/apps/templates/_modal.html new file mode 100644 index 000000000..9d8b50c70 --- /dev/null +++ b/apps/templates/_modal.html @@ -0,0 +1,20 @@ +{% load i18n %} + diff --git a/apps/users/api.py b/apps/users/api.py index ee7b5f233..bb995d0f8 100644 --- a/apps/users/api.py +++ b/apps/users/api.py @@ -6,6 +6,7 @@ import logging from rest_framework import generics from .serializers import UserSerializer, UserGroupSerializer, UserAttributeSerializer, UserGroupEditSerializer +from .serializers import UserPKUpdateSerializer from .models import User, UserGroup @@ -49,3 +50,25 @@ class UserAttributeApi(generics.RetrieveUpdateDestroyAPIView): class UserGroupEditApi(generics.RetrieveUpdateAPIView): queryset = User.objects.all() serializer_class = UserGroupEditSerializer + + +class UserResetPasswordApi(generics.UpdateAPIView): + queryset = User.objects.all() + serializer_class = UserGroupEditSerializer + + def perform_update(self, serializer): + # Note: we are not updating the user object here. + # We just do the reset-password staff. + user = self.get_object() + from .utils import send_reset_password_mail + send_reset_password_mail(user) + + +class UserResetPKApi(generics.UpdateAPIView): + queryset = User.objects.all() + serializer_class = UserPKUpdateSerializer + + def perform_update(self, serializer): + user = self.get_object() + user.private_key = serializer.validated_data['_private_key'] + user.save() diff --git a/apps/users/serializers.py b/apps/users/serializers.py index 808bb7349..7e70049f8 100644 --- a/apps/users/serializers.py +++ b/apps/users/serializers.py @@ -1,6 +1,8 @@ # -*- coding: utf-8 -*- # +from django.utils.translation import ugettext_lazy as _ + from rest_framework import serializers from .models import User, UserGroup @@ -38,3 +40,17 @@ class UserGroupEditSerializer(serializers.ModelSerializer): class Meta: model = User fields = ['id', 'groups'] + + +class UserPKUpdateSerializer(serializers.ModelSerializer): + + class Meta: + model = User + fields = ['id', '_private_key'] + + def validate__private_key(self, value): + from users.utils import validate_ssh_pk + checked, reason = validate_ssh_pk(value) + if not checked: + raise serializers.ValidationError(_('Not a valid ssh private key.')) + return value diff --git a/apps/users/templates/users/_user_reset_pk_modal.html b/apps/users/templates/users/_user_reset_pk_modal.html new file mode 100644 index 000000000..bd6b62715 --- /dev/null +++ b/apps/users/templates/users/_user_reset_pk_modal.html @@ -0,0 +1,8 @@ +{% extends '_modal.html' %} +{% load i18n %} +{% block modal_id %}user_reset_pk_modal{% endblock %} +{% block modal_title%}{% trans 'Reset User SSH Private Key' %}{% endblock %} +{% block modal_body %} + +{% endblock %} +{% block modal_confirm_id %}btn_user_reset_pk{% endblock %} diff --git a/apps/users/templates/users/user_detail.html b/apps/users/templates/users/user_detail.html index 41cdde6e5..e89e96edf 100644 --- a/apps/users/templates/users/user_detail.html +++ b/apps/users/templates/users/user_detail.html @@ -6,7 +6,9 @@ {% block custom_head_css_js %} + + {% endblock %} {% block content %}
    @@ -114,8 +116,8 @@
    {{ group.name }} - +
    - - + - - + @@ -191,7 +193,7 @@ {% endfor %} @@ -205,6 +207,7 @@ + {% include 'users/_user_reset_pk_modal.html' %} {% endblock %} {% block custom_foot_js %} {% endblock %} diff --git a/apps/users/urls.py b/apps/users/urls.py index 179827216..5a83c64b1 100644 --- a/apps/users/urls.py +++ b/apps/users/urls.py @@ -35,6 +35,8 @@ urlpatterns += [ api.UserDetailDeleteUpdateApi.as_view(), name='user-detail-api'), url(r'^v1/users/(?P[0-9]+)/patch$', api.UserAttributeApi.as_view(), name='user-patch-api'), + url(r'^v1/users/(?P\d+)/reset-password/$', api.UserResetPasswordApi.as_view(), name='user-reset-password-api'), + url(r'^v1/users/(?P\d+)/reset-pk/$', api.UserResetPKApi.as_view(), name='user-reset-pk-api'), url(r'^v1/user-groups$', api.UserGroupListAddApi.as_view(), name='user-group-list-api'), url(r'^v1/user-groups/(?P[0-9]+)$', api.UserGroupDetailDeleteUpdateApi.as_view(), name='user-group-detail-api'), diff --git a/apps/users/utils.py b/apps/users/utils.py index 9e9a34321..13076a106 100644 --- a/apps/users/utils.py +++ b/apps/users/utils.py @@ -5,6 +5,7 @@ import logging import os import re +from django.conf import settings from django.contrib.auth.mixins import UserPassesTestMixin from django.urls import reverse_lazy from django.utils.translation import ugettext as _ @@ -121,6 +122,8 @@ def send_reset_password_mail(user): 'email': user.email, 'login_url': reverse('users:login', external=True), } + if settings.DEBUG: + logger.debug(message) send_mail_async.delay(subject, message, recipient_list, html_message=message) From 5bca783e1236a268338c7140f2734e76ff3b15c3 Mon Sep 17 00:00:00 2001 From: ibuler Date: Wed, 14 Sep 2016 01:08:26 +0800 Subject: [PATCH 38/50] permission user search --- .../templates/assets/asset_group_detail.html | 8 - .../templates/assets/system_user_asset.html | 4 - .../assets/system_user_asset_group.html | 4 - .../templates/assets/system_user_detail.html | 4 - apps/common/utils.py | 45 ++++- apps/perms/models.py | 34 +++- .../perms/asset_permission_asset_list.html | 186 ++++++++++++++++++ .../perms/asset_permission_detail.html | 4 - .../perms/asset_permission_user_list.html | 20 +- apps/perms/views.py | 13 +- apps/users/templates/users/user_detail.html | 4 - 11 files changed, 288 insertions(+), 38 deletions(-) create mode 100644 apps/perms/templates/perms/asset_permission_asset_list.html diff --git a/apps/assets/templates/assets/asset_group_detail.html b/apps/assets/templates/assets/asset_group_detail.html index 4c48867b9..1b266de44 100644 --- a/apps/assets/templates/assets/asset_group_detail.html +++ b/apps/assets/templates/assets/asset_group_detail.html @@ -33,10 +33,6 @@ @@ -78,10 +74,6 @@ diff --git a/apps/assets/templates/assets/system_user_asset.html b/apps/assets/templates/assets/system_user_asset.html index 4f1fb4097..9f30c724e 100644 --- a/apps/assets/templates/assets/system_user_asset.html +++ b/apps/assets/templates/assets/system_user_asset.html @@ -39,10 +39,6 @@ diff --git a/apps/assets/templates/assets/system_user_asset_group.html b/apps/assets/templates/assets/system_user_asset_group.html index bcddd09fc..52e48815c 100644 --- a/apps/assets/templates/assets/system_user_asset_group.html +++ b/apps/assets/templates/assets/system_user_asset_group.html @@ -40,10 +40,6 @@ diff --git a/apps/assets/templates/assets/system_user_detail.html b/apps/assets/templates/assets/system_user_detail.html index 9dde0a0e1..7ca599d8f 100644 --- a/apps/assets/templates/assets/system_user_detail.html +++ b/apps/assets/templates/assets/system_user_detail.html @@ -42,10 +42,6 @@ diff --git a/apps/common/utils.py b/apps/common/utils.py index f6cb9ea9a..0d2a4284c 100644 --- a/apps/common/utils.py +++ b/apps/common/utils.py @@ -2,6 +2,8 @@ # from __future__ import unicode_literals +from itertools import chain +import string from django.shortcuts import reverse as dj_reverse from django.conf import settings @@ -39,4 +41,45 @@ def date_expired_default(): except TypeError: years = 70 - return timezone.now() + timezone.timedelta(days=365 * years) \ No newline at end of file + return timezone.now() + timezone.timedelta(days=365 * years) + + +def combine_seq(s1, s2, callback=None): + for s in (s1, s2): + if not hasattr(s, '__iter__'): + return [] + + seq = chain(s1, s2) + if callback: + seq = map(callback, seq) + + return seq + + +def search_object_attr(obj, value='', attr_list=None, ignore_case=False): + try: + object_attr = obj.__dict__ + except AttributeError: + return False + + if not isinstance(value, str): + return False + + if value == '': + return True + + if attr_list is not None: + for attr in attr_list: + object_attr.pop(attr) + + print(value) + print(object_attr) + if ignore_case: + if value.lower() in map(string.lower, filter(lambda x: isinstance(x, (str, unicode)), object_attr.values())): + return True + else: + if value in object_attr.values(): + return True + return False + + diff --git a/apps/perms/models.py b/apps/perms/models.py index 3a1cb53ce..6b3b88b3f 100644 --- a/apps/perms/models.py +++ b/apps/perms/models.py @@ -1,4 +1,5 @@ from __future__ import unicode_literals, absolute_import +import functools from django.db import models from django.utils.translation import ugettext_lazy as _ @@ -6,7 +7,7 @@ from django.utils import timezone from users.models import User, UserGroup from assets.models import Asset, AssetGroup, SystemUser -from common.utils import date_expired_default +from common.utils import date_expired_default, combine_seq class AssetPermission(models.Model): @@ -16,8 +17,8 @@ class AssetPermission(models.Model): ) name = models.CharField(max_length=128, verbose_name=_('Name')) - users = models.ManyToManyField(User, related_name='asset_permissions') - user_groups = models.ManyToManyField(UserGroup, related_name='asset_permissions') + users = models.ManyToManyField(User, related_name='asset_permissions', blank=True) + user_groups = models.ManyToManyField(UserGroup, related_name='asset_permissions', blank=True) assets = models.ManyToManyField(Asset, related_name='granted_by_permissions', blank=True) asset_groups = models.ManyToManyField(AssetGroup, related_name='granted_by_permissions', blank=True) system_users = models.ManyToManyField(SystemUser, related_name='granted_by_permissions') @@ -37,6 +38,33 @@ class AssetPermission(models.Model): return True return True + @staticmethod + def set_inherit(obj): + setattr(obj, 'inherited', True) + return obj + + def get_granted_users(self): + return list(set(self.users.all() or []) | set(self.get_granted_user_groups_member())) + + def get_granted_user_groups_member(self): + combine_users = functools.partial(combine_seq, callback=AssetPermission.set_inherit) + try: + return functools.reduce(combine_users, [user_group.users.all() + for user_group in self.user_groups.iterator()]) + except TypeError: + return [] + + def get_granted_assets(self): + return list(self.assets.all() or []) | set(self.get_granted_asset_groups_member()) + + def get_granted_asset_groups_member(self): + combine_assets = functools.partial(combine_seq, callback=AssetPermission.set_inherit) + try: + return functools.reduce(combine_assets, [asset_group.users.all() + for asset_group in self.asset_groups.iterator()]) + except TypeError: + return [] + class Meta: db_table = 'asset_permission' diff --git a/apps/perms/templates/perms/asset_permission_asset_list.html b/apps/perms/templates/perms/asset_permission_asset_list.html new file mode 100644 index 000000000..c60ea49a8 --- /dev/null +++ b/apps/perms/templates/perms/asset_permission_asset_list.html @@ -0,0 +1,186 @@ +{% extends 'base.html' %} +{% load common_tags %} +{% load users_tags %} +{% load static %} +{% load i18n %} + +{% block custom_head_css_js %} + + +{% endblock %} +{% block content %} +
    +
    +
    +
    + +
    +
    +
    +
    + {% trans 'Asset list of ' %} {{ asset_permission.name }} +
    + + + + + + + + + + +
    +
    +
    +
    Active: + {% trans 'Active' %}:
    @@ -128,8 +130,8 @@
    二次验证: + {% trans 'Enable OTP' %}:
    {% trans 'Reset password' %}: - - + +
    {% trans 'Reset ssh key' %}: - - + +
    {{ group.name }} - +
    + + + + + + + + + + + {% for user in page_obj %} + + + + + + + + + {% endfor %} + +
    {% trans 'Hostname' %}{% trans 'IP' %}{% trans 'Port' %}{% trans 'Is valid' %}
    {{ user.name }}{{ user.username }}{{ user.email }} + {% if user.is_expired and user.is_active %} + + {% else %} + + {% endif %} + + +
    +
    + {% include '_pagination.html' %} +
    +
    +
    +
    +
    +
    +
    + {% trans 'Add user to asset permission' %} +
    +
    + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    +
    + {% trans 'Add user group to asset permission' %} +
    +
    + + + + + + + + + + + + {% for user_group in user_groups %} + + + + + {% endfor %} + +
    + +
    + +
    {{ user_group.name }} + +
    +
    +
    +
    +
    +
    +
    +
    +
    + +{% endblock %} +{% block custom_foot_js %} + +{% endblock %} \ No newline at end of file diff --git a/apps/perms/templates/perms/asset_permission_detail.html b/apps/perms/templates/perms/asset_permission_detail.html index c8de5ec44..ee4d1fab3 100644 --- a/apps/perms/templates/perms/asset_permission_detail.html +++ b/apps/perms/templates/perms/asset_permission_detail.html @@ -43,10 +43,6 @@ diff --git a/apps/perms/templates/perms/asset_permission_user_list.html b/apps/perms/templates/perms/asset_permission_user_list.html index ec138c401..c9da9aedc 100644 --- a/apps/perms/templates/perms/asset_permission_user_list.html +++ b/apps/perms/templates/perms/asset_permission_user_list.html @@ -28,6 +28,16 @@ {% trans 'Assets and asset gruops' %}
  • +
    @@ -43,10 +53,6 @@ @@ -60,7 +66,8 @@ {% trans 'Name' %} {% trans 'Username' %} {% trans 'Email' %} - {% trans 'Active' %} + {% trans 'Is valid' %} + @@ -77,6 +84,9 @@ {% endif %} + + + {% endfor %} diff --git a/apps/perms/views.py b/apps/perms/views.py index 37ecca9d7..67003ea91 100644 --- a/apps/perms/views.py +++ b/apps/perms/views.py @@ -1,6 +1,7 @@ # ~*~ coding: utf-8 ~*~ from __future__ import unicode_literals, absolute_import +import functools from django.utils.translation import ugettext as _ from django.conf import settings @@ -11,6 +12,7 @@ from django.urls import reverse_lazy from django.contrib.messages.views import SuccessMessageMixin from django.views.generic.detail import DetailView, SingleObjectMixin +from common.utils import search_object_attr from .hands import AdminUserRequiredMixin, User, UserGroup, SystemUser from .models import AssetPermission from .forms import AssetPermissionForm @@ -124,10 +126,19 @@ class AssetPermissionUserListView(AdminUserRequiredMixin, SingleObjectMixin, Lis def get(self, request, *args, **kwargs): self.object = self.get_object(queryset=AssetPermission.objects.all()) + self.keyword = keyword = self.request.GET.get('keyword', '') return super(AssetPermissionUserListView, self).get(request, *args, **kwargs) def get_queryset(self): - return self.object.users.all() + print(self.keyword) + queryset = self.object.get_granted_users() + + if self.keyword: + search_func = functools.partial(search_object_attr, value=self.keyword, + attr_list=['name', 'username', 'email'], + ignore_case=True) + queryset = filter(search_func, queryset[:]) + return queryset def get_context_data(self, **kwargs): context = { diff --git a/apps/users/templates/users/user_detail.html b/apps/users/templates/users/user_detail.html index ae61ddf9a..a8500ac51 100644 --- a/apps/users/templates/users/user_detail.html +++ b/apps/users/templates/users/user_detail.html @@ -34,10 +34,6 @@ From 8490583d7321b85f98137fe75114f2dc1715f4d8 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 14 Sep 2016 15:19:27 +0800 Subject: [PATCH 39/50] add assets manage Sweet Alert --- apps/assets/migrations/0001_initial.py | 30 +- .../templates/assets/admin_user_list.html | 2 +- .../templates/assets/asset_group_list.html | 2 +- apps/assets/templates/assets/idc_list.html | 14 +- .../templates/assets/system_user_list.html | 2 +- apps/assets/views.py | 21 +- apps/static/css/images/jbox-button1.png | Bin 0 -> 338 bytes apps/static/css/images/jbox-close.gif | Bin 0 -> 153 bytes apps/static/css/images/jbox-icons.png | Bin 0 -> 6588 bytes apps/static/css/jbox.css | 43 ++ .../css/plugins/sweetalert/sweetalert.css | 715 ++++++++++++++++++ apps/static/jbox/Skins/Blue/Desktop.ini | 3 + .../jbox/Skins/Blue/OneNote 目录.onetoc2 | Bin 0 -> 4744 bytes .../Skins/Blue/images/OneNote 目录.onetoc2 | Bin 0 -> 3656 bytes apps/static/jbox/Skins/Blue/images/Thumbs.db | Bin 0 -> 19456 bytes .../jbox/Skins/Blue/images/jbox-button1.png | Bin 0 -> 338 bytes .../jbox/Skins/Blue/images/jbox-button2.png | Bin 0 -> 314 bytes .../jbox/Skins/Blue/images/jbox-close1.gif | Bin 0 -> 1221 bytes .../jbox/Skins/Blue/images/jbox-close2.gif | Bin 0 -> 791 bytes .../Blue/images/jbox-content-loading.gif | Bin 0 -> 10810 bytes .../jbox/Skins/Blue/images/jbox-icons-ie6.gif | Bin 0 -> 2767 bytes .../jbox/Skins/Blue/images/jbox-icons.png | Bin 0 -> 6588 bytes .../jbox/Skins/Blue/images/jbox-loading1.gif | Bin 0 -> 3199 bytes .../jbox/Skins/Blue/images/jbox-loading2.gif | Bin 0 -> 4167 bytes .../jbox/Skins/Blue/images/jbox-loading3.gif | Bin 0 -> 8778 bytes .../Skins/Blue/images/jbox-title-icon.gif | Bin 0 -> 73 bytes apps/static/jbox/Skins/Blue/jbox.css | 43 ++ apps/static/jbox/Skins/Brown/Desktop.ini | 3 + apps/static/jbox/Skins/Brown/images/Thumbs.db | Bin 0 -> 19456 bytes .../jbox/Skins/Brown/images/jbox-button1.png | Bin 0 -> 338 bytes .../jbox/Skins/Brown/images/jbox-button2.png | Bin 0 -> 314 bytes .../jbox/Skins/Brown/images/jbox-close1.gif | Bin 0 -> 1221 bytes .../jbox/Skins/Brown/images/jbox-close2.gif | Bin 0 -> 791 bytes .../Brown/images/jbox-content-loading.gif | Bin 0 -> 10810 bytes .../Skins/Brown/images/jbox-icons-ie6.gif | Bin 0 -> 2767 bytes .../jbox/Skins/Brown/images/jbox-icons.png | Bin 0 -> 6588 bytes .../jbox/Skins/Brown/images/jbox-loading1.gif | Bin 0 -> 3199 bytes .../jbox/Skins/Brown/images/jbox-loading2.gif | Bin 0 -> 4167 bytes .../jbox/Skins/Brown/images/jbox-loading3.gif | Bin 0 -> 8778 bytes .../Skins/Brown/images/jbox-title-icon.gif | Bin 0 -> 73 bytes apps/static/jbox/Skins/Brown/jbox.css | 43 ++ apps/static/jbox/Skins/Default/Desktop.ini | 3 + apps/static/jbox/Skins/Default/Thumbs.db | Bin 0 -> 4096 bytes .../jbox/Skins/Default/images/Thumbs.db | Bin 0 -> 33792 bytes .../Skins/Default/images/jbox-button1.png | Bin 0 -> 338 bytes .../Skins/Default/images/jbox-button2.png | Bin 0 -> 314 bytes .../jbox/Skins/Default/images/jbox-close1.gif | Bin 0 -> 1221 bytes .../jbox/Skins/Default/images/jbox-close2.gif | Bin 0 -> 791 bytes .../Default/images/jbox-content-loading.gif | Bin 0 -> 6610 bytes .../Skins/Default/images/jbox-icons-ie6.gif | Bin 0 -> 2767 bytes .../jbox/Skins/Default/images/jbox-icons.png | Bin 0 -> 6588 bytes .../Skins/Default/images/jbox-loading1.gif | Bin 0 -> 3199 bytes .../Skins/Default/images/jbox-loading2.gif | Bin 0 -> 4167 bytes .../Skins/Default/images/jbox-loading3.gif | Bin 0 -> 8778 bytes .../Skins/Default/images/jbox-title-icon.gif | Bin 0 -> 92 bytes apps/static/jbox/Skins/Default/jbox.css | 43 ++ apps/static/jbox/Skins/Gray/Desktop.ini | 3 + apps/static/jbox/Skins/Gray/images/Thumbs.db | Bin 0 -> 19456 bytes .../jbox/Skins/Gray/images/jbox-button1.png | Bin 0 -> 338 bytes .../jbox/Skins/Gray/images/jbox-button2.png | Bin 0 -> 314 bytes .../jbox/Skins/Gray/images/jbox-close1.gif | Bin 0 -> 1221 bytes .../jbox/Skins/Gray/images/jbox-close2.gif | Bin 0 -> 791 bytes .../Gray/images/jbox-content-loading.gif | Bin 0 -> 10810 bytes .../jbox/Skins/Gray/images/jbox-icons-ie6.gif | Bin 0 -> 2767 bytes .../jbox/Skins/Gray/images/jbox-icons.png | Bin 0 -> 6588 bytes .../jbox/Skins/Gray/images/jbox-loading1.gif | Bin 0 -> 3199 bytes .../jbox/Skins/Gray/images/jbox-loading2.gif | Bin 0 -> 4167 bytes .../jbox/Skins/Gray/images/jbox-loading3.gif | Bin 0 -> 8778 bytes .../Skins/Gray/images/jbox-title-icon.gif | Bin 0 -> 73 bytes apps/static/jbox/Skins/Gray/jbox.css | 43 ++ apps/static/jbox/Skins/GrayCool/Desktop.ini | 3 + .../jbox/Skins/GrayCool/images/Thumbs.db | Bin 0 -> 19456 bytes .../Skins/GrayCool/images/jbox-button1.png | Bin 0 -> 338 bytes .../Skins/GrayCool/images/jbox-button2.png | Bin 0 -> 314 bytes .../Skins/GrayCool/images/jbox-close1.gif | Bin 0 -> 1221 bytes .../Skins/GrayCool/images/jbox-close2.gif | Bin 0 -> 791 bytes .../GrayCool/images/jbox-content-loading.gif | Bin 0 -> 10810 bytes .../Skins/GrayCool/images/jbox-icons-ie6.gif | Bin 0 -> 2767 bytes .../jbox/Skins/GrayCool/images/jbox-icons.png | Bin 0 -> 6588 bytes .../Skins/GrayCool/images/jbox-loading1.gif | Bin 0 -> 3199 bytes .../Skins/GrayCool/images/jbox-loading2.gif | Bin 0 -> 4167 bytes .../Skins/GrayCool/images/jbox-loading3.gif | Bin 0 -> 8778 bytes .../Skins/GrayCool/images/jbox-title-icon.gif | Bin 0 -> 73 bytes apps/static/jbox/Skins/GrayCool/jbox.css | 44 ++ apps/static/jbox/Skins/Green/Desktop.ini | 3 + apps/static/jbox/Skins/Green/images/Thumbs.db | Bin 0 -> 19456 bytes .../jbox/Skins/Green/images/jbox-button1.png | Bin 0 -> 338 bytes .../jbox/Skins/Green/images/jbox-button2.png | Bin 0 -> 314 bytes .../jbox/Skins/Green/images/jbox-close1.gif | Bin 0 -> 1221 bytes .../jbox/Skins/Green/images/jbox-close2.gif | Bin 0 -> 791 bytes .../Green/images/jbox-content-loading.gif | Bin 0 -> 10810 bytes .../Skins/Green/images/jbox-icons-ie6.gif | Bin 0 -> 2767 bytes .../jbox/Skins/Green/images/jbox-icons.png | Bin 0 -> 6588 bytes .../jbox/Skins/Green/images/jbox-loading1.gif | Bin 0 -> 3199 bytes .../jbox/Skins/Green/images/jbox-loading2.gif | Bin 0 -> 4167 bytes .../jbox/Skins/Green/images/jbox-loading3.gif | Bin 0 -> 8778 bytes .../Skins/Green/images/jbox-title-icon.gif | Bin 0 -> 73 bytes apps/static/jbox/Skins/Green/jbox.css | 43 ++ apps/static/jbox/Skins/GreyBlue/Desktop.ini | 3 + .../jbox/Skins/GreyBlue/images/Thumbs.db | Bin 0 -> 19456 bytes .../Skins/GreyBlue/images/jbox-button1.png | Bin 0 -> 338 bytes .../Skins/GreyBlue/images/jbox-button2.png | Bin 0 -> 314 bytes .../Skins/GreyBlue/images/jbox-close1.gif | Bin 0 -> 1221 bytes .../Skins/GreyBlue/images/jbox-close2.gif | Bin 0 -> 791 bytes .../GreyBlue/images/jbox-content-loading.gif | Bin 0 -> 10810 bytes .../Skins/GreyBlue/images/jbox-icons-ie6.gif | Bin 0 -> 2767 bytes .../jbox/Skins/GreyBlue/images/jbox-icons.png | Bin 0 -> 6588 bytes .../Skins/GreyBlue/images/jbox-loading1.gif | Bin 0 -> 3199 bytes .../Skins/GreyBlue/images/jbox-loading2.gif | Bin 0 -> 4167 bytes .../Skins/GreyBlue/images/jbox-loading3.gif | Bin 0 -> 8778 bytes .../Skins/GreyBlue/images/jbox-title-icon.gif | Bin 0 -> 73 bytes apps/static/jbox/Skins/GreyBlue/jbox.css | 43 ++ apps/static/jbox/Skins/Purple/Desktop.ini | 3 + .../static/jbox/Skins/Purple/images/Thumbs.db | Bin 0 -> 19456 bytes .../jbox/Skins/Purple/images/jbox-button1.png | Bin 0 -> 338 bytes .../jbox/Skins/Purple/images/jbox-button2.png | Bin 0 -> 314 bytes .../jbox/Skins/Purple/images/jbox-close1.gif | Bin 0 -> 1221 bytes .../jbox/Skins/Purple/images/jbox-close2.gif | Bin 0 -> 791 bytes .../Purple/images/jbox-content-loading.gif | Bin 0 -> 10810 bytes .../Skins/Purple/images/jbox-icons-ie6.gif | Bin 0 -> 2767 bytes .../jbox/Skins/Purple/images/jbox-icons.png | Bin 0 -> 6588 bytes .../Skins/Purple/images/jbox-loading1.gif | Bin 0 -> 3199 bytes .../Skins/Purple/images/jbox-loading2.gif | Bin 0 -> 4167 bytes .../Skins/Purple/images/jbox-loading3.gif | Bin 0 -> 8778 bytes .../Skins/Purple/images/jbox-title-icon.gif | Bin 0 -> 73 bytes apps/static/jbox/Skins/Purple/jbox.css | 43 ++ apps/static/jbox/Skins/Red/Desktop.ini | 3 + apps/static/jbox/Skins/Red/images/Thumbs.db | Bin 0 -> 19456 bytes .../jbox/Skins/Red/images/jbox-button1.png | Bin 0 -> 338 bytes .../jbox/Skins/Red/images/jbox-button2.png | Bin 0 -> 314 bytes .../jbox/Skins/Red/images/jbox-close1.gif | Bin 0 -> 1221 bytes .../jbox/Skins/Red/images/jbox-close2.gif | Bin 0 -> 791 bytes .../Skins/Red/images/jbox-content-loading.gif | Bin 0 -> 10810 bytes .../jbox/Skins/Red/images/jbox-icons-ie6.gif | Bin 0 -> 2767 bytes .../jbox/Skins/Red/images/jbox-icons.png | Bin 0 -> 6588 bytes .../jbox/Skins/Red/images/jbox-loading1.gif | Bin 0 -> 3199 bytes .../jbox/Skins/Red/images/jbox-loading2.gif | Bin 0 -> 4167 bytes .../jbox/Skins/Red/images/jbox-loading3.gif | Bin 0 -> 8778 bytes .../jbox/Skins/Red/images/jbox-title-icon.gif | Bin 0 -> 73 bytes apps/static/jbox/Skins/Red/jbox.css | 43 ++ apps/static/jbox/Skins/ShareBlue/Desktop.ini | 3 + .../jbox/Skins/ShareBlue/images/Thumbs.db | Bin 0 -> 19456 bytes .../Skins/ShareBlue/images/jbox-button1.png | Bin 0 -> 338 bytes .../Skins/ShareBlue/images/jbox-button2.png | Bin 0 -> 314 bytes .../Skins/ShareBlue/images/jbox-close1.gif | Bin 0 -> 1221 bytes .../Skins/ShareBlue/images/jbox-close2.gif | Bin 0 -> 791 bytes .../ShareBlue/images/jbox-content-loading.gif | Bin 0 -> 10810 bytes .../Skins/ShareBlue/images/jbox-icons-ie6.gif | Bin 0 -> 2767 bytes .../Skins/ShareBlue/images/jbox-icons.png | Bin 0 -> 6588 bytes .../Skins/ShareBlue/images/jbox-loading1.gif | Bin 0 -> 3199 bytes .../Skins/ShareBlue/images/jbox-loading2.gif | Bin 0 -> 4167 bytes .../Skins/ShareBlue/images/jbox-loading3.gif | Bin 0 -> 8778 bytes .../ShareBlue/images/jbox-title-icon.gif | Bin 0 -> 73 bytes apps/static/jbox/Skins/ShareBlue/jbox.css | 43 ++ apps/static/jbox/Skins/ShareBrown/Desktop.ini | 3 + .../jbox/Skins/ShareBrown/images/Thumbs.db | Bin 0 -> 19456 bytes .../Skins/ShareBrown/images/jbox-button1.png | Bin 0 -> 338 bytes .../Skins/ShareBrown/images/jbox-button2.png | Bin 0 -> 314 bytes .../Skins/ShareBrown/images/jbox-close1.gif | Bin 0 -> 1221 bytes .../Skins/ShareBrown/images/jbox-close2.gif | Bin 0 -> 791 bytes .../images/jbox-content-loading.gif | Bin 0 -> 10810 bytes .../ShareBrown/images/jbox-icons-ie6.gif | Bin 0 -> 2767 bytes .../Skins/ShareBrown/images/jbox-icons.png | Bin 0 -> 6588 bytes .../Skins/ShareBrown/images/jbox-loading1.gif | Bin 0 -> 3199 bytes .../Skins/ShareBrown/images/jbox-loading2.gif | Bin 0 -> 4167 bytes .../Skins/ShareBrown/images/jbox-loading3.gif | Bin 0 -> 8778 bytes .../ShareBrown/images/jbox-title-icon.gif | Bin 0 -> 73 bytes apps/static/jbox/Skins/ShareBrown/jbox.css | 43 ++ apps/static/jbox/Skins/ShareGreen/Desktop.ini | 3 + .../jbox/Skins/ShareGreen/images/Thumbs.db | Bin 0 -> 19456 bytes .../Skins/ShareGreen/images/jbox-button1.png | Bin 0 -> 338 bytes .../Skins/ShareGreen/images/jbox-button2.png | Bin 0 -> 314 bytes .../Skins/ShareGreen/images/jbox-close1.gif | Bin 0 -> 1221 bytes .../Skins/ShareGreen/images/jbox-close2.gif | Bin 0 -> 791 bytes .../images/jbox-content-loading.gif | Bin 0 -> 10810 bytes .../ShareGreen/images/jbox-icons-ie6.gif | Bin 0 -> 2767 bytes .../Skins/ShareGreen/images/jbox-icons.png | Bin 0 -> 6588 bytes .../Skins/ShareGreen/images/jbox-loading1.gif | Bin 0 -> 3199 bytes .../Skins/ShareGreen/images/jbox-loading2.gif | Bin 0 -> 4167 bytes .../Skins/ShareGreen/images/jbox-loading3.gif | Bin 0 -> 8778 bytes .../ShareGreen/images/jbox-title-icon.gif | Bin 0 -> 73 bytes apps/static/jbox/Skins/ShareGreen/jbox.css | 43 ++ .../static/jbox/Skins/SharePurple/Desktop.ini | 3 + .../jbox/Skins/SharePurple/images/Thumbs.db | Bin 0 -> 19456 bytes .../Skins/SharePurple/images/jbox-button1.png | Bin 0 -> 338 bytes .../Skins/SharePurple/images/jbox-button2.png | Bin 0 -> 314 bytes .../Skins/SharePurple/images/jbox-close1.gif | Bin 0 -> 1221 bytes .../Skins/SharePurple/images/jbox-close2.gif | Bin 0 -> 791 bytes .../images/jbox-content-loading.gif | Bin 0 -> 10810 bytes .../SharePurple/images/jbox-icons-ie6.gif | Bin 0 -> 2767 bytes .../Skins/SharePurple/images/jbox-icons.png | Bin 0 -> 6588 bytes .../SharePurple/images/jbox-loading1.gif | Bin 0 -> 3199 bytes .../SharePurple/images/jbox-loading2.gif | Bin 0 -> 4167 bytes .../SharePurple/images/jbox-loading3.gif | Bin 0 -> 8778 bytes .../SharePurple/images/jbox-title-icon.gif | Bin 0 -> 73 bytes apps/static/jbox/Skins/SharePurple/jbox.css | 43 ++ apps/static/jbox/Skins/ShareRed/Desktop.ini | 3 + .../jbox/Skins/ShareRed/images/Thumbs.db | Bin 0 -> 19456 bytes .../Skins/ShareRed/images/jbox-button1.png | Bin 0 -> 338 bytes .../Skins/ShareRed/images/jbox-button2.png | Bin 0 -> 314 bytes .../Skins/ShareRed/images/jbox-close1.gif | Bin 0 -> 1221 bytes .../Skins/ShareRed/images/jbox-close2.gif | Bin 0 -> 791 bytes .../ShareRed/images/jbox-content-loading.gif | Bin 0 -> 10810 bytes .../Skins/ShareRed/images/jbox-icons-ie6.gif | Bin 0 -> 2767 bytes .../jbox/Skins/ShareRed/images/jbox-icons.png | Bin 0 -> 6588 bytes .../Skins/ShareRed/images/jbox-loading1.gif | Bin 0 -> 3199 bytes .../Skins/ShareRed/images/jbox-loading2.gif | Bin 0 -> 4167 bytes .../Skins/ShareRed/images/jbox-loading3.gif | Bin 0 -> 8778 bytes .../Skins/ShareRed/images/jbox-title-icon.gif | Bin 0 -> 73 bytes apps/static/jbox/Skins/ShareRed/jbox.css | 43 ++ apps/static/jbox/Skins/jumpserver/Desktop.ini | 3 + .../jbox/Skins/jumpserver/images/Thumbs.db | Bin 0 -> 19456 bytes .../Skins/jumpserver/images/jbox-button1.png | Bin 0 -> 338 bytes .../Skins/jumpserver/images/jbox-button2.png | Bin 0 -> 314 bytes .../Skins/jumpserver/images/jbox-close1.gif | Bin 0 -> 1221 bytes .../Skins/jumpserver/images/jbox-close2.gif | Bin 0 -> 791 bytes .../images/jbox-content-loading.gif | Bin 0 -> 10810 bytes .../jumpserver/images/jbox-icons-ie6.gif | Bin 0 -> 2767 bytes .../Skins/jumpserver/images/jbox-icons.png | Bin 0 -> 6588 bytes .../Skins/jumpserver/images/jbox-loading1.gif | Bin 0 -> 3199 bytes .../Skins/jumpserver/images/jbox-loading2.gif | Bin 0 -> 4167 bytes .../Skins/jumpserver/images/jbox-loading3.gif | Bin 0 -> 8778 bytes .../jumpserver/images/jbox-title-icon.gif | Bin 0 -> 73 bytes apps/static/jbox/Skins/jumpserver/jbox.css | 43 ++ .../Skins/样式说明(以Default皮肤为例).css | 44 ++ apps/static/jbox/Skins2/Blue/Desktop.ini | 3 + apps/static/jbox/Skins2/Blue/images/Thumbs.db | Bin 0 -> 33792 bytes .../jbox/Skins2/Blue/images/jbox-close1.gif | Bin 0 -> 1221 bytes .../jbox/Skins2/Blue/images/jbox-close2.gif | Bin 0 -> 791 bytes .../Blue/images/jbox-content-loading.gif | Bin 0 -> 10810 bytes .../Skins2/Blue/images/jbox-icons-ie6.gif | Bin 0 -> 2767 bytes .../jbox/Skins2/Blue/images/jbox-icons.png | Bin 0 -> 6663 bytes .../jbox/Skins2/Blue/images/jbox-loading1.gif | Bin 0 -> 3199 bytes .../jbox/Skins2/Blue/images/jbox-loading2.gif | Bin 0 -> 4167 bytes .../jbox/Skins2/Blue/images/jbox-loading3.gif | Bin 0 -> 8778 bytes .../Skins2/Blue/images/jbox-title-icon.gif | Bin 0 -> 73 bytes apps/static/jbox/Skins2/Blue/jbox.css | 41 + apps/static/jbox/Skins2/Gray/Desktop.ini | 3 + apps/static/jbox/Skins2/Gray/images/Thumbs.db | Bin 0 -> 33792 bytes .../jbox/Skins2/Gray/images/jbox-close1.gif | Bin 0 -> 1221 bytes .../jbox/Skins2/Gray/images/jbox-close2.gif | Bin 0 -> 791 bytes .../Gray/images/jbox-content-loading.gif | Bin 0 -> 10810 bytes .../Skins2/Gray/images/jbox-icons-ie6.gif | Bin 0 -> 2767 bytes .../jbox/Skins2/Gray/images/jbox-icons.png | Bin 0 -> 6663 bytes .../jbox/Skins2/Gray/images/jbox-loading1.gif | Bin 0 -> 3199 bytes .../jbox/Skins2/Gray/images/jbox-loading2.gif | Bin 0 -> 4167 bytes .../jbox/Skins2/Gray/images/jbox-loading3.gif | Bin 0 -> 8778 bytes .../Skins2/Gray/images/jbox-title-icon.gif | Bin 0 -> 73 bytes apps/static/jbox/Skins2/Gray/jbox.css | 41 + apps/static/jbox/Skins2/Green/Desktop.ini | 3 + .../static/jbox/Skins2/Green/images/Thumbs.db | Bin 0 -> 33792 bytes .../jbox/Skins2/Green/images/jbox-close1.gif | Bin 0 -> 1221 bytes .../jbox/Skins2/Green/images/jbox-close2.gif | Bin 0 -> 791 bytes .../Green/images/jbox-content-loading.gif | Bin 0 -> 6610 bytes .../Skins2/Green/images/jbox-icons-ie6.gif | Bin 0 -> 2767 bytes .../jbox/Skins2/Green/images/jbox-icons.png | Bin 0 -> 6663 bytes .../Skins2/Green/images/jbox-loading1.gif | Bin 0 -> 3199 bytes .../Skins2/Green/images/jbox-loading2.gif | Bin 0 -> 4167 bytes .../Skins2/Green/images/jbox-loading3.gif | Bin 0 -> 8778 bytes .../Skins2/Green/images/jbox-title-icon.gif | Bin 0 -> 92 bytes apps/static/jbox/Skins2/Green/jbox.css | 41 + apps/static/jbox/Skins2/Pink/Desktop.ini | 3 + apps/static/jbox/Skins2/Pink/images/Thumbs.db | Bin 0 -> 33792 bytes .../jbox/Skins2/Pink/images/jbox-close1.gif | Bin 0 -> 1221 bytes .../jbox/Skins2/Pink/images/jbox-close2.gif | Bin 0 -> 791 bytes .../Pink/images/jbox-content-loading.gif | Bin 0 -> 10810 bytes .../Skins2/Pink/images/jbox-icons-ie6.gif | Bin 0 -> 2767 bytes .../jbox/Skins2/Pink/images/jbox-icons.png | Bin 0 -> 6663 bytes .../jbox/Skins2/Pink/images/jbox-loading1.gif | Bin 0 -> 3199 bytes .../jbox/Skins2/Pink/images/jbox-loading2.gif | Bin 0 -> 4167 bytes .../jbox/Skins2/Pink/images/jbox-loading3.gif | Bin 0 -> 8778 bytes .../Skins2/Pink/images/jbox-title-icon.gif | Bin 0 -> 73 bytes apps/static/jbox/Skins2/Pink/jbox.css | 41 + apps/static/jbox/Skins2/Purple/Desktop.ini | 3 + .../jbox/Skins2/Purple/images/Thumbs.db | Bin 0 -> 33792 bytes .../jbox/Skins2/Purple/images/jbox-close1.gif | Bin 0 -> 1221 bytes .../jbox/Skins2/Purple/images/jbox-close2.gif | Bin 0 -> 791 bytes .../Purple/images/jbox-content-loading.gif | Bin 0 -> 10810 bytes .../Skins2/Purple/images/jbox-icons-ie6.gif | Bin 0 -> 2767 bytes .../jbox/Skins2/Purple/images/jbox-icons.png | Bin 0 -> 6663 bytes .../Skins2/Purple/images/jbox-loading1.gif | Bin 0 -> 3199 bytes .../Skins2/Purple/images/jbox-loading2.gif | Bin 0 -> 4167 bytes .../Skins2/Purple/images/jbox-loading3.gif | Bin 0 -> 8778 bytes .../Skins2/Purple/images/jbox-title-icon.gif | Bin 0 -> 73 bytes apps/static/jbox/Skins2/Purple/jbox.css | 41 + apps/static/jbox/Skins2/Yellow/Desktop.ini | 3 + .../jbox/Skins2/Yellow/images/Thumbs.db | Bin 0 -> 33792 bytes .../jbox/Skins2/Yellow/images/jbox-close1.gif | Bin 0 -> 1221 bytes .../jbox/Skins2/Yellow/images/jbox-close2.gif | Bin 0 -> 791 bytes .../Yellow/images/jbox-content-loading.gif | Bin 0 -> 10810 bytes .../Skins2/Yellow/images/jbox-icons-ie6.gif | Bin 0 -> 2767 bytes .../jbox/Skins2/Yellow/images/jbox-icons.png | Bin 0 -> 6663 bytes .../Skins2/Yellow/images/jbox-loading1.gif | Bin 0 -> 3199 bytes .../Skins2/Yellow/images/jbox-loading2.gif | Bin 0 -> 4167 bytes .../Skins2/Yellow/images/jbox-loading3.gif | Bin 0 -> 8778 bytes .../Skins2/Yellow/images/jbox-title-icon.gif | Bin 0 -> 73 bytes apps/static/jbox/Skins2/Yellow/jbox.css | 41 + .../static/jbox/Skins2/jumpserver/Desktop.ini | 3 + .../jbox/Skins2/jumpserver/images/Thumbs.db | Bin 0 -> 33792 bytes .../Skins2/jumpserver/images/jbox-close1.gif | Bin 0 -> 1221 bytes .../Skins2/jumpserver/images/jbox-close2.gif | Bin 0 -> 791 bytes .../images/jbox-content-loading.gif | Bin 0 -> 10810 bytes .../jumpserver/images/jbox-icons-ie6.gif | Bin 0 -> 2767 bytes .../Skins2/jumpserver/images/jbox-icons.png | Bin 0 -> 6663 bytes .../jumpserver/images/jbox-loading1.gif | Bin 0 -> 3199 bytes .../jumpserver/images/jbox-loading2.gif | Bin 0 -> 4167 bytes .../jumpserver/images/jbox-loading3.gif | Bin 0 -> 8778 bytes .../jumpserver/images/jbox-title-icon.gif | Bin 0 -> 73 bytes apps/static/jbox/Skins2/jumpserver/jbox.css | 41 + .../jbox/Skins2/样式说明(以Green皮肤为例).css | 44 ++ apps/static/jbox/i18n/jquery.jBox-zh-CN.js | 77 ++ apps/static/jbox/jquery.jBox-2.3.min.js | 11 + apps/static/js/jquery-migrate-1.1.1.min.js | 9 + apps/static/js/jquery.jBox-2.3.min.js | 11 + apps/static/js/jquery.jBox-zh-CN.min.js | 1 + .../js/plugins/sweetalert/sweetalert.min.js | 1 + apps/templates/_foot_js.html | 32 + apps/templates/_head_css_js.html | 18 +- apps/users/templates/users/user_list.html | 3 +- apps/users/views.py | 15 +- 320 files changed, 2064 insertions(+), 30 deletions(-) create mode 100644 apps/static/css/images/jbox-button1.png create mode 100644 apps/static/css/images/jbox-close.gif create mode 100644 apps/static/css/images/jbox-icons.png create mode 100644 apps/static/css/jbox.css create mode 100644 apps/static/css/plugins/sweetalert/sweetalert.css create mode 100644 apps/static/jbox/Skins/Blue/Desktop.ini create mode 100644 apps/static/jbox/Skins/Blue/OneNote 目录.onetoc2 create mode 100644 apps/static/jbox/Skins/Blue/images/OneNote 目录.onetoc2 create mode 100644 apps/static/jbox/Skins/Blue/images/Thumbs.db create mode 100644 apps/static/jbox/Skins/Blue/images/jbox-button1.png create mode 100644 apps/static/jbox/Skins/Blue/images/jbox-button2.png create mode 100644 apps/static/jbox/Skins/Blue/images/jbox-close1.gif create mode 100644 apps/static/jbox/Skins/Blue/images/jbox-close2.gif create mode 100644 apps/static/jbox/Skins/Blue/images/jbox-content-loading.gif create mode 100644 apps/static/jbox/Skins/Blue/images/jbox-icons-ie6.gif create mode 100644 apps/static/jbox/Skins/Blue/images/jbox-icons.png create mode 100644 apps/static/jbox/Skins/Blue/images/jbox-loading1.gif create mode 100644 apps/static/jbox/Skins/Blue/images/jbox-loading2.gif create mode 100644 apps/static/jbox/Skins/Blue/images/jbox-loading3.gif create mode 100644 apps/static/jbox/Skins/Blue/images/jbox-title-icon.gif create mode 100644 apps/static/jbox/Skins/Blue/jbox.css create mode 100644 apps/static/jbox/Skins/Brown/Desktop.ini create mode 100644 apps/static/jbox/Skins/Brown/images/Thumbs.db create mode 100644 apps/static/jbox/Skins/Brown/images/jbox-button1.png create mode 100644 apps/static/jbox/Skins/Brown/images/jbox-button2.png create mode 100644 apps/static/jbox/Skins/Brown/images/jbox-close1.gif create mode 100644 apps/static/jbox/Skins/Brown/images/jbox-close2.gif create mode 100644 apps/static/jbox/Skins/Brown/images/jbox-content-loading.gif create mode 100644 apps/static/jbox/Skins/Brown/images/jbox-icons-ie6.gif create mode 100644 apps/static/jbox/Skins/Brown/images/jbox-icons.png create mode 100644 apps/static/jbox/Skins/Brown/images/jbox-loading1.gif create mode 100644 apps/static/jbox/Skins/Brown/images/jbox-loading2.gif create mode 100644 apps/static/jbox/Skins/Brown/images/jbox-loading3.gif create mode 100644 apps/static/jbox/Skins/Brown/images/jbox-title-icon.gif create mode 100644 apps/static/jbox/Skins/Brown/jbox.css create mode 100644 apps/static/jbox/Skins/Default/Desktop.ini create mode 100644 apps/static/jbox/Skins/Default/Thumbs.db create mode 100644 apps/static/jbox/Skins/Default/images/Thumbs.db create mode 100644 apps/static/jbox/Skins/Default/images/jbox-button1.png create mode 100644 apps/static/jbox/Skins/Default/images/jbox-button2.png create mode 100644 apps/static/jbox/Skins/Default/images/jbox-close1.gif create mode 100644 apps/static/jbox/Skins/Default/images/jbox-close2.gif create mode 100644 apps/static/jbox/Skins/Default/images/jbox-content-loading.gif create mode 100644 apps/static/jbox/Skins/Default/images/jbox-icons-ie6.gif create mode 100644 apps/static/jbox/Skins/Default/images/jbox-icons.png create mode 100644 apps/static/jbox/Skins/Default/images/jbox-loading1.gif create mode 100644 apps/static/jbox/Skins/Default/images/jbox-loading2.gif create mode 100644 apps/static/jbox/Skins/Default/images/jbox-loading3.gif create mode 100644 apps/static/jbox/Skins/Default/images/jbox-title-icon.gif create mode 100644 apps/static/jbox/Skins/Default/jbox.css create mode 100644 apps/static/jbox/Skins/Gray/Desktop.ini create mode 100644 apps/static/jbox/Skins/Gray/images/Thumbs.db create mode 100644 apps/static/jbox/Skins/Gray/images/jbox-button1.png create mode 100644 apps/static/jbox/Skins/Gray/images/jbox-button2.png create mode 100644 apps/static/jbox/Skins/Gray/images/jbox-close1.gif create mode 100644 apps/static/jbox/Skins/Gray/images/jbox-close2.gif create mode 100644 apps/static/jbox/Skins/Gray/images/jbox-content-loading.gif create mode 100644 apps/static/jbox/Skins/Gray/images/jbox-icons-ie6.gif create mode 100644 apps/static/jbox/Skins/Gray/images/jbox-icons.png create mode 100644 apps/static/jbox/Skins/Gray/images/jbox-loading1.gif create mode 100644 apps/static/jbox/Skins/Gray/images/jbox-loading2.gif create mode 100644 apps/static/jbox/Skins/Gray/images/jbox-loading3.gif create mode 100644 apps/static/jbox/Skins/Gray/images/jbox-title-icon.gif create mode 100644 apps/static/jbox/Skins/Gray/jbox.css create mode 100644 apps/static/jbox/Skins/GrayCool/Desktop.ini create mode 100644 apps/static/jbox/Skins/GrayCool/images/Thumbs.db create mode 100644 apps/static/jbox/Skins/GrayCool/images/jbox-button1.png create mode 100644 apps/static/jbox/Skins/GrayCool/images/jbox-button2.png create mode 100644 apps/static/jbox/Skins/GrayCool/images/jbox-close1.gif create mode 100644 apps/static/jbox/Skins/GrayCool/images/jbox-close2.gif create mode 100644 apps/static/jbox/Skins/GrayCool/images/jbox-content-loading.gif create mode 100644 apps/static/jbox/Skins/GrayCool/images/jbox-icons-ie6.gif create mode 100644 apps/static/jbox/Skins/GrayCool/images/jbox-icons.png create mode 100644 apps/static/jbox/Skins/GrayCool/images/jbox-loading1.gif create mode 100644 apps/static/jbox/Skins/GrayCool/images/jbox-loading2.gif create mode 100644 apps/static/jbox/Skins/GrayCool/images/jbox-loading3.gif create mode 100644 apps/static/jbox/Skins/GrayCool/images/jbox-title-icon.gif create mode 100644 apps/static/jbox/Skins/GrayCool/jbox.css create mode 100644 apps/static/jbox/Skins/Green/Desktop.ini create mode 100644 apps/static/jbox/Skins/Green/images/Thumbs.db create mode 100644 apps/static/jbox/Skins/Green/images/jbox-button1.png create mode 100644 apps/static/jbox/Skins/Green/images/jbox-button2.png create mode 100644 apps/static/jbox/Skins/Green/images/jbox-close1.gif create mode 100644 apps/static/jbox/Skins/Green/images/jbox-close2.gif create mode 100644 apps/static/jbox/Skins/Green/images/jbox-content-loading.gif create mode 100644 apps/static/jbox/Skins/Green/images/jbox-icons-ie6.gif create mode 100644 apps/static/jbox/Skins/Green/images/jbox-icons.png create mode 100644 apps/static/jbox/Skins/Green/images/jbox-loading1.gif create mode 100644 apps/static/jbox/Skins/Green/images/jbox-loading2.gif create mode 100644 apps/static/jbox/Skins/Green/images/jbox-loading3.gif create mode 100644 apps/static/jbox/Skins/Green/images/jbox-title-icon.gif create mode 100644 apps/static/jbox/Skins/Green/jbox.css create mode 100644 apps/static/jbox/Skins/GreyBlue/Desktop.ini create mode 100644 apps/static/jbox/Skins/GreyBlue/images/Thumbs.db create mode 100644 apps/static/jbox/Skins/GreyBlue/images/jbox-button1.png create mode 100644 apps/static/jbox/Skins/GreyBlue/images/jbox-button2.png create mode 100644 apps/static/jbox/Skins/GreyBlue/images/jbox-close1.gif create mode 100644 apps/static/jbox/Skins/GreyBlue/images/jbox-close2.gif create mode 100644 apps/static/jbox/Skins/GreyBlue/images/jbox-content-loading.gif create mode 100644 apps/static/jbox/Skins/GreyBlue/images/jbox-icons-ie6.gif create mode 100644 apps/static/jbox/Skins/GreyBlue/images/jbox-icons.png create mode 100644 apps/static/jbox/Skins/GreyBlue/images/jbox-loading1.gif create mode 100644 apps/static/jbox/Skins/GreyBlue/images/jbox-loading2.gif create mode 100644 apps/static/jbox/Skins/GreyBlue/images/jbox-loading3.gif create mode 100644 apps/static/jbox/Skins/GreyBlue/images/jbox-title-icon.gif create mode 100644 apps/static/jbox/Skins/GreyBlue/jbox.css create mode 100644 apps/static/jbox/Skins/Purple/Desktop.ini create mode 100644 apps/static/jbox/Skins/Purple/images/Thumbs.db create mode 100644 apps/static/jbox/Skins/Purple/images/jbox-button1.png create mode 100644 apps/static/jbox/Skins/Purple/images/jbox-button2.png create mode 100644 apps/static/jbox/Skins/Purple/images/jbox-close1.gif create mode 100644 apps/static/jbox/Skins/Purple/images/jbox-close2.gif create mode 100644 apps/static/jbox/Skins/Purple/images/jbox-content-loading.gif create mode 100644 apps/static/jbox/Skins/Purple/images/jbox-icons-ie6.gif create mode 100644 apps/static/jbox/Skins/Purple/images/jbox-icons.png create mode 100644 apps/static/jbox/Skins/Purple/images/jbox-loading1.gif create mode 100644 apps/static/jbox/Skins/Purple/images/jbox-loading2.gif create mode 100644 apps/static/jbox/Skins/Purple/images/jbox-loading3.gif create mode 100644 apps/static/jbox/Skins/Purple/images/jbox-title-icon.gif create mode 100644 apps/static/jbox/Skins/Purple/jbox.css create mode 100644 apps/static/jbox/Skins/Red/Desktop.ini create mode 100644 apps/static/jbox/Skins/Red/images/Thumbs.db create mode 100644 apps/static/jbox/Skins/Red/images/jbox-button1.png create mode 100644 apps/static/jbox/Skins/Red/images/jbox-button2.png create mode 100644 apps/static/jbox/Skins/Red/images/jbox-close1.gif create mode 100644 apps/static/jbox/Skins/Red/images/jbox-close2.gif create mode 100644 apps/static/jbox/Skins/Red/images/jbox-content-loading.gif create mode 100644 apps/static/jbox/Skins/Red/images/jbox-icons-ie6.gif create mode 100644 apps/static/jbox/Skins/Red/images/jbox-icons.png create mode 100644 apps/static/jbox/Skins/Red/images/jbox-loading1.gif create mode 100644 apps/static/jbox/Skins/Red/images/jbox-loading2.gif create mode 100644 apps/static/jbox/Skins/Red/images/jbox-loading3.gif create mode 100644 apps/static/jbox/Skins/Red/images/jbox-title-icon.gif create mode 100644 apps/static/jbox/Skins/Red/jbox.css create mode 100644 apps/static/jbox/Skins/ShareBlue/Desktop.ini create mode 100644 apps/static/jbox/Skins/ShareBlue/images/Thumbs.db create mode 100644 apps/static/jbox/Skins/ShareBlue/images/jbox-button1.png create mode 100644 apps/static/jbox/Skins/ShareBlue/images/jbox-button2.png create mode 100644 apps/static/jbox/Skins/ShareBlue/images/jbox-close1.gif create mode 100644 apps/static/jbox/Skins/ShareBlue/images/jbox-close2.gif create mode 100644 apps/static/jbox/Skins/ShareBlue/images/jbox-content-loading.gif create mode 100644 apps/static/jbox/Skins/ShareBlue/images/jbox-icons-ie6.gif create mode 100644 apps/static/jbox/Skins/ShareBlue/images/jbox-icons.png create mode 100644 apps/static/jbox/Skins/ShareBlue/images/jbox-loading1.gif create mode 100644 apps/static/jbox/Skins/ShareBlue/images/jbox-loading2.gif create mode 100644 apps/static/jbox/Skins/ShareBlue/images/jbox-loading3.gif create mode 100644 apps/static/jbox/Skins/ShareBlue/images/jbox-title-icon.gif create mode 100644 apps/static/jbox/Skins/ShareBlue/jbox.css create mode 100644 apps/static/jbox/Skins/ShareBrown/Desktop.ini create mode 100644 apps/static/jbox/Skins/ShareBrown/images/Thumbs.db create mode 100644 apps/static/jbox/Skins/ShareBrown/images/jbox-button1.png create mode 100644 apps/static/jbox/Skins/ShareBrown/images/jbox-button2.png create mode 100644 apps/static/jbox/Skins/ShareBrown/images/jbox-close1.gif create mode 100644 apps/static/jbox/Skins/ShareBrown/images/jbox-close2.gif create mode 100644 apps/static/jbox/Skins/ShareBrown/images/jbox-content-loading.gif create mode 100644 apps/static/jbox/Skins/ShareBrown/images/jbox-icons-ie6.gif create mode 100644 apps/static/jbox/Skins/ShareBrown/images/jbox-icons.png create mode 100644 apps/static/jbox/Skins/ShareBrown/images/jbox-loading1.gif create mode 100644 apps/static/jbox/Skins/ShareBrown/images/jbox-loading2.gif create mode 100644 apps/static/jbox/Skins/ShareBrown/images/jbox-loading3.gif create mode 100644 apps/static/jbox/Skins/ShareBrown/images/jbox-title-icon.gif create mode 100644 apps/static/jbox/Skins/ShareBrown/jbox.css create mode 100644 apps/static/jbox/Skins/ShareGreen/Desktop.ini create mode 100644 apps/static/jbox/Skins/ShareGreen/images/Thumbs.db create mode 100644 apps/static/jbox/Skins/ShareGreen/images/jbox-button1.png create mode 100644 apps/static/jbox/Skins/ShareGreen/images/jbox-button2.png create mode 100644 apps/static/jbox/Skins/ShareGreen/images/jbox-close1.gif create mode 100644 apps/static/jbox/Skins/ShareGreen/images/jbox-close2.gif create mode 100644 apps/static/jbox/Skins/ShareGreen/images/jbox-content-loading.gif create mode 100644 apps/static/jbox/Skins/ShareGreen/images/jbox-icons-ie6.gif create mode 100644 apps/static/jbox/Skins/ShareGreen/images/jbox-icons.png create mode 100644 apps/static/jbox/Skins/ShareGreen/images/jbox-loading1.gif create mode 100644 apps/static/jbox/Skins/ShareGreen/images/jbox-loading2.gif create mode 100644 apps/static/jbox/Skins/ShareGreen/images/jbox-loading3.gif create mode 100644 apps/static/jbox/Skins/ShareGreen/images/jbox-title-icon.gif create mode 100644 apps/static/jbox/Skins/ShareGreen/jbox.css create mode 100644 apps/static/jbox/Skins/SharePurple/Desktop.ini create mode 100644 apps/static/jbox/Skins/SharePurple/images/Thumbs.db create mode 100644 apps/static/jbox/Skins/SharePurple/images/jbox-button1.png create mode 100644 apps/static/jbox/Skins/SharePurple/images/jbox-button2.png create mode 100644 apps/static/jbox/Skins/SharePurple/images/jbox-close1.gif create mode 100644 apps/static/jbox/Skins/SharePurple/images/jbox-close2.gif create mode 100644 apps/static/jbox/Skins/SharePurple/images/jbox-content-loading.gif create mode 100644 apps/static/jbox/Skins/SharePurple/images/jbox-icons-ie6.gif create mode 100644 apps/static/jbox/Skins/SharePurple/images/jbox-icons.png create mode 100644 apps/static/jbox/Skins/SharePurple/images/jbox-loading1.gif create mode 100644 apps/static/jbox/Skins/SharePurple/images/jbox-loading2.gif create mode 100644 apps/static/jbox/Skins/SharePurple/images/jbox-loading3.gif create mode 100644 apps/static/jbox/Skins/SharePurple/images/jbox-title-icon.gif create mode 100644 apps/static/jbox/Skins/SharePurple/jbox.css create mode 100644 apps/static/jbox/Skins/ShareRed/Desktop.ini create mode 100644 apps/static/jbox/Skins/ShareRed/images/Thumbs.db create mode 100644 apps/static/jbox/Skins/ShareRed/images/jbox-button1.png create mode 100644 apps/static/jbox/Skins/ShareRed/images/jbox-button2.png create mode 100644 apps/static/jbox/Skins/ShareRed/images/jbox-close1.gif create mode 100644 apps/static/jbox/Skins/ShareRed/images/jbox-close2.gif create mode 100644 apps/static/jbox/Skins/ShareRed/images/jbox-content-loading.gif create mode 100644 apps/static/jbox/Skins/ShareRed/images/jbox-icons-ie6.gif create mode 100644 apps/static/jbox/Skins/ShareRed/images/jbox-icons.png create mode 100644 apps/static/jbox/Skins/ShareRed/images/jbox-loading1.gif create mode 100644 apps/static/jbox/Skins/ShareRed/images/jbox-loading2.gif create mode 100644 apps/static/jbox/Skins/ShareRed/images/jbox-loading3.gif create mode 100644 apps/static/jbox/Skins/ShareRed/images/jbox-title-icon.gif create mode 100644 apps/static/jbox/Skins/ShareRed/jbox.css create mode 100644 apps/static/jbox/Skins/jumpserver/Desktop.ini create mode 100644 apps/static/jbox/Skins/jumpserver/images/Thumbs.db create mode 100644 apps/static/jbox/Skins/jumpserver/images/jbox-button1.png create mode 100644 apps/static/jbox/Skins/jumpserver/images/jbox-button2.png create mode 100644 apps/static/jbox/Skins/jumpserver/images/jbox-close1.gif create mode 100644 apps/static/jbox/Skins/jumpserver/images/jbox-close2.gif create mode 100644 apps/static/jbox/Skins/jumpserver/images/jbox-content-loading.gif create mode 100644 apps/static/jbox/Skins/jumpserver/images/jbox-icons-ie6.gif create mode 100644 apps/static/jbox/Skins/jumpserver/images/jbox-icons.png create mode 100644 apps/static/jbox/Skins/jumpserver/images/jbox-loading1.gif create mode 100644 apps/static/jbox/Skins/jumpserver/images/jbox-loading2.gif create mode 100644 apps/static/jbox/Skins/jumpserver/images/jbox-loading3.gif create mode 100644 apps/static/jbox/Skins/jumpserver/images/jbox-title-icon.gif create mode 100644 apps/static/jbox/Skins/jumpserver/jbox.css create mode 100644 apps/static/jbox/Skins/样式说明(以Default皮肤为例).css create mode 100644 apps/static/jbox/Skins2/Blue/Desktop.ini create mode 100644 apps/static/jbox/Skins2/Blue/images/Thumbs.db create mode 100644 apps/static/jbox/Skins2/Blue/images/jbox-close1.gif create mode 100644 apps/static/jbox/Skins2/Blue/images/jbox-close2.gif create mode 100644 apps/static/jbox/Skins2/Blue/images/jbox-content-loading.gif create mode 100644 apps/static/jbox/Skins2/Blue/images/jbox-icons-ie6.gif create mode 100644 apps/static/jbox/Skins2/Blue/images/jbox-icons.png create mode 100644 apps/static/jbox/Skins2/Blue/images/jbox-loading1.gif create mode 100644 apps/static/jbox/Skins2/Blue/images/jbox-loading2.gif create mode 100644 apps/static/jbox/Skins2/Blue/images/jbox-loading3.gif create mode 100644 apps/static/jbox/Skins2/Blue/images/jbox-title-icon.gif create mode 100644 apps/static/jbox/Skins2/Blue/jbox.css create mode 100644 apps/static/jbox/Skins2/Gray/Desktop.ini create mode 100644 apps/static/jbox/Skins2/Gray/images/Thumbs.db create mode 100644 apps/static/jbox/Skins2/Gray/images/jbox-close1.gif create mode 100644 apps/static/jbox/Skins2/Gray/images/jbox-close2.gif create mode 100644 apps/static/jbox/Skins2/Gray/images/jbox-content-loading.gif create mode 100644 apps/static/jbox/Skins2/Gray/images/jbox-icons-ie6.gif create mode 100644 apps/static/jbox/Skins2/Gray/images/jbox-icons.png create mode 100644 apps/static/jbox/Skins2/Gray/images/jbox-loading1.gif create mode 100644 apps/static/jbox/Skins2/Gray/images/jbox-loading2.gif create mode 100644 apps/static/jbox/Skins2/Gray/images/jbox-loading3.gif create mode 100644 apps/static/jbox/Skins2/Gray/images/jbox-title-icon.gif create mode 100644 apps/static/jbox/Skins2/Gray/jbox.css create mode 100644 apps/static/jbox/Skins2/Green/Desktop.ini create mode 100644 apps/static/jbox/Skins2/Green/images/Thumbs.db create mode 100644 apps/static/jbox/Skins2/Green/images/jbox-close1.gif create mode 100644 apps/static/jbox/Skins2/Green/images/jbox-close2.gif create mode 100644 apps/static/jbox/Skins2/Green/images/jbox-content-loading.gif create mode 100644 apps/static/jbox/Skins2/Green/images/jbox-icons-ie6.gif create mode 100644 apps/static/jbox/Skins2/Green/images/jbox-icons.png create mode 100644 apps/static/jbox/Skins2/Green/images/jbox-loading1.gif create mode 100644 apps/static/jbox/Skins2/Green/images/jbox-loading2.gif create mode 100644 apps/static/jbox/Skins2/Green/images/jbox-loading3.gif create mode 100644 apps/static/jbox/Skins2/Green/images/jbox-title-icon.gif create mode 100644 apps/static/jbox/Skins2/Green/jbox.css create mode 100644 apps/static/jbox/Skins2/Pink/Desktop.ini create mode 100644 apps/static/jbox/Skins2/Pink/images/Thumbs.db create mode 100644 apps/static/jbox/Skins2/Pink/images/jbox-close1.gif create mode 100644 apps/static/jbox/Skins2/Pink/images/jbox-close2.gif create mode 100644 apps/static/jbox/Skins2/Pink/images/jbox-content-loading.gif create mode 100644 apps/static/jbox/Skins2/Pink/images/jbox-icons-ie6.gif create mode 100644 apps/static/jbox/Skins2/Pink/images/jbox-icons.png create mode 100644 apps/static/jbox/Skins2/Pink/images/jbox-loading1.gif create mode 100644 apps/static/jbox/Skins2/Pink/images/jbox-loading2.gif create mode 100644 apps/static/jbox/Skins2/Pink/images/jbox-loading3.gif create mode 100644 apps/static/jbox/Skins2/Pink/images/jbox-title-icon.gif create mode 100644 apps/static/jbox/Skins2/Pink/jbox.css create mode 100644 apps/static/jbox/Skins2/Purple/Desktop.ini create mode 100644 apps/static/jbox/Skins2/Purple/images/Thumbs.db create mode 100644 apps/static/jbox/Skins2/Purple/images/jbox-close1.gif create mode 100644 apps/static/jbox/Skins2/Purple/images/jbox-close2.gif create mode 100644 apps/static/jbox/Skins2/Purple/images/jbox-content-loading.gif create mode 100644 apps/static/jbox/Skins2/Purple/images/jbox-icons-ie6.gif create mode 100644 apps/static/jbox/Skins2/Purple/images/jbox-icons.png create mode 100644 apps/static/jbox/Skins2/Purple/images/jbox-loading1.gif create mode 100644 apps/static/jbox/Skins2/Purple/images/jbox-loading2.gif create mode 100644 apps/static/jbox/Skins2/Purple/images/jbox-loading3.gif create mode 100644 apps/static/jbox/Skins2/Purple/images/jbox-title-icon.gif create mode 100644 apps/static/jbox/Skins2/Purple/jbox.css create mode 100644 apps/static/jbox/Skins2/Yellow/Desktop.ini create mode 100644 apps/static/jbox/Skins2/Yellow/images/Thumbs.db create mode 100644 apps/static/jbox/Skins2/Yellow/images/jbox-close1.gif create mode 100644 apps/static/jbox/Skins2/Yellow/images/jbox-close2.gif create mode 100644 apps/static/jbox/Skins2/Yellow/images/jbox-content-loading.gif create mode 100644 apps/static/jbox/Skins2/Yellow/images/jbox-icons-ie6.gif create mode 100644 apps/static/jbox/Skins2/Yellow/images/jbox-icons.png create mode 100644 apps/static/jbox/Skins2/Yellow/images/jbox-loading1.gif create mode 100644 apps/static/jbox/Skins2/Yellow/images/jbox-loading2.gif create mode 100644 apps/static/jbox/Skins2/Yellow/images/jbox-loading3.gif create mode 100644 apps/static/jbox/Skins2/Yellow/images/jbox-title-icon.gif create mode 100644 apps/static/jbox/Skins2/Yellow/jbox.css create mode 100644 apps/static/jbox/Skins2/jumpserver/Desktop.ini create mode 100644 apps/static/jbox/Skins2/jumpserver/images/Thumbs.db create mode 100644 apps/static/jbox/Skins2/jumpserver/images/jbox-close1.gif create mode 100644 apps/static/jbox/Skins2/jumpserver/images/jbox-close2.gif create mode 100644 apps/static/jbox/Skins2/jumpserver/images/jbox-content-loading.gif create mode 100644 apps/static/jbox/Skins2/jumpserver/images/jbox-icons-ie6.gif create mode 100644 apps/static/jbox/Skins2/jumpserver/images/jbox-icons.png create mode 100644 apps/static/jbox/Skins2/jumpserver/images/jbox-loading1.gif create mode 100644 apps/static/jbox/Skins2/jumpserver/images/jbox-loading2.gif create mode 100644 apps/static/jbox/Skins2/jumpserver/images/jbox-loading3.gif create mode 100644 apps/static/jbox/Skins2/jumpserver/images/jbox-title-icon.gif create mode 100644 apps/static/jbox/Skins2/jumpserver/jbox.css create mode 100644 apps/static/jbox/Skins2/样式说明(以Green皮肤为例).css create mode 100644 apps/static/jbox/i18n/jquery.jBox-zh-CN.js create mode 100644 apps/static/jbox/jquery.jBox-2.3.min.js create mode 100644 apps/static/js/jquery-migrate-1.1.1.min.js create mode 100644 apps/static/js/jquery.jBox-2.3.min.js create mode 100644 apps/static/js/jquery.jBox-zh-CN.min.js create mode 100644 apps/static/js/plugins/sweetalert/sweetalert.min.js diff --git a/apps/assets/migrations/0001_initial.py b/apps/assets/migrations/0001_initial.py index a63d3d984..e10b3c6c0 100644 --- a/apps/assets/migrations/0001_initial.py +++ b/apps/assets/migrations/0001_initial.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.10 on 2016-09-08 03:02 +# Generated by Django 1.10.1 on 2016-09-12 09:51 from __future__ import unicode_literals from django.db import migrations, models @@ -43,7 +43,7 @@ class Migration(migrations.Migration): ('port', models.IntegerField(blank=True, null=True, verbose_name='Port')), ('username', models.CharField(blank=True, max_length=16, null=True, verbose_name='Admin user')), ('password', models.CharField(blank=True, max_length=256, null=True, verbose_name='Admin password')), - ('mac_addr', models.CharField(blank=True, max_length=20, null=True, verbose_name='Mac address')), + ('mac_address', models.CharField(blank=True, max_length=20, null=True, verbose_name='Mac address')), ('brand', models.CharField(blank=True, max_length=64, null=True, verbose_name='Brand')), ('cpu', models.CharField(blank=True, max_length=64, null=True, verbose_name='CPU')), ('memory', models.CharField(blank=True, max_length=128, null=True, verbose_name='Memory')), @@ -57,7 +57,7 @@ class Migration(migrations.Migration): ('is_active', models.BooleanField(default=True, verbose_name='Is active')), ('date_created', models.DateTimeField(auto_now=True, null=True, verbose_name='Date added')), ('comment', models.CharField(blank=True, max_length=128, null=True, verbose_name='Comment')), - ('admin_user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='assets.AdminUser', verbose_name='Admin user')), + ('admin_user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='assets', to='assets.AdminUser', verbose_name='Admin user')), ], options={ 'db_table': 'asset', @@ -129,21 +129,21 @@ class Migration(migrations.Migration): fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=128, unique=True, verbose_name='Name')), - ('username', models.CharField(blank=True, max_length=16, verbose_name='Username')), - ('password', models.CharField(blank=True, max_length=256, verbose_name='Password')), - ('protocol', models.CharField(default='ssh', max_length=16, verbose_name='Protocol')), - ('private_key', models.CharField(blank=True, max_length=4096, verbose_name='SSH private key')), - ('public_key', models.CharField(blank=True, max_length=4096, verbose_name='SSH public key')), - ('is_default', models.BooleanField(default=True, verbose_name='As default')), + ('username', models.CharField(max_length=16, verbose_name='Username')), + ('_password', models.CharField(blank=True, max_length=256, verbose_name='Password')), + ('protocol', models.CharField(choices=[('ssh', 'ssh')], default='ssh', max_length=16, verbose_name='Protocol')), + ('_private_key', models.CharField(blank=True, max_length=4096, verbose_name='SSH private key')), + ('_public_key', models.CharField(blank=True, max_length=4096, verbose_name='SSH public key')), + ('as_default', models.BooleanField(default=False, verbose_name='As default')), ('auto_push', models.BooleanField(default=True, verbose_name='Auto push')), ('auto_update', models.BooleanField(default=True, verbose_name='Auto update pass/key')), - ('sudo', models.TextField(blank=True, max_length=4096, verbose_name='Sudo')), - ('shell', models.CharField(blank=True, max_length=64, verbose_name='Shell')), + ('sudo', models.TextField(default='/user/bin/whoami', max_length=4096, verbose_name='Sudo')), + ('shell', models.CharField(default='/bin/bash', max_length=64, verbose_name='Shell')), ('home', models.CharField(blank=True, max_length=64, verbose_name='Home')), - ('uid', models.IntegerField(blank=True, verbose_name='Uid')), - ('date_created', models.DateTimeField(auto_now=True, null=True)), + ('uid', models.IntegerField(blank=True, null=True, verbose_name='Uid')), + ('date_created', models.DateTimeField(auto_now=True)), ('created_by', models.CharField(blank=True, max_length=32, verbose_name='Created by')), - ('comment', models.CharField(blank=True, max_length=128, verbose_name='Comment')), + ('comment', models.TextField(blank=True, max_length=128, verbose_name='Comment')), ], options={ 'db_table': 'system_user', @@ -177,7 +177,7 @@ class Migration(migrations.Migration): migrations.AddField( model_name='asset', name='system_user', - field=models.ManyToManyField(blank=True, to='assets.SystemUser', verbose_name='System User'), + field=models.ManyToManyField(blank=True, related_name='assets', to='assets.SystemUser', verbose_name='System User'), ), migrations.AddField( model_name='asset', diff --git a/apps/assets/templates/assets/admin_user_list.html b/apps/assets/templates/assets/admin_user_list.html index eeb4587bd..2031dfa49 100644 --- a/apps/assets/templates/assets/admin_user_list.html +++ b/apps/assets/templates/assets/admin_user_list.html @@ -34,7 +34,7 @@ {% trans 'Refresh' %} {% trans 'Update' %} - {% trans 'Delete' %} + {% trans 'Delete' %} {% endfor %} diff --git a/apps/assets/templates/assets/asset_group_list.html b/apps/assets/templates/assets/asset_group_list.html index c5a4380ba..c945127cd 100644 --- a/apps/assets/templates/assets/asset_group_list.html +++ b/apps/assets/templates/assets/asset_group_list.html @@ -30,7 +30,7 @@ {{ asset_group.comment|truncatewords:8 }} {% trans 'Update' %} - {% trans 'Delete' %} + {% trans 'Delete' %} {% endfor %} diff --git a/apps/assets/templates/assets/idc_list.html b/apps/assets/templates/assets/idc_list.html index 4012331fc..da477c758 100644 --- a/apps/assets/templates/assets/idc_list.html +++ b/apps/assets/templates/assets/idc_list.html @@ -28,8 +28,20 @@ {{ idc.address }} {% trans 'Update' %} - {% trans 'Delete' %} + + + {% trans 'Delete' %} {% endfor %} {% endblock %} +{% block custom_foot_js %} + +{% endblock %} diff --git a/apps/assets/templates/assets/system_user_list.html b/apps/assets/templates/assets/system_user_list.html index 37be0c3fc..ac8672347 100644 --- a/apps/assets/templates/assets/system_user_list.html +++ b/apps/assets/templates/assets/system_user_list.html @@ -36,7 +36,7 @@ {% trans 'Refresh' %} {% trans 'Update' %} - {% trans 'Delete' %} + {% trans 'Delete' %} {% endfor %} diff --git a/apps/assets/views.py b/apps/assets/views.py index 04f4ae053..5b752d8ec 100644 --- a/apps/assets/views.py +++ b/apps/assets/views.py @@ -186,16 +186,25 @@ class IDCCreateView(AdminUserRequiredMixin, CreateView): class IDCUpdateView(AdminUserRequiredMixin, UpdateView): - pass - + model = IDC + form_class = IDCForm + template_name = 'assets/idc_create.html' + context_object_name = 'IDC' + success_url = reverse_lazy('assets:idc-list') + def form_valid(self, form): + IDC = form.save(commit=False) + IDC.save() + return super(IDCUpdateView, self).form_valid(form) class IDCDetailView(AdminUserRequiredMixin, DetailView): pass -class IDCDeleteView(AdminUserRequiredMixin, DeleteView): - pass +class IDCDeleteView(AdminUserRequiredMixin, DeleteView): + model = IDC + template_name = 'assets/delete_confirm.html' + success_url = reverse_lazy('assets:idc-list') class AdminUserListView(AdminUserRequiredMixin, ListView): model = AdminUser @@ -293,7 +302,7 @@ class AdminUserDetailView(AdminUserRequiredMixin, SingleObjectMixin, ListView): class AdminUserDeleteView(AdminUserRequiredMixin, DeleteView): model = AdminUser template_name = 'assets/delete_confirm.html' - success_url = 'assets:admin-user-list' + success_url = reverse_lazy('assets:admin-user-list') class SystemUserListView(AdminUserRequiredMixin, ListView): @@ -384,7 +393,7 @@ class SystemUserDetailView(AdminUserRequiredMixin, DetailView): class SystemUserDeleteView(AdminUserRequiredMixin, DeleteView): model = SystemUser template_name = 'assets/delete_confirm.html' - success_url = 'assets:system-user-list' + success_url = reverse_lazy('assets:system-user-list') class SystemUserAssetView(AdminUserRequiredMixin, SingleObjectMixin, ListView): diff --git a/apps/static/css/images/jbox-button1.png b/apps/static/css/images/jbox-button1.png new file mode 100644 index 0000000000000000000000000000000000000000..7d8a6a4b21406876efb7462317f1d98ba2c83cdb GIT binary patch literal 338 zcmV-Y0j>UtP)@$vin z`{?NC&(F`?+}y^-#?#Z&{r&ym;NZi-6dkG1Tgy;Teq!|TN@q$hN^zs(J=OPZ`DSBcr?&2tR;wsJ}T5%FD z(TJOPh`$?KF%&CNi?t}lOpL``RAMOxq7YND5eqR9BhgoPGRHF`gEB26Bg2!Bm}Dg| ksfkX0J|bW89sUtu0DUGDT{S~8^Z)<=07*qoM6N<$f_p@!Dp-0 z!#9IXf~;YY_5cVWio)+0gc7GfWRh_$a)h~UkJnY*YR`kqs3_Mq8Tco}rI#j`A#~4Y HBme+AR~tmF literal 0 HcmV?d00001 diff --git a/apps/static/css/images/jbox-icons.png b/apps/static/css/images/jbox-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..c35abcffc91f6cc505418870b6b0d8bf5a712cf6 GIT binary patch literal 6588 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
  • gTCn<{Nls)_0O<$R-M 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 WTtUW$ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Blue/images/OneNote 目录.onetoc2 b/apps/static/jbox/Skins/Blue/images/OneNote 目录.onetoc2 new file mode 100644 index 0000000000000000000000000000000000000000..c0d313bbffe5e6a72fa5600a2fff8fb9f4fff470 GIT binary patch literal 3656 zcmZ3e|KIuM`!b(-j|5(YE0x7_S5M&k@QL4JL9Nm$-?zsWGoS(cyR!tOCw}!@dO>{R z+Y{?(XBTot5{RG}n{M)6zr-qC z1XUL*uV~^zeq@X)JIWgkf#DGXN4|Xjy0I#3i2&3)961bA8yHoxCcZqB!kFN`tgP#G z)$5WtMxZoHLPG;K@!=5=qrMmofngp3$aSXoF5{-dqKCR+`5u(PFHdC(0P&fCSP+Oo zVj!H}Im;Ks2Z;+o#X#aV$@dn6_*_si(`=DsAafLqhQMeD43Q9k)&HRU4FWtkDtQ4J zhN(*!RUnFnDT%FogoO{NoC5)o0^E%t=@$(R(#KBO%nD!WHLH9xgTjH=s-SWb8&K%# ze)J>l3?oEdQKX@vMg-}tvV%9uGrWh#=8sc@1I4Wi6br4o`%nVr(06on)ek|YWl4n>^EkW3jO zWS%m`F`mO2-ruR)^W1v>_dY${&-=We`~F*e&)#S6HSe{5YyEz|b>7x<_9SKr_9EW} zO@t01QA3F^uU4{s$v4=@1KXU+sH z1DF98U^%b?U;_jJb^wL|!U=Ez+yHeP@W7E5-~;#p0bmtCy(a`mVL${B1y%!VfVF@a zAP!LD{R;oN9xz5+;m;GEg${BOj_!yrJcS<*yf9+E)|T#HBs(*9M2Ks54GlHk8TBub z<^M&Re|4K4p{4m+KK1yo;(xt=kvf1OXd{Q9)rXK1&}h+TY5jrlp=zpUIEB|5RB)l>y(s|5W)wl>z^+_n#^+ zs50P3-hT;*CkaRa>wxuuG#~?P0AzuUfE=(1ppGAEA1VTy0VO~gPytkdabOFu6`&3| z4L}n>0d2s2U^}1<>;QBCT|f`m3Frd`z%F1nK$TB>;b;i#1B?J;U_WpGFab;fGr%0M z04xD3z#6atYymsqAaDpc4A=ulfTO@MfI1ebWjVsp32+8Z04~5uz!f+JxB>2f2jB^K z0jB|PfSR8AHv0koKmZU31OaH^46p*AjsZV-pp^HN9)!a{S6>&QfkAbUT0u$&bPXLX zE%hG)J^V8)V_=}CXJBDsVqCU@WyOl+EX$X(vT<>+vT?F4U(UhH!MT!~hlghcJ0CwU zH$N9Q4>vUv8ahZr&%n&Uz|76MoR$0E4wRP&=Q3)g=xEj=w45|_oHUd&>O4Zj0JWu7 z__shq3w2~93o)g4W*%@qot>#)*505!hM9ElYwiEycXk1qeDz<-MAIbMkFp1 z+n!azW85$$u6Wozn3;u_k6%DgLQ-nodg;wd$||aATeNrR=<4m%H`sr`#MI2(!qWc8 z(PIwB9i2Qpy-s`k`1+kYf8k=trOTm_Q8%J*#@vd%eLv|z^23xzscG3cxtP5CXU_{t zUzL?tRKBiy)7aGfuBG*TTYGO`|G?nT@W+u+-1N-s-24Kbut;qe4MO*&S^sF+ckSYY zcG1$))6p|g+eJg`4bXAYGpvzk+b)mH8M?c3BH`(^6a?|IuScF923 zATc{voPFC)`u+??zZIUgjud1qR=6fd-OJi$uR$G)!VP1ycG=7!%Y~+4XNgZu^PBJ8 z@2$NbxaIM@12cP>#@gK{@mIJ=uA3Z5f zvyX!GCaR+-h-M?Yr)f6@87M$~e_=wsX@X!(NNEl-X&@EdM%T|#kTY`Roz~CLgav#~ zCXP^!bC_Rf`&4q#!T(D2TYwALcUlU@E1o zNUA)tT!<$9!L964@pxuaQ=^+EK1U+FX=Yr+x#&2SnO20{4#Y|iVG7L+!`1n`1|L0l zCLDG|N{;fH?VuZ_krEhr)}Na3L^ALe>DUdY1IAaA`7zb5my-(uH%je2-`9M|;n+g) zn}K$1`!X`r{pka{MQvxRHDd``?(q`13`WEG8%O9Uh^;cFFmDDmJxM_V(er5?%cIav zW@Yv5?$gb;+bM`6AxU~JdZUT+N31w1aMj2iSJX&18QM5;z~u!6NkK1-Q4ow-GC37R zpdipi6lA_qrKNS6j2`%1d=$|sR;4{s{n_~p-P8FRdL%{B8dEP-lcw`26M1HM^wL4| zWFj_!u+lXt(6^L)&+7#}uE6Z>e94j+ECIUxr_Yy1V5q%pxb z?9G5Uwfp*XclG7nHHU@IN+s4cMXJ^hr(rglsceos-MTl@+tTGz^`}{EN=V9v19#Uw z#*j}F+ulzm1-f-f;>y}Z^1W7Ao+e3G(hg1gmU5Mw1g|}_w~wEJpAhbc>>Lh2;|jV< z;>F&LbG_ch7Qvc3b9sna_GRolgEIMdCJREts$$`oWHUi^;yHinXTGK9B zgH+uENdi@lvIX-?@sAA^n-^L{p0?qD&*@QS|$3gh30DtznkOF?Uaz)u=&dI zj5+3wDaQwoM5f-~$>*F~+tYoSDaf{T88R`G zf^Z(_2`t`-yF@`A-Jp&MOOc~~xH@@@lTs^LSS_0GP>`xyqdg;i+!9Lj_8r;NV$*!& zvzBHgf*pD7wKeFEJjv+pXbRFNZK!Zfp#atLq_SWsfpC|CwD|;e2ZQWD{VvkFCDjej znsVP?I_O=_bYk>zQnLt0CNg)Tq13E$Zs*g#M7xkXf~K zr2d21lkmcmiye{$o!D@1PbNMzcPhAHd7(27Q$B9qw)uMMq42opl|_1K$8R6Ye^iM^ zA9C^XIcruMDIpP@H^^F9L+4IY$1ZmJPEArxigZqbilS?5C!u(WSAwCdi;EtYR8OrdDj&)yp z;n;&+TDFIRJTOygxOg|^YSQ|x`NnsGT;om}<``XlQe1;C5kn3ExX+8yM+-f;1b0;^)`bL0*5X+K!pJ31UupR)7a(`_w~l-B z!%X5uNGm;Tn|7mkn5_5iiLAxOqfD;4erC6h&-jd4hg~b9Aj?NJ`J0K_Y?u?912?0S zKN#%R6(W5|Lb~O9Pifk}tm=Dq4e#uF0X3_H9^3+gE^Ob_ty}H0$(d0wT1O6M@nnvt zzA^2pD)f6l@2Z^BS?$wZa*muZ3|%b~I{ggmjJmL2KP$jA5!;dVe4pln@^U|uxB(UN zrYVi`+=dSw)xH}dYL|!T?LT@-TZV0!*mXV2CRT%Fbz9*&*`Vq8u_c_?%JZ2Q&lh1- zR#jL%EYKY6P!{XcyY#Xr&a#_==*v34#VEY!e7w5DwGd9WAc2lcMiN^ylJErHK zdLFI|H@~oF^s)uR2_+7js5VovNs3xMa?>)a_J=-r(v#yCJ9n%R=OtirLrT zX}7{B-jLJTS*SXl*C$SPNcR9jZx?ZeIcL>Yg$e8a)%oq+j7Q`W1Nf^p1eG(3&!KQK zH;dQe2{-~-eOGUF^(1Ti@x{DY`snX^Hk*eaeKKrPq@GayvkFE)ooV?Dh!Y`ymxz)8s zNa-#h)^1`(TJx^>vZQ(&6{6Nxru$~(-}kw)6W5iJYW`7SOgYATUzb>ib%{vl({cgb z8R4BL$_$aKn}*fsJn{AAK9xk7YFK9pSWpn$n>mHigaePSUX;Ass-&;vjq^ zGfIw$TWKnw+mve2rAPZ-93*Nqvy;l6K*keVfqe-)T^5F}6oiFLQh(pB(cP}>Ai!Uz z-fmppduVS^ozf~t3R0a`gnenf3B%oV5``B+*YwQEEkAy{ysZG+FuODsb>`S}jJ{A0 zqPCg?EDuy0A*hP~fU1c_HdVgo1Y3_kq6K=n0w|F?Kquc0y16Xq*lKX524|b$>L$1= z3*S{BCiSiY=G>~E>O^G(XHu|2+tPqhYszK9^5n^TVGRQ;}`FL`@H zNmPrO>}T82A<*6(KbN%;%5(gz!+$B0YEeZxi4_9hlxhDtl?UYU`#MrB7*y*k(s-Kv z?KklcgJ$muf7DieTTf~lCTg1OO&h5_{?8uyXS-aDH#mG>FRFDH$^NSU7eKK;qyK+R zUjh&1XVU+t?FVcK+b{dUXS>MX-+rJMKXiQHV4}gfv*(X#&7Z>+>k($xiVEPcX?c7fy||`&90Kp&`qJ@vGa+}h z_#J10TKc5;A_lE(Eq?02jP$4T+!H5FJY(WAlR=4exb#B5x7tN{$t>D#PqQRPxlj## ziUz-&mnL@ayByqPUv4*BfZU2a7LmpA^Oy2y__=x_X|IDI)^FeuwE3e%Q8HYy7%XN+M z?Mv=9QC;nAcKfUA9UCwB1$; zk5Mg^a=sA1@A%uyBQjz{lBNx!-{ zc9??XiV4v!1SY)5^s0R`-jyyn=&E^@kd`LB#TET>T9galQQ6I7XH__rUMhPt=G2-c zhR5f;*A86UBxUnl7;7!~kt{^i!RehPdN}k@5Z=y??phC)ssaJ++!bb;*0*{#(Gk2D zpQWyCCDV+yFO86eozpF+tu38(cBihOAB;LC|Lm^2vq$g3dAVWg=^p z>;N|fv8U(ipn_AgXiC#|?(K2d7LErZ-(% z7{lHV#eZTW^GXp<45_)ULZ^k`(%D%k$m{i*xkkFH$OfU^J$Cm*|72zJb^VeD^WooN z{SF?$U+ee(BkOloT+No6+qETmQD)|$x=*jrtq#-Mdby2g(SN%t#_(NFBZqAFrJ>^J z>@uZ_wRU^&CXlho-1}&hE@rwu(B&E{^RP4UmS=Ul6w{Og?1@j_1>-?_OYLq6ft)oZOpM=u#x+vWZ~vKcRQ)Zce* z=*>Xt7j*RqeWB}Ul(w?kE_1nuDZp`0pDnOhutp5;y&j<;Eg2!D^92{;pF8s}E09*t@fJ*>%4?!p#uK-tp zFd!Vb23!XsfJh(;xB)~1H-Q-777z>E2JQfNfjA%@NC55ui2${XBse|*l7WXn3h)R> z1=4`Wz!M-H$N(~dr$82v4dej100zhd@_}c-bD#hy1YQ8tvWnq|1zrLrKq>GFCv z=m!RXL0||N20j8Kz$ie?hsp$;e*z|fDF6phum5cLD*xH({~q$69TEK{|Nn2u{|O>f z&(?&ie78q87Ksuif>9Vt^KLG?11GX>FvmU>qPZ*dsY;5*B1HQ>-a23-p3p-QGsFq` zCC_@#pBhzo<8kc8FQ&=?P-b`Vw^qH{*N3GO=%8IQF5=wTi53cyd3#Y3@n_KITI= z1FM%~)@#p;CaN}-!MZ`C*R}TP?doOcc1H7)xB5tvM;mJ~$2YoYHYh#V#r%Ai_l$_6 zT1nL5yZu7a7w8bPI_)T(`OHPK!}vQ=(WpLV+}9>={6$`O`sCn|7ks@Tua?(eTMW6} zpl-xRl-e$r_ujD}LUNDGbnTYQZBMhM&%9LjJ}Dk;a@ss-4gO^Rd=UOJZ(MKvsz9vW z(>xd3O$}J1k&p$}7iY=Y`nDOr_Ol zCr|8f-xMu7WLkPsU0z`6(i?5*r&&+NH04QY#S)HgddVZLwzAK%taP2%HNNfUH@a0X ze~jhmx=lOVH-)C%Lu6hr2yq`y$i*h0>lZ(e_(;izj~YKon%isliGoPK8<}!#StxY9 zS@ok6%UAg!$@uq>AFF?@AAj2y_xHE|ZU`Q2ICx1ZEr%XSkoE0Lm@kwg%-Ai>VoWQ+ zH2kK^{>g`mBVksD%NhAr3$3WwtNHLD`DFt6Tnu_)2>jMzEp@!7-R-Usgc=?VayN_i zl8+=fXT$yiB?^MwrPn@=9j--BHa4T*ucRPv-6zS!4sh@lpq|2F^WI=Li2$CuelPXM zgqVJ^jt6!C9YTl<%%~;@w311(qW{bZRKJ6Uuy3pyyEFrCw~CM7RHESxHZ}+~AT&w% zxe9o?XAVIdn6{Gj@aR~nueEOYM`wu6(^HUHp+aaB*o25DuZ=TPkdJEMdJF>JC%#kY za|5*MC`bfZbV&bey4c*WT785TIoqf%?&36H5 z?sjR$ezd^Cp0g{ioqTl4bkAjq1F_9QyPu~&+ z5ygW!g878#EPoRPnIxk7jU3VS*GMwN+6~x`>tVY{0`am+hnL(UFFdiSweaA>8|FKA zkuThVE?kxe4<5r#lz57MYY$Hr3#|=4)rXZE%&6ajEP*(#AvI$1iy%gA4 zhMpGxwzYcS=HHC^HV5>#)%~r0rPbu%1hW2LZm&);Ga3P%dEKt|yn$-OY5pI4C&Gp*Qz z+cK{IHflPaN$HgFkli!bfr726OS6V;b&jrjMCjD-^_Bl^|HuFD_HPx?AO1@C8UN2V zD6j(73)GY8HU11N}%wMG)z0`D#Cs;7{UwZ9llbf4Ka1i2K$5^CwyV z@U7qLem|V(w}^k^{o_kA;Qz1!Vb0AeS>bpvTi;ZT^;xGFtzIWnG5hd=bh5ZDUaq3v z+0`vjIig6n)<7fj%(f~qI_#s7J-FeslL3nTOM&~VB5l+%lHwkO?c&+@O8jiS)@{R; z$2|gega4!MH~+`hiiTj?GuuAU)H7mZvUuF;FjNP~`Y#TUyh5p?&Q>NfQEdVK{h4?@ zby?wAL?DCP_u#w~ksMu)Kav6tkXd{v@f-igiiDT*N=*Sfr*^d0pXtlP zHoVw+p>?#c}wWik~;$Bfua zmUJ_GIPRxZ(;8}jbDT3@gNA~j(mlN0ZGGsBnonR@dAy3)hU`5f#+i;3Y1Od{hz>{m zi4SDM?|dLdE`b{hn9iwd_ZhNwIOZ?rrnS2eyLKDxere#*5WGOYuu#9Z5GAT9vuA3o zbgC-lk$*=i@7lIi?#%TA>?78vBT`_uHrES##zZuCM9HdT5B# zWnZS@o#;J8gRQcjwnber>IE}p1?1oSAQSzg3x4NHBnrouRQENqac|UHwsow`USBqTOdF=(E)K z z2s^t+4{EMo6fPw-%sxT!!ZIo}5dG+W=&Xn6!j||DWj;J^j-44@d4+^dO|Mu=8PVZ} zwbjCwpx|<}plwPVY!iK5nlSek^w?Rab(x_(nZ1Y6WBqD-4J*;36BMKi){YHRA;e(5 zF%ko}aVcyRH?ty&4lsScCi!<{=vV#sXZKJ2TL1j|{nQ`)GVEXde(Kl!_iO(9HUIsZ z|Nd9!zdzn{{QZ7oX6m%+uiNtN9_6p|=P&=$uiqd4;Sa0-XMTVD%m4I$!2k67-%QKrE-xibfFic*IJHO%471GxY1WxA-&^aGD<*p`V zrWv%-hyQK@1KuaWZu}7nA3B1~QMaNX+XENK3~k_KSVVpIU0A4UQa6)KgPInS-#pS; znr${AL3U6QExks+qa>=NSX5V-W#rTfbboa7$n@p}jsOw!o05y}`f5@nw!S2C4bGLs zywHv3a{#Ssl!9C!D)z}>`9H?ww+prJ$%xyK&n{bA#*X#m+QGBKU9B^gW`O3xNslvr zQ|8tIxEpF8o3rnVJdM;}FWK3i{kD=PG-Zq8P}&2+QCDA$*3`eEKmGWV`W5qkq6hv9 D1Ij5$ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Blue/images/jbox-button1.png b/apps/static/jbox/Skins/Blue/images/jbox-button1.png new file mode 100644 index 0000000000000000000000000000000000000000..7d8a6a4b21406876efb7462317f1d98ba2c83cdb GIT binary patch literal 338 zcmV-Y0j>UtP)@$vin z`{?NC&(F`?+}y^-#?#Z&{r&ym;NZi-6dkG1Tgy;Teq!|TN@q$hN^zs(J=OPZ`DSBcr?&2tR;wsJ}T5%FD z(TJOPh`$?KF%&CNi?t}lOpL``RAMOxq7YND5eqR9BhgoPGRHF`gEB26Bg2!Bm}Dg| ksfkX0J|bW89sUtu0DUGDT{S~8^Z)<=07*qoM6N<$f_p@~vyu7^c@9*vH?Yg?Uz`(%t z^z{Gpnd|H8*Vota@$t&a%K!S+|NZXI&(GZ4+~VTm=;-MB`uhL!mH+p-|Ni*X)6@U- zq5u5i|MV925@rDg03|gR(J#~^Qvd(} M07*qoM6N<$f^USX1^@s6 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Blue/images/jbox-close1.gif b/apps/static/jbox/Skins/Blue/images/jbox-close1.gif new file mode 100644 index 0000000000000000000000000000000000000000..a87057e8921fd316e5d6d690138ade8ec67c0f23 GIT binary patch literal 1221 zcmeH`SxggA6oyB^GA=D!hD$Lc$Q%Y2L|aN9iRe~ zpYoG_A1Lt>UXRz~_P9Q{BuN%UNf4q8!;++5l4XwP8J7Lc6QTmcGN2+9qG>u12>3~o zz%ZN5W|4tVj7Fov&`=~235UZx&vP8dvMj?eg98Kop->-92Lr$iib$W&M-ag5al75U zF4qUAvj@k!G0bkWSyA-8+1y3>eSVSvMSY;-U?3Qv$Y1T^-45{3ZnN5~miOi^5Q8E~ zS(4%%2m7~PE|;qZz;PTK8xV@3m6erXO=Ii&fBnk|s74aUL68Yr z7Kg_F1O$&l^VX(sdZNrLfZ5Cnyt-YzI7MCbQAJE^yEtodMPhBKx-Dl3((v$UM`3Hu znr6+uur#UR=Df#G(4AZnoOVQCuiU*MY39<6o!dqVu}e49Wf?D8>XiEW^=DF$bIzkv zFJ$OKn*H`pxZ_ciqsb8NH1#3n3HP@gcxh@`q%EsDsM+&)#`2*l`tBG$Cw0{!?Ji`bQRTQaCEXdxQ_P-whk{!lD4e3lv{$42G7fHjgJfyw zXYChn_UHL_x=+1pP_NtZePL0(ZrXx%Q_a<_?V`6rEKly`tXS#oY{QIR%6tR4{prL@ z?(UN3RO19qIk9Y8ij7EEf10k^o^K?|R%(CbzW!=0zPw`X_0Rg`x{~UKwBwl^K3msh z!Rwk3NTt>xP+nTr!e$g!zbcyfNvB-J;J>*$ro}!MYqYwZ7`4BRyeji6wRS J>gg%anx8VZ7x@4H literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Blue/images/jbox-close2.gif b/apps/static/jbox/Skins/Blue/images/jbox-close2.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd2dde9009dfd7adbd272044c03a6f57d1a34701 GIT binary patch literal 791 zcmb7>$xjn;6vwA6O9hlg8U+qOqksl&0we;0tU@)4;6cEIAP}@zV2p4e#zR455lny! z4P20TGDeLd?g}JwQ3*5io2}D!*3MSIC@1uS!=K>i<(=O9=6%0;wHIm%i`vqmcu0XE z8~|O{B}rm~!9c*zFbqi$q|rDa2@*q5fMKel(lj0L`$HiqBuPBaF^tdH<~WuBKoEpL zAi#4RO;MVr8-)X06ogPHq{xaWiX6)U3>A0*+XuyQAS<#ch>9WufGV=g_-JGUp=nCj zG?opb8;GuJ0AQjh5ClO}w5q8XiiPzsO_PQNLEwEfg(3(|k^7Drnj}fhz(}I$IF3^U z0Z`2FY6LQ3$+7|fPLjB)Dh33O1p`5rV_B9nzyV4bQ3+gAMPo^R_LaXod>(Y3w3(M?fQRIm|t2`)+ui792L zi>cnStUiC^ z5E9qUBv)QKQ8j4(IFxcV&ZI$Z>5*@kkGdj&9)|>WMhwp7?N5#Q0 zkm;(Y1-Lt6oRO$0V$5Ao-~Wy@MaHDU-36{G;kxC>!55w7?y40_e0+aKiF1eFK4eWO z*&68JJ%g#0N!GeM<<7^Jp~k1Xzl5*j$u93x&)xR5Q5!r7(LV+)o~)WeFT|&m&!_b) z6-YbJo4o+O$gfl^z8UhrozBT=5HEYU>XC@4#2Zx}`*Pyv@ztofzVvhLORm+Czw_nL F*?;R5w}Aiv literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Blue/images/jbox-content-loading.gif b/apps/static/jbox/Skins/Blue/images/jbox-content-loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..07386a1a29b720c98f07d5480aba0115f99c36f4 GIT binary patch literal 10810 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
    =w<`_ zgc)R3(WTkZ@(-;5@HEXC63ix$-gv6S8vwa^G-Gor{2pU<&ivlHI>ycRZ^qcpn1`p; zmnxWQ7iS&+WSTA#a;|29W3MTh&(2?Ay_-B7kN;bj{BBSFSIqfmoIX zQ7!Rl>)3^@-No*5UorZtfQSpbf3e|U2s{Pp9~eL+2a$t4orsihSfmqy6c-t21q}_u z!aNc~l4Ij(j`o>85k*M_KEZSX286dk95%3rjsiNo)8vgW1qBjeGC4R9P|62NW6xmE zd!OWip`JI{u??V!Nho=GW{zX(Bdl|!?L!!Zdu8PFr!Sie)A+r)@9RHZO$6a5t~d%w zt&1>70A&cLkofPVxGj`V?EK#g4?8=bX?IPPWJe_5!5{h6IIUd02rf;_SIgVd%y<}| zt)jh3erG1kWP5$tU8*Nr_H!7QasPZr$W8Ai3hNyA&FqI(z18Y=c4Vjsf!FSoCXg+H z%!AU*($wnvJM4%*Agb1aSiR{{T2kWUm&7+NQenqh0ly9p# zL}0;KynI7#W(tf9-P$f=oM3dd$tcCU(4>s&Q3gQM$$-R~m`#Z_V*nz9~ts zy!3td#hXmWD;E~_$J>^MerpPljaT!al4$kmr8L9c-^L(=%)=ZOICrc?XPmTG^^5@( zHf)zTCq^oic*<#+#pTFtY@2N>eZ3Cl8}2VOYc8C(JFFrDrRA7(ZwXnli+0A(`NjF` z8nW|}Zld7OlXkrHoU>U-*N3E`EPw%@EwArEQU9~ZOnaldARoG#7Q0b-VK>wYIwF%K zBE?{M47{ulgJN9@7UM>WUJ!7&RXRb%YhNx=JH?s0oP|4`XroGNmwS>dqCqDSIXM!N z?O~5JrTj#dw{lcZ?&;zc!&iAPZfTiToAzJmct#xYumLIJmUOifzkC%Oh*#| zUX#4?k|2TN=Wm}g4ahAAr`8lovLzI>uzi-}VfnK2GKLVE^N>MgxvS7xy-K+NqES|i zF8b;!^Rjc;Nptn=a7Tf93w*)nA8XNz7ii@b9(t9Q;fUSU%}7C&S27Vukl#iW_hF&M z$@cauL%9T!KjJ1OYn=i;*{W@3`m{H7*zHXXm!VC+Qiu^b?TC)q^-ZS0R3^Kw-RZ=T z=cOt3BqKd!f==em^Idn?Or-}dlmuCSWOfBL0}U|keQ*>7{M?Flq(I^0sPkphH(cF9 z`MSsQ68jxm+IuD^JS4pdlLJPALX)eyJUbNu6}1`4t|fc&P$JQ5ZOXA@XUDG-cDgp? ztCoHtBp;e!ef`X_`?aP^YZ6<4GbqWbw*TI0qOUEeJ@C7Q{g0;ngB6$r0C4&L0L=a+ AssI20 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Blue/images/jbox-icons-ie6.gif b/apps/static/jbox/Skins/Blue/images/jbox-icons-ie6.gif new file mode 100644 index 0000000000000000000000000000000000000000..201b912e0db150b0111539e1ec35b2555b618b60 GIT binary patch literal 2767 zcmeH``8yQ)0>)>tj3vz^Mq`^{DEp8mq3)QmRW3q{W63g>q|Oiz33o=**y0Q!GaWUS ztb<6XEMs3P$=cXMLMj?@bkg^nbN`9^%YA=%pZB--c|Py++MTpDJLdZcf`x2D{t*Cx z*Q8j`qEsZnJZw`gZdWPkP%Z6LtLVX1_GvzPsr~r1PW_O6{g6T9h+)I9VdIF=^Ks*5 z;o;WFBh5n7w&|lCv&VWCEPED?_bi-vwL*TmOn$XOd9`Bw`lHRzXZztVCr39I*yC}E&S#*F8Vt-k8LUBVaE@;pL&xoMa8nmAR zU1vehFQC^83|s+2F<>Yb499_SCV0yNl`1E#rPCJ)T=z+54CR}9{j zfCWBSs053Z;C&5PdJNXO!S)C6A{b0$fhjJSEdaBHV7>w@)_`vd;M?Ng@c%o)|LuQ6 z0JkFsg+S;K{eSBJ`2++3AW$h4duLv<0z#g9sP|Dmg%Lbs|9jF>epe#u;3iV_d`!o&l_EACAOt#T~@4|PzY_-CZe{w-qr>US3O+au$C&-(AUR0^CF-y8T}-- z`#kd%F(mr_Mz~F1=H%%t&yDcF5-zdYzk%bW9QAp+S@@%VbjDO1OiCFOs_L9w*GPj@7Kx0XoZ-H%vb zLEbf@BJ-sp3n1^HO8iTxf)wxTT1A=hMdu_hrrXmIktrk$*C72p5)+e*`moPoZk0UbPk_2mohmb zjkCT?lZ74?hs*4zdT=3rnL;{54o!l}D5QG?qbc8gOBAnC6Z92H!I!>aF)t=SM?5n`^^jZa*G8`Qu)UjbiHlhe((WloK5MdG zE<`hE1D`$65qIY6Vaag)I|kPlc#?`CQ_)6p6!P>o3vYK2=6Cyy>Fj=kvvgCxu$xBMLRMp`A)$VdO?R8B?~SnSI*^(E z4MWLeJ6E6Z`$|-h6`&|O{iN&R%w*Z38b7<<(*-UWnA*0Ac*0FRg|9l!Sw#n~m=);l ztMR6k%A;0CJ1-`DJsW!grt_Owkzb%OE5~m?$Ax5n@q}ykR2c)!Ak^um7<)F2j2UX_ zkQw%a=c%Rg2V%3W{&inOjEl}z_3m<5sJny3k2r%LQGl_TE&6TlHk;UoXPSo{Cd)vi zb|U%=y2`4rzZNNAR+$nPZyDV{Jt;)@xH&C&X2o?{ylqpHcG>IN_K;d$KQBd=<@;21G!7nH*R7wMBz@IVr^^KK|TOJ0Y)=Rgz`cSr` ze8M?VA?=W|yc=rOP0XrojmiiR=KessWpZxg4&@57HHg}hbF%)hRQ=cU(qd{OUw4)mknu&INkJp&Z!IKhVsUCoQbC z3TD*kU{E2&bMGaVYw45nOLES-3@iLuAFqVa9_z`AqpS7w-qEW1{s&*o#l%B41iBdy z`K$MjHrvHz-H;-e73JA-{mXIO5ivONNT(CsWB|2FW#W!AoLS$$+^e-XC+4(D#v~yF z;6Co3i*#HQ6KJvd*WUdk;!hUiAaHHcycB`wp+7W4iN$M9ISh7LtiC}Swfo`T7kk@s zYit4wyb&CP7?SRs@~PgxYV$%7dGMW}Wc3q@jE0`(>4^@$ zFn*4>vqwANBW9bthYR5PIPDzU@Uzkl7*b?im*IbQWxFI#3+jlE=vQcPQWdnmjEdB!W$Aymo literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Blue/images/jbox-icons.png b/apps/static/jbox/Skins/Blue/images/jbox-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..c35abcffc91f6cc505418870b6b0d8bf5a712cf6 GIT binary patch literal 6588 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
  • gTCn<{Nls)_0O<$R-M zF5gAOuTD)}c{2w@IoNBbfR=@?_|ZCg{}Haf3j^QJA=y1S^4d4mHX?p7m+!*=esMg- znAh{DdTe^h5KpFF{qLMBhQMMHD>MuBzjH1_uOAxbu~^F4xwDJ4YoB24+9zmlKU&bd zD_3r1&z|4X+`L~Gk2oDaxmmzjFW|)I^XW<*BuQdoVuGHY9(sCun3$Nznt{ldN~lkf z69H%abo}JztU|Ni%}ADdM5{Wlnro00n}Xw2Wpq8D_P8HB184UyKuDH)X1&Gn7>Rq1s>V%)XYWE!tb=Dd{$84124bqHSHNj{y=RywWy(}EH}A_b zamu_FOWFLn_Vyz=O`ORiM&lXn4Fwc-^LImDv!5j zn={Z#JfyzSx^^~CEsEMxU42(Q{_wBrzX;Iw8m!utdBIh#ypg-AYiHHA;vu!|qIeAS zymenMTtx$Y zF04RNl$>wavfg|M0u2ofEL*lL{k~tj#-&S_&{|tDGcz+^Ce?OEda#y61Oy2sIH<{! zHVe@98r1GdyT8C0y8mt~;oPZ_+J>aQ6;l`CED=whv>`LRufn;5x_L77Dn9i69ka8u z1@+S6@%ww}=xFD`2an@$EX-bcJYVLkU;Q;DCDm9guC!~;pZ`9mPyd519ua5|uo4c3 zb%~QmByhXkw77njcDUVcUFnA)2x?ncL0yrQ84anm1cuD==PzWMR|dv-vt=to|6P!W z$b>q0DuyR>FqYH2FBLHFa<|^Xld?s8=#diZ!sNUOIT9(EuGC?O7(yG;gl7p%9PA?GP>h zlzndK2l~u=y)y}^sNJ326X(l$y|1LD4Sy;TjRyGWqyNm4T3+JHl`g||ioiHTb@`!$SHH@$0|d>{QnxTrZF3QMmUtjht79d9`>9>Xo*T zNR1wu$)(dvCr@+pezt6RG3RFv$7=TM>CHO_oR7x@3@JqFY&M&^w!ivmFeXXQfqYulYX9a2fDD&#! zS*(}dsj$Apj>T^*H(tATP1m)hrKOsB>EUT^-cNh`k&Lu6iYQtZ%^8=mb7xmF)#%m5 zBgW*=`PAUS;c(pW-q+!9%$p$9cE+^Td6J`W!P%&e3vvvFa!L@Z#8 z=k&v>DKn!;^XlO#Mz6lN&hXyPE7tgP3J^!_1I&rN4Os zKK$o0B3A($LPT%Cp$Ksp#)NN>|r`v~t0qmtfGV$s@YWj}64+&j&`EafF_R!;4-(p zJ|_>1DMWC)-B>J^B{#3dVo5$d5$5E9F_*dR_56wQn%4=9jG@S|Y$Moo^)%~PSO>gJ zv$V~v)~(3u=1Rw!>*q$hiet?5q7WbSIvt(O*0fB#WB zI@;;zXwTWJro!*<<=C+ey!F;svdo*0M+8W2eLoUU%wf0I(Ae0xq^X1`iZnJhVz<^1 zPs{-vDY)HU-D-Y>L{!}~*6_HVRKk%q3!(K@-SD_tcOnXKq~P{;BRuC08lU4e$g|4& zR2K;IdbNJ#3q~cGEA*kOWwjx_^ziuoy;-Kr6}b#vh(}y_inbmW1ff&HMY*#9kH?eO z#JSEFDx2CDC*eX6gie=v>tW5m#9n(CsiYILL)|mx*_+=qq7^bohym z9l`e6rR6bd-XeI?_407nmp+%bY`*o|`OI64UPgF~gcgtCO`VFOP*zrk-EL27C=?1Y zH8qtsZ+kN~brzZ{&id>oZ0a;Lmww%wI={UwoVc(^FE8E4f0;KAPHn;+9lgxO)4$Ii zAZ=K4U3wYe(KUe7!6O|ybZF6ta@){c;y2@S@zExWxN4QvYR6S>ng1b*lsKVKh+r_7 zc7(&>`CeF(B$h8WbP-=SHutlv+;P)*(t6z`;8FGZ?IOKOsJ^2L zbET8X;q=va(<2j%^nJ`o-^WZ{N}ud1yR(j(&o*ASUPgEdg%O@lf7s+U;JF-me%p-v z{wL^%O>Q2~r#~%qoA3l;KW`k1{QE&rJ`sA|ES^t)-0wEyxg2>ush9GJ(CbF?2%rAE u>g~zni@lQ6YfMA0>g3OvK6Xp;{Qm&Ty9t1djtSKO0000y=ZH#f_@I(l!gfj|vPM5u+JLRnP^5Fj9nfFK|eqk^a)i$D+vOGtvO zA#4Ve1QJ7B5OD!1mPHC`;b7hE=m2d+5VtyZ>@w4dc0Tk2ALg7nr}LikzMtOryyyA- zpXcHF`8YYpGXW;>1^|Bhumlx7_2(y2>c1#CaqafxeDC;VcyU)i?wKS--^}yB|MKfU zf4^opEq;P1Q~&@h{$b+3X#*h2s(I zz1Efu8W|p}F>J$^OaOppmW=u(#%t!rX81g@WwQ@z+!{*oP=uXZL(;6>GHt_lu(P|i zU!7thtQq)>PpooPc?U$ zH?S{WNM}|1rpb<^M!EUs+ZN!%vP*T8D{}r9_%>7iNRam)7pNhh8x?EY@BYx^Z$TkV zX(dm9xfuRXg01tsd)l72`Nwvaz1cNwj@`GxD({x;20rsLK>81?KWLwOuRW@5ZtO&q zj{~jQr|Pyk6dqE9@#);l{^H*L`BMSz&CqFsON33>NW!%%s;do2 z!a*$2wEh}7yQ1ah^@PL1I|*{`qvGj^VRc8rEbzSNSxf>x6Wvkq5*TTdmcCt8`$=`n z)?=Sta+)+5wID1c|Aj%mwY@?9j6K&u5G!6?s|p=CrwChHrq~-$oHKOGjfqE3I7|l8 zu1r$d6DHPT6Dl*Hds&+wq2$$m@tC)6WC!g$L`=an;Z&pm+P<5{A{TD&B#wS(PJlB| zSDYXe5^~wakqin|wuKGu$~4c0lH5p5EXwhq)>c^!rCKX&)91)fpVA+0*SB44RkM1` zj`q^}d^!@#><1NWsZ1o%-uOJ~yb?b;8d zQ=sDtW8UfYOq5$k*&KFFLw0&2IT0fXHnzObtFe#|ELyst1Kzv8ovxl6+hgJ#zNER1 zd8Z{*60ZpJT=Jl8F+O!AWrNkl+O}Qfx0cez6;hBEBU$Nf&oMe6x>`Xix|VnE4&ZOH zX4zlYc*NI|^`_0?ncLSJ`LTi@Jti;CKth(STSv%Y7r=@3VPYDr;-P>Kgx;bL+67h$Tru%?NhS+j`cC|bd7TP?7R zULldc^Y8q)-zVX86%58>j1VZed`Ak)Y_P=6(L4azp(=VcYx(1;^V%?Bx^={p;mHHb>xs73fK>a|BZy}+8PKoCV;%&RY$_Vgf? z0+p0SfcsH6U%j4{W{vdsR%aAJMc(UZ-DoQi6)rM40;E5zd-A0EORrMPC;o|n&)p`Y zCS6PKpT$KD0=F7w5TP(V@&~trR-Y{OT)go3-@Gq?&~`%stng}%|0fIwdQk58k{XsK@#3hR=dhNupUiZO?&4D1TJKI)wxt;opuWD5b>yokRQk(7%v zswECe>WhKY!XGK8SlN8WM;o@Y2+4M-hs^gmTLs8#aJa6X;#_|mRyNhNz>VTo zh29wyvC7Se2m&5Sbnfbcn=u`eLniegq!lHe<{;_`!95qe((p5p`u6Hbhb8Hlw3;UnPcu!RQU_s8e4-Z=V$cxe# zm+I*EBcG~j`~LP--}<9Y6wi8B%DGc3tjPMNZQndh@00V*M7)(8E1pz_gJtE!%-oIA zas^l|=hcFhi9*NH78fw9kO#pqG2eru(~*v^%5}~soqAf82u2~?0 z^x#BYXGnoyHF_7I+(0^cTd}(+b{&CB13f2k_y#ETJ3os-52bJ9K{L>)GKfvvGL!s4{r+=;BCYbPaiQ_HN-}yA=yo;j8}>1F;L4 zRP14A$Uex)r86Kzt1Zch!Ql=R?qU$Ygj~Kxix9mAO(75*ie2tb)aq~&g6Lp_2S&ky z2s#!Z*Aw1TqzZV8J^!4i6{|DKDVMMj8#6Y$YRkvq z_4I{1@lOeY!3abIt*Vv@9jMjyXpN%0vZ3@iN9;lY--AF9;s+40UjH5hsS6=pVt5-k zwCiC+pH6Bpb(i<9UG?K!IDi^685rz-C z1Qsx;q>c_whA0oX)J>9^dM9)xo#`Ms0u-l=DU` zaF9iv;@ZQBwMr%*eYOAenZFf)iai7c68K>vv%rWMC zn=jvQ{J%NB>|9;iqEZnc0)7I3fBeT^`LDHm$L7BKv8;LI@%KOf^vmDxK6tukDDW?>A71m2GEDO(U-~o*tR{+r5Y1?>c(* z-P6Oo4zNS)Cx}mhT>h;oc`TC8oz7B~0!6?)kmuC@rZL(ZJ zCcU_j_+q~x6afJIyBVU4aG*{Fw9iq4qU);f;7?4rEr=XIAf2`*A*fSES~t%Dc*EF6fU7t8<3Ew zTbMY`Q;%Q2(Evke;w@A&`B3P0QllARsd9$hRJ&phpt58}_wBpn2tR>{%0;b~3jp~+ z#QZNkB5NH6ymD@{$qzaRGS_pq^_amC7hLeDI>$tup^Qct6zY898i-ELpSXjNJz)$T z3YolqXq~*eysF%caO$Tbq_<6FWM?~zQ8Zf}Wg$0}vNCE*#cvT#aeYPi;G}QnZ z54u?vcl1!6CJuUuOZxnr?6;-)-Iq{F?41zIWInrJ1^l<}|G=`rxX~C7JDOWsSnOP> zG(U;8tE(AYs0+ieFdZB09suzCV6Qhg7eC;jG9er!bOrBwb;NNi%nXvE#Y;81vzTP` zBY+%p1WT6|=1zO%$E-Nsvwyji#fdJd0Y6A`vEDY#Bf$2POr2V4rp%IB`j;-=-VkNeC;_HV7KSbYCrw>f6Z_^>Iv)9tIsi$&8k3d?a3afnQ@Bk_S@ zTN{#pe#0e>b`l>2lsWT{N6~RLzM(7KYyk@gmD|k^{p(I#7K>CCe%bkTjtKDfhn6qM-7^WI4Mg2tM@?k)!+EixJQ?Lhl z@gq|mRM%P?yLfi`Pd3NkdkNK*c?Usev@UUGeDMPnoyAPwBwYGwFqOPIpOvlxE@P2x z(tgpbB&COGSm*&HWCwcdGfRa06?#*z-6@6mDKG0MJ0 z0OH>3K#NSbnlGYzL0ZVKscQg{iQceh7){0`?q!iEHQKW9rM)w3=GX)5wXdoo~ucZ^Rt=fmX(68ow=CJX)6;7(0|bbqpd6kin#>NMtlt}F+k z#m{QV3^9cQJG^7IWmIE?Gw{{Vj|o<>o~--F3N;B%YFH(z{#{mV`XkAIzIXti&=4$F ztAnL9aOg^YTN_N#DKLdW3)}kNL0AXi%y8_ON(lmpKudHxVP*(VVU7wY5EQ9wo9>H50;4eu&hRs_LsDm{Zu<*in zgKOw!OGNg!XKIrH1Dzp_S~#a4WP?IRo+6&4&XK>3Hw5_l8+r-@P1W2c3^y!o^^mc) z)B#&aeA7m-%k(kEfY{vaXST4dJZV8CyT|N11ZxtD@0>nqwHEMHC zk$09vO6Ld^Y)H+JE?EtAebUJW!9~4Zy~$5pn|4@DoTv0lpm-BYF!y9E|5b>WsyGwp z0@h~Qxg?u6IsGE|Gmoo<#s7L$}{U>khc4eznBc*z4g=rGJp(%>I7 zP}i;^20`tsB9w;%FqFsOEFjK1Kw60?S7<|+%h{tqe9jOSuI4xJgMu+e=8S_&e-Zn6 ztEcJ_87G5&8e37RcTqwrz+=U8->WzvQj|L5Qv)}9$cUo2;F;Nn3z=bclj9Hlw&rM# z7}@;QID>3wnhu&p5`e_+t$xso#-60BUtP!v-Qa8AHlSCr?IwgC8mVfIG578p6~<9H zdN#>*UQhHESAbUdG`O~}r9ccdF!_^FnKe@G^-stwUa#hkp>NA{ zo^gsmx-#egitdXh4B~=#xT)Pr38nLJPZPom50kRn-f`}Yk}wwT2l!krtBGGaXoGTf z`fe-EE20<1yQr&HEBQ8rOTk}MZY`>i>oivzAYC?{aIvDr7?z?$oa6*f4%u}bmB$*i zN9sUk1aZ?zEsR-qsS$>*I%Ipcrh}hDW8SYXmU?&`HG&1L*%61XKYLF#ravJH^R09 zce9zoEDFs#yKWo@<3ea`vq(#^+a4Y&_Eltg=1rHf`lW5&byM`5?H=TSA8CHep3tNy zvJovzHY=dw9Np9qfiuldi?{&D8^flh8#2Bi+ZX&+2%HNu>&bG?$oEyib3PtV|qSwXuk;$Wbx+ zO@3bZjMvAml*KgcTvZ*g7+laFeVYDjBmv-8;N~`f1!W3a+Z%~xQa#??sF8{z$#xc% z)x4|gh3v8yq_`|d=5>LBO!84Mo;zd(v(Q+ShPbG_64`hIQn&^S4>{swEnTd+;)E%5 zP7HLkfscRcLOP&F4j4p0c<$^^515%N*K$F%V7mg!heXnCwZ79YW)qY|LPS`F1ENVZ z_XD3y>~%zBs`>{5U-n)`H2f&KRXg4)i(sSAXUFbqbEtpm|ebRg$7qa|k#^X_czUcE)@phQv< zq!l&S12#IP@U7bz1-6VjAmg0(C5|=3(Bd)swfXhyHQS^UPl62ei0mq`3v3CH;NqA_ zgI-nPh)b_>4eG^OHfUT)dvf=Od!VqNwqip6EUG;y+PcPVy_Xe?B6Y@#Bfjh>1d^r* z_%&k>W21RKw<&6}5f&J$6vs=QH?xL&H71pnOzMt3Q>-w1%?=5VUA=cb&h`<(%-aK+ zs*oQ62MG}ANt9+;l+V%Xo6dSeqVZ)ZL2a=QQ&s!T6t2AzNm{jr-BxISfxh_P0sDpU AqyPW_ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Blue/images/jbox-loading3.gif b/apps/static/jbox/Skins/Blue/images/jbox-loading3.gif new file mode 100644 index 0000000000000000000000000000000000000000..a70c2bc9e808f7c443b4c298aa4a067f99d62566 GIT binary patch literal 8778 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Blue/images/jbox-title-icon.gif b/apps/static/jbox/Skins/Blue/images/jbox-title-icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..b9c772fb5dd615a76731d4c119ff9fe5ea34ea5e GIT binary patch literal 73 zcmZ?wbhEHbBe?# S{fN*C-Grs4uTF_ESOWmk-xUJ@ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Blue/jbox.css b/apps/static/jbox/Skins/Blue/jbox.css new file mode 100644 index 000000000..f4697bca6 --- /dev/null +++ b/apps/static/jbox/Skins/Blue/jbox.css @@ -0,0 +1,43 @@ +@charset "utf-8"; +/* + ʾCSS ʽֻ޸ɫԣͼƬĵַͼƬСҪĬϵһ£border:dotted solid double dashed +*/ +*:focus {outline: none;} +/* fade */ +.jbox-fade{background-color:#000000;} +/* drag */ +.jbox-drag{border:1px dashed #376EA5;} +/* jbox */ +div.jbox {padding:0px;border:none;font-size:12px;} +/* border */ +div.jbox .jbox-border{background: none repeat scroll 0 0 #000000;filter:alpha(opacity=20);-moz-opacity:0.2;opacity:0.2;} +/* container */ +div.jbox .jbox-container{background-color:#ffffff;border:1px solid #999999;} +/* title-panel */ +div.jbox .jbox-title-panel{background:#376EA5;border-bottom:1px solid #CCCCCC;} +div.jbox .jbox-title{font-weight:bold;color:#ffffff;} +div.jbox .jbox-title-icon{background:url(images/jbox-title-icon.gif) no-repeat scroll 3px 5px transparent;} +div.jbox .jbox-close,div.jbox .jbox-close-hover{background:url(images/jbox-close1.gif) no-repeat scroll 0px 0px transparent;} +div.jbox .jbox-close-hover{background-position:-16px 0;} +/* content */ +div.jbox .jbox-content{min-height:24px;line-height:18px;color:#444444;} +div.jbox .jbox-content-loading{background-color:#E6E6E6;} +div.jbox .jbox-content-loading-image{background:url(images/jbox-content-loading.gif) no-repeat bottom center;} +/* button-panel */ +div.jbox .jbox-button-panel{border-top:1px solid #CCCCCC;background-color: #EEEEEE;} +div.jbox .jbox-bottom-text{text-indent:10px;color:#444444;} +div.jbox .jbox-button{background:url(images/jbox-button2.png) repeat-x transparent;border:#AAAAAA 1px solid;color:#888888;border-radius:3px 3px 3px 3px;margin:1px 7px 0px 0px;height:22px;cursor:default;} +div.jbox .jbox-button-hover{background-position:0px -20px;color:#666666;} +div.jbox .jbox-button-active{background-position:0px -40px;} +div.jbox-warning .jbox .jbox-button-panel{background-color: #FFFFFF;} +/* tip-color */ +div.jbox .jbox-tip-color{background-color:#376EA5;border-color:#376EA5;border-radius:3px 3px 3px 3px;color:#ffffff;} +/* icons */ +div.jbox span.jbox-icon{background:url(images/jbox-icons.png) no-repeat scroll 0 0 transparent;_background:url(images/jbox-icons-ie6.gif) no-repeat scroll 0 0 transparent;} +div.jbox span.jbox-icon-info {background-position:0 0;} +div.jbox span.jbox-icon-question {background-position:-36px 0;} +div.jbox span.jbox-icon-success {background-position:-72px 0;} +div.jbox span.jbox-icon-warning {background-position:-108px 0;} +div.jbox span.jbox-icon-error {background-position:-144px 0;} +div.jbox span.jbox-icon-none {display: none; overflow:hidden;} +div.jbox span.jbox-icon-loading {background:url(images/jbox-loading1.gif) no-repeat scroll 0 0 transparent;} \ No newline at end of file diff --git a/apps/static/jbox/Skins/Brown/Desktop.ini b/apps/static/jbox/Skins/Brown/Desktop.ini new file mode 100644 index 000000000..09485b11b --- /dev/null +++ b/apps/static/jbox/Skins/Brown/Desktop.ini @@ -0,0 +1,3 @@ +[.ShellClassInfo] +IconFile=%SystemRoot%\system32\SHELL32.dll +IconIndex=161 diff --git a/apps/static/jbox/Skins/Brown/images/Thumbs.db b/apps/static/jbox/Skins/Brown/images/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..37d2c8e06c99e32ff48c54ba42aaf5a9f6c2ff34 GIT binary patch literal 19456 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 z z2s^t+4{EMo6fPw-%sxT!!ZIo}5dG+W=&Xn6!j||DWj;J^j-44@d4+^dO|Mu=8PVZ} zwbjCwpx|<}plwPVY!iK5nlSek^w?Rab(x_(nZ1Y6WBqD-4J*;36BMKi){YHRA;e(5 zF%ko}aVcyRH?ty&4lsScCi!<{=vV#sXZKJ2TL1j|{nQ`)GVEXde(Kl!_iO(9HUIsZ z|Nd9!zdzn{{QZ7oX6m%+uiNtN9_6p|=P&=$uiqd4;Sa0-XMTVD%m4I$!2k67-%QKrE-xibfFic*IJHO%471GxY1WxA-&^aGD<*p`V zrWv%-hyQK@1KuaWZu}7nA3B1~QMaNX+XENK3~k_KSVVpIU0A4UQa6)KgPInS-#pS; znr${AL3U6QExks+qa>=NSX5V-W#rTfbboa7$n@p}jsOw!o05y}`f5@nw!S2C4bGLs zywHv3a{#Ssl!9C!D)z}>`9H?ww+prJ$%xyK&n{bA#*X#m+QGBKU9B^gW`O3xNslvr zQ|8tIxEpF8o3rnVJdM;}FWK3i{kD=PG-Zq8P}&2+QCDA$*3`eEKmGWV`W5qkq6hv9 D1Ij5$ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Brown/images/jbox-button1.png b/apps/static/jbox/Skins/Brown/images/jbox-button1.png new file mode 100644 index 0000000000000000000000000000000000000000..7d8a6a4b21406876efb7462317f1d98ba2c83cdb GIT binary patch literal 338 zcmV-Y0j>UtP)@$vin z`{?NC&(F`?+}y^-#?#Z&{r&ym;NZi-6dkG1Tgy;Teq!|TN@q$hN^zs(J=OPZ`DSBcr?&2tR;wsJ}T5%FD z(TJOPh`$?KF%&CNi?t}lOpL``RAMOxq7YND5eqR9BhgoPGRHF`gEB26Bg2!Bm}Dg| ksfkX0J|bW89sUtu0DUGDT{S~8^Z)<=07*qoM6N<$f_p@~vyu7^c@9*vH?Yg?Uz`(%t z^z{Gpnd|H8*Vota@$t&a%K!S+|NZXI&(GZ4+~VTm=;-MB`uhL!mH+p-|Ni*X)6@U- zq5u5i|MV925@rDg03|gR(J#~^Qvd(} M07*qoM6N<$f^USX1^@s6 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Brown/images/jbox-close1.gif b/apps/static/jbox/Skins/Brown/images/jbox-close1.gif new file mode 100644 index 0000000000000000000000000000000000000000..a87057e8921fd316e5d6d690138ade8ec67c0f23 GIT binary patch literal 1221 zcmeH`SxggA6oyB^GA=D!hD$Lc$Q%Y2L|aN9iRe~ zpYoG_A1Lt>UXRz~_P9Q{BuN%UNf4q8!;++5l4XwP8J7Lc6QTmcGN2+9qG>u12>3~o zz%ZN5W|4tVj7Fov&`=~235UZx&vP8dvMj?eg98Kop->-92Lr$iib$W&M-ag5al75U zF4qUAvj@k!G0bkWSyA-8+1y3>eSVSvMSY;-U?3Qv$Y1T^-45{3ZnN5~miOi^5Q8E~ zS(4%%2m7~PE|;qZz;PTK8xV@3m6erXO=Ii&fBnk|s74aUL68Yr z7Kg_F1O$&l^VX(sdZNrLfZ5Cnyt-YzI7MCbQAJE^yEtodMPhBKx-Dl3((v$UM`3Hu znr6+uur#UR=Df#G(4AZnoOVQCuiU*MY39<6o!dqVu}e49Wf?D8>XiEW^=DF$bIzkv zFJ$OKn*H`pxZ_ciqsb8NH1#3n3HP@gcxh@`q%EsDsM+&)#`2*l`tBG$Cw0{!?Ji`bQRTQaCEXdxQ_P-whk{!lD4e3lv{$42G7fHjgJfyw zXYChn_UHL_x=+1pP_NtZePL0(ZrXx%Q_a<_?V`6rEKly`tXS#oY{QIR%6tR4{prL@ z?(UN3RO19qIk9Y8ij7EEf10k^o^K?|R%(CbzW!=0zPw`X_0Rg`x{~UKwBwl^K3msh z!Rwk3NTt>xP+nTr!e$g!zbcyfNvB-J;J>*$ro}!MYqYwZ7`4BRyeji6wRS J>gg%anx8VZ7x@4H literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Brown/images/jbox-close2.gif b/apps/static/jbox/Skins/Brown/images/jbox-close2.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd2dde9009dfd7adbd272044c03a6f57d1a34701 GIT binary patch literal 791 zcmb7>$xjn;6vwA6O9hlg8U+qOqksl&0we;0tU@)4;6cEIAP}@zV2p4e#zR455lny! z4P20TGDeLd?g}JwQ3*5io2}D!*3MSIC@1uS!=K>i<(=O9=6%0;wHIm%i`vqmcu0XE z8~|O{B}rm~!9c*zFbqi$q|rDa2@*q5fMKel(lj0L`$HiqBuPBaF^tdH<~WuBKoEpL zAi#4RO;MVr8-)X06ogPHq{xaWiX6)U3>A0*+XuyQAS<#ch>9WufGV=g_-JGUp=nCj zG?opb8;GuJ0AQjh5ClO}w5q8XiiPzsO_PQNLEwEfg(3(|k^7Drnj}fhz(}I$IF3^U z0Z`2FY6LQ3$+7|fPLjB)Dh33O1p`5rV_B9nzyV4bQ3+gAMPo^R_LaXod>(Y3w3(M?fQRIm|t2`)+ui792L zi>cnStUiC^ z5E9qUBv)QKQ8j4(IFxcV&ZI$Z>5*@kkGdj&9)|>WMhwp7?N5#Q0 zkm;(Y1-Lt6oRO$0V$5Ao-~Wy@MaHDU-36{G;kxC>!55w7?y40_e0+aKiF1eFK4eWO z*&68JJ%g#0N!GeM<<7^Jp~k1Xzl5*j$u93x&)xR5Q5!r7(LV+)o~)WeFT|&m&!_b) z6-YbJo4o+O$gfl^z8UhrozBT=5HEYU>XC@4#2Zx}`*Pyv@ztofzVvhLORm+Czw_nL F*?;R5w}Aiv literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Brown/images/jbox-content-loading.gif b/apps/static/jbox/Skins/Brown/images/jbox-content-loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..0898e54c075f2bb09be6249bb646dcdbaf9f36da GIT binary patch literal 10810 zcmb`NXHb)C!>yB$1QJksO+b()O%X&;Q9(BXipaJg-OxJ;Ergy%2)*}Sq*q0%VgRWE zBE1uO6%Y$WWgp!8eZTX~`FnO|GLt`N`p`@W6-ZN37Kx1w0!Ej;%JdWFboa=07Q-jZo65Vdstfu zd)a%~37b2Z~Gd)v3*ZDQ|m)7_Wq5-#KxA@7<&o>~@he*az9I0NRB+o!^_ox^Ifd~!9N2Wvv z#d)A?AZ9YARvg@XaCmM72$3)FlIax_!V2T^qP7;+(D?dI9Szg^=51pWYul^tp3dg> z#=dtw)xCWmS|-}2I%c|ts#^JqnHXfjP#Bz<jcOCVbWNT2#SfP7`u40e=;^%`|DK z5to36aJp^u%Eu*q&{y$V**fGb8pv4 zZX@dn4o{P0n2-hl^;J0|%p=3(dtY*&FVI@9k+`7oNQhJT<0aqEdzG za1}fwfi$c#?Wy4!3Q9NJv*^Xk&1sb0k|Qy3$?nSDbtLtluDVusJhkDuH4$jq+5Cp^ zO?IZqdcWY5pYrzWcJCh*f+h!hOI1;ALEGu|pVr#kpFN#P^MDT($&sD=XnO~9%aE+G zXw=s9w@-apQI!D!KFzx`VRaX>>W_c^TE;#zUBv~1a9o&~j!>Jbi-1%R3znXZX4ma9 z3Sza;$^rLjCyNC485+b>c!_-J)SEFXxgkx4c61nB9T0~eR(dk@h~FdGJYqsB!P5QO zv7Jej$_8%n@hxdh%h+*2d(OC#>W;iPKArBKFbNhtX7Itl!5q*GS~Q$wKKfK50CiWp zAl1TUq`&}e#=ZK~?kK(=j=D4ePhh0pSt9!1_%2B%=yupTP!g$Yw!!d8yIh&`jT6}i zT35&O!lgHg?mwr8yyMBHoV?6WbdcsY<;vM8DXZPsD6Q&{-Ylybb=WMIB%d6N{~VD2 z@9Vv@^Yc08%WJ?+b4=9?3FMQxQZqyGQ*C*W&53k$_V!`*Lj+I>B=l(pN^ponxRgmNq|pIh+|S+O;ob z#E@vNf6*bbctD#xn8ARJN#7hug0d-`KZijjlcUa@LG^06wU8LNkJTiYuEdIgp%hi( zYvDobJIONFSIX=;S32W`#dkgIUo3vekkejZIf}7)7$K<+;y(Int&_l!K3OCEr1ft3 z^*jZLFFOzzB6L|+_)3mkmPLEMIa^hBxoI6o_u^m;B4T^4i66{*Cz~cu zr+M>=%KOzjFLe1Lew3@4FQXuS$~Se>>F)D=3EZ{?KMyJ$-Uyr%{Vr?x{TY+(Q#MT1 z_iZp3!DdJ0Ii*g7^TbM`9n%jm&0PsH&!W{1b{F_^WwKC&qc5xQ8+WrZY2Kd~7gLhF zPG9%m|MqU`9(wavlgX#S&6~EWvcJH;+C_wC{oc0JJ;NR^9~Xdtyz*>72#N2(9Hk0fN;&)gx3L5Qxr4ALr3X3>>QSiJveJ^PdpUNWXP9PJ&RgY&V_eXHk2`6tmFqEW=rjw=mmdyJ03*0b7)q z(ZlaE1C5-OB6t@bCgGFL;iYWcSZJEbAQ`D7i{e{En{=!IR!=%?zqn+g-)7XOL2B-sJ3{W^ z0A^-ce&~bAF7e1&9+u@OhOCn6c6KK`ut<_c_!QXL90MpXQczn@mCZ9eXG3n#w(pTi zJ1h*89@;4Ibu0L>+9&vx1!1YcY3ETvE@|-SyMI&Q(lFjdxn;;lqr4czUJiiX;f$aB zeDSDNduBYm{8B-#?PBT9B>VB$g<1|IV84k4CHqwq6IZfd?7(R^JwEaMm(cwDgxtZj zuhL_}yv0!Y0nU5XXnrc}!*bY|mec&m{4s<$79eWihl@| z5E1Sh|hEWPofvAgoNo!*Hg)f#|-Wk&!-x?bP7x2n=dBU}wENO!x5LnjKr6q#~BSFs+8# zA1?2#(Kq!Yv+6JH!E>2;BeIoA`wRThdcYO{4;ZR)4uw)@U=mh8;f5NqJC5U6$d5&8 zPhA@ZL#00M<`5$>a_gnOR(rW}KUBf8z@&T6MmIw>gkrKwvkFSS7&l7Be0koVsgVY{ zE;Uj(n$6Mp!V3P_&Y(=BG?%L+R-FM1mgkYl1}>4Cybh5sDF6~4g8OVkCv6FUe3%u$ z{b|{|w`pOF%6G5_yL0W{;wqPuRNQnr<2eEP$OA>|eon1LCFkVSwWbnDwu1C6^ww}$ zk|70&t6CYV5V6Ixc|m}xF!=|x0-(CPJGZPB>+1(3&t_Qey{sGN>Y&XJrjB*;1i$^0 z4?^@eXZU{G9H?Xbp4prViredZ>J{m)`fcZD``E1M&S%f8Krh2%x}aY|b?1yJvqC*9 zvAq~$0%X%e2{}cW+9rcQ(cqW|#FS!O~>8eY$*)wS0?!SG5jmF*-klfcBse^~^1BL!@gXi}&uSn)`fPdve1No&hKK?2=sPQ&d zEEg))duC+N8r^L8s;5{&E;m1I zY5Qf9gd?^n2+3)LDBnA{*e0~SQU+6X!i{K0-Q&H|)P=u6_l}(sXe1(Vv(L5D(8`T7 zky*_ukv;mmD&!A-gm*kN#tT1p-|?bVe~ZY^yc4QPEk2>50iH(KsKUq;h;sJO*jaYAb8%g@(X8Pr!0Q7Q2uWunaN5 zhx!7e?LQ9B^w|Z(OwWu#5g!54AhHz++7Y}8Rk4Ww~h;Lp;!M9o&)2$Yx$rEodF=WwtEyA z#B*$|PG0krP=oT`NW_zSkdMqm_;ZtV6hzIaNH<~qyr3953R^~xbiebvW9x#+>jdm^)KG%qY6M97jk+MeHCswd9I z`(sE=Z~A*D`2s(luJr{4*mOv8N>Oo2AsDi^zY^HBZg?scV{y(l>IHwn3fSjpTrwqu zV4tRY!Rdxc3Ps_<;|PT&vewD1T-bn<5K&+S6B7V#c|94qqYZ&ujv z98kG7?D{!ttD86M#h{f(%=zJhkC6{LWe4q?Z8@HGEi_89$g`V{uZOk(ohHY}@|9Or z?_17kc)8cd2pN3=Uk_H9?q`*7t_JCdhJFR!HsbW`6J)u*{NWDseIC@9w>O{b z3{NE7?;lxC5Ui*~AK9vF$lzTE!MW#Y=rpFEfi zcE`nz@mMb}Z#M^60E_`m3a11IgkgN3ejb6=Bys|4pkpX9mF$M6#>A!iJr7BV@QSj> zyM+6kF3EJT!dN3Azw(X4(_Bzvk=6cvzaDTl=ADhU=BYYbHD9a>!7Aw-ia1wGH zO!Vk@a+I*R$#8vj92qQmeACEDO+l0d5_uGAHL)jtH(rv{gm2;`07c`m7G?Gvl3k3K zv=t6u9IHKvY>A*>FBR>()6~4Bl_nlbJ}kO-J@>0LET#e6t=_B)ua0aP zw3&V6gx^!UBR8@9wq$5R0|5L42W>vqKX3%LPy%7tzf9SZ&(q*MvhQB0ArD-ZUDHG> z!jMPTc?C?5PIxYrC+x(i-yr}xF%*K^yf&4tAVAeR z>%oy~Yewbo#mpUNhP-S3z>ZkUVlm)}p z=jl?78o4+t2}>ch`)*Q6;P<=A_ic4sU)d-)4Z?WwQuI+x-v`(MAVb{!!$LeR?>(#2EJt&p!iDnCZhZknr9 z!gKU3#;-}csu^~}JV-g~AmReIZA`}c&pijF)AzF=Y~=t7m`z8G5LeSY=~USuA%9`y z;El5!^!!6j!uUHv_!l78F7s15yRCM8F2Po1e@_4MY_?a})S-RUrnXvr+sjG0;3H?JO8zo6SheHs~m|u;mEaj zK@mQ0M6S(Z`i0-mKT)iTej7?j+WV-ze$rWkPhvhd_FmM#lzn z!eHHFvlGQ}Gqa-u^ToqU%OArWy5SoGO`gNMOVc?;i1p9Vv?11E5t^i2nwq=QR=6mm z?js-r2ee9$)+f5L6? zeezjgh?Do1WzAHvdpy@+kHzmL=~!>)r_dz&^RzXLeo1+*4wV0STVnDMPx}MKcd>}O z3Pqf%B0qw#D{C47H9@(Q6$puNE;cD*XhmPggQv2&Rf(5sAFVDyWmv3j|=gweel zFOhsNmD|$U?-?W--nMRb6+d^``NL;$OG%}9kzUT$AAx6?!^n>2#2{Oc*B4VZ!wfR~ zwLd3omrua1r4Vp&z`Rj=03zBeyav`o1Uk1-oxyE%&Z<=~h>NOkXk9%`JB{DZR4x;lgWP8RV@~Md^U7S zzV&D_8f$MCrO5P$$~;)m10xJtZo$omMiFrLy+yCup2dbaN2^m17W;w}7f-!Bo9j08 zEI7bSUO0dyx+~Wh7h<4mHyq+2O89e6Jl0-8A&v&x3t1ga>bs;U5y6w4vZ7{sB$1go znq5z@e#4()%|drvPNTmZKK>**Q=WO$;bfMtiSm;I zZJN60oy+wEBeJPVCFI>?Sd0H!;$|Ag>Qpe$&h4&XO-qoR!_)VJrXlX0R*Fu2W;|Lo zAU=*Fb;58@$VM5qo};b`#2|qIKtBCSvkT?!l`EcwT#y)?ejQYj7~c3xP$fC^9!Mudqg*J@VA_djWfYMzUrPBpTZA1fkx+;2C&)dt83k%&dZ;s zTtY{_K*NgmR|k&1uQaQtiABuSVK&FVxuXj4K-fw9DsR1YO9%%0UqInXp%Xh!LJu%P z%-&7(?g>y(CLy1f-Y4^Mmi3O)#d|HU+NN$D?up*dkn`_gx%;qHFYC;O$R*g562$i)k2>V^0a4z&@;8)W?b(mG%F1@jB<2SCJnQhF;6=X*^ zN8K-Gz6TZ%0S?a5_sT5_5GFCj(M=WOr9QVqp*!J*K)VK_qNc8&Pi6ne_({Tw$hif9 z**sf(1}|C^(~8Hl2u&AILZ9Hn+=y8a}iekLc?v z6i1of>0n7_QIj-rb5w{^OFL?ZNGjft03<=$Kc}qtykEOA9gY@SS%~0RdX=j*uH<^o2c3{sg8ocGdU#P!mzq2KT?qoDm}6{4xlmVrF+g(A z2$%!Ztuv{Zz)Mr0jwN)VILW)e0_O=B7qk?^`fEwdPYmZllXEO{IHrfSx2$jh_78xlD?!w~S4 zFprgF!;pjaXQZL{sYwr?$TP?W`u7s(!LpLuv+Kgk6wAhvIX;U&2!NKdh<7~yX9ml~?~{v?q)hj-doZ$A;rghqW#mB+Am_|mKS{uDthsQ=*@rv5bIol`#L09xvQ#mq|}zIGoXK2}RE zGkoL7=qPNGD7;YPDgN3ze7_n68|8U=8ac7E)JB+)(5p(8H>bI8M%GfyFK)alx%jw9 zIA;?MV#I0(I6B{kFmvLWJE5$=b{Y?l*tzrbUc0Y)Ql4tbsN%jhSrwK-Zix7p&%S6t zKkaX-a$Q|$x={K37Y?9AiPX=Fy+r78uwd2 zw-S#{q=D8AQg)3ICWTL*r2qxW?8&3dM_vF`KM(4FsB$}S;Jjj00vYZ zvu4;5-NIzu>?ml$6UaNtEN`0EcP|-yEU!Tr?+Mog(x-?+&-gC*S?P6cPDqYY&LftyM^J*waZVla;(1grAIsGf6| zlEidze4TN?usC7r=^Sjw=nBzVUhnr2j9L|mF{}dVkelO7NYp}XsWmQUBB8=&_Ilce za(*6YHWTo+=7cBptN&=pZ=U>5b@D%2@-Op5ZiKykmi1qGQN&@3^4I z>QGl72!qw%I0136o=!!d0EJ1QuMYvusX=s~#2luURPT}T(Me3r%xp_I8n!sTJl}PK zlaD@w>tmZkYuh`^dpV%PrH{9Qav7uMt`M0*`G4~SXb$J%tIyUXYQW+I)W*A9)d>td zoF=b#)kHfZn2&|<@A%wqcgG?4RqM4BTka(*I9iC=?^*Rk%X03LVJ)Hq(YMVDz)~FR zeQ{Upjdb9i5*?u&MQ-8JPh@%wVN5Dq*=j2g7CyH8h;x6}C5k#P3g`lqTFheTYyJJS zsn_ULBjdDPv{?h`n4 z2iIAYs844&2!U0zv^cY;v}n$&5NB?KIJPx`sS(v<(`r~xzqUH8>omCs_Tgr~Fgu?o6 z=fU~33K;FTq(Ee%?MgqK?8M%^^zNMgO1DtO(yJGGr3yONO@JZc{MdD{8grLy{-~)@ zjm_u7pOV9hFE4*fDz6pr^g(#|6hkaonWWtC8%|^X%E6z$qxO}4OUg%8xu83Z@H3{6 z1zDFCM~gqy1Hf}sXGkyuPe#+ZQZE4H&gsmZ*@y?UjYYEu@9SxII=&fUx?&%lS6Qv> zQNFU^_-BvF3O@HnHaPC4oY}(Cb^806lkxb!b;oJ zpLV$}?;fo5R`?2qybg%GeDD_o4uy*b_$qo!n{i)|ZR|3H0CfMzZV`xMh=tS+G^3xD30Sl3TklbdD@XIY8J28_QZPr8G z_6h}ESuo?htu=SCz8uNV;Vec&OP!&2yqd{$Mbv`$eGGLf?LJ99l@7wa^_eYUM%Wovjv`Wm*5bAwOI;^kW=n&6zWVBT5ZHWdiZ zvXOAbw(|TeES*{MWHSCb;1mRzbDZ&5Tyjn7d^KC^s!S($Pd%wJ6g=8p9$j~Bnh<8T`xcm?c{RFX!jGi5CscRtBliP|CcG(|u)gh*g!N=&hb zJysL*6O`Z0RXTg9m0#Q+W8~l=6c9XH^m%5P2bWg?cZ{g((2((n_m>35G&J`(8uPFl z=U0>l@szxH_o7Fi)OvhwQ>HXWL`EGmU@;Y5Ah{%A0HHdM>PJ<$@@+OKRPZ30B!xl* zU*G7t<{W<3OeH76k*C4jyYTam&6t(T)QUqsM^iUc~AYeCV9Xt2;{kmZ1>q5V( y>lQ%@povzuE^z79nXGP#>;f*JM628Xd#j1A2Cv5O?-uqyn(_};U?Kp(wf_TmCnd%J literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Brown/images/jbox-icons-ie6.gif b/apps/static/jbox/Skins/Brown/images/jbox-icons-ie6.gif new file mode 100644 index 0000000000000000000000000000000000000000..201b912e0db150b0111539e1ec35b2555b618b60 GIT binary patch literal 2767 zcmeH``8yQ)0>)>tj3vz^Mq`^{DEp8mq3)QmRW3q{W63g>q|Oiz33o=**y0Q!GaWUS ztb<6XEMs3P$=cXMLMj?@bkg^nbN`9^%YA=%pZB--c|Py++MTpDJLdZcf`x2D{t*Cx z*Q8j`qEsZnJZw`gZdWPkP%Z6LtLVX1_GvzPsr~r1PW_O6{g6T9h+)I9VdIF=^Ks*5 z;o;WFBh5n7w&|lCv&VWCEPED?_bi-vwL*TmOn$XOd9`Bw`lHRzXZztVCr39I*yC}E&S#*F8Vt-k8LUBVaE@;pL&xoMa8nmAR zU1vehFQC^83|s+2F<>Yb499_SCV0yNl`1E#rPCJ)T=z+54CR}9{j zfCWBSs053Z;C&5PdJNXO!S)C6A{b0$fhjJSEdaBHV7>w@)_`vd;M?Ng@c%o)|LuQ6 z0JkFsg+S;K{eSBJ`2++3AW$h4duLv<0z#g9sP|Dmg%Lbs|9jF>epe#u;3iV_d`!o&l_EACAOt#T~@4|PzY_-CZe{w-qr>US3O+au$C&-(AUR0^CF-y8T}-- z`#kd%F(mr_Mz~F1=H%%t&yDcF5-zdYzk%bW9QAp+S@@%VbjDO1OiCFOs_L9w*GPj@7Kx0XoZ-H%vb zLEbf@BJ-sp3n1^HO8iTxf)wxTT1A=hMdu_hrrXmIktrk$*C72p5)+e*`moPoZk0UbPk_2mohmb zjkCT?lZ74?hs*4zdT=3rnL;{54o!l}D5QG?qbc8gOBAnC6Z92H!I!>aF)t=SM?5n`^^jZa*G8`Qu)UjbiHlhe((WloK5MdG zE<`hE1D`$65qIY6Vaag)I|kPlc#?`CQ_)6p6!P>o3vYK2=6Cyy>Fj=kvvgCxu$xBMLRMp`A)$VdO?R8B?~SnSI*^(E z4MWLeJ6E6Z`$|-h6`&|O{iN&R%w*Z38b7<<(*-UWnA*0Ac*0FRg|9l!Sw#n~m=);l ztMR6k%A;0CJ1-`DJsW!grt_Owkzb%OE5~m?$Ax5n@q}ykR2c)!Ak^um7<)F2j2UX_ zkQw%a=c%Rg2V%3W{&inOjEl}z_3m<5sJny3k2r%LQGl_TE&6TlHk;UoXPSo{Cd)vi zb|U%=y2`4rzZNNAR+$nPZyDV{Jt;)@xH&C&X2o?{ylqpHcG>IN_K;d$KQBd=<@;21G!7nH*R7wMBz@IVr^^KK|TOJ0Y)=Rgz`cSr` ze8M?VA?=W|yc=rOP0XrojmiiR=KessWpZxg4&@57HHg}hbF%)hRQ=cU(qd{OUw4)mknu&INkJp&Z!IKhVsUCoQbC z3TD*kU{E2&bMGaVYw45nOLES-3@iLuAFqVa9_z`AqpS7w-qEW1{s&*o#l%B41iBdy z`K$MjHrvHz-H;-e73JA-{mXIO5ivONNT(CsWB|2FW#W!AoLS$$+^e-XC+4(D#v~yF z;6Co3i*#HQ6KJvd*WUdk;!hUiAaHHcycB`wp+7W4iN$M9ISh7LtiC}Swfo`T7kk@s zYit4wyb&CP7?SRs@~PgxYV$%7dGMW}Wc3q@jE0`(>4^@$ zFn*4>vqwANBW9bthYR5PIPDzU@Uzkl7*b?im*IbQWxFI#3+jlE=vQcPQWdnmjEdB!W$Aymo literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Brown/images/jbox-icons.png b/apps/static/jbox/Skins/Brown/images/jbox-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..c35abcffc91f6cc505418870b6b0d8bf5a712cf6 GIT binary patch literal 6588 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
  • gTCn<{Nls)_0O<$R-M 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Brown/images/jbox-loading2.gif b/apps/static/jbox/Skins/Brown/images/jbox-loading2.gif new file mode 100644 index 0000000000000000000000000000000000000000..09d112048682e185c46fd4a8739c535429869b7f GIT binary patch literal 4167 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Brown/images/jbox-loading3.gif b/apps/static/jbox/Skins/Brown/images/jbox-loading3.gif new file mode 100644 index 0000000000000000000000000000000000000000..31eaa4764ef4d1d08785cdff1810e9e544fa29fb GIT binary patch literal 8778 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 ptb13vAo3<6c8uBe?# S{fN*C-Grs4uTF_ESOWmk-xUJ@ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Brown/jbox.css b/apps/static/jbox/Skins/Brown/jbox.css new file mode 100644 index 000000000..73a4454d7 --- /dev/null +++ b/apps/static/jbox/Skins/Brown/jbox.css @@ -0,0 +1,43 @@ +@charset "utf-8"; +/* + ʾCSS ʽֻ޸ɫԣͼƬĵַͼƬСҪĬϵһ£border:dotted solid double dashed +*/ +*:focus {outline: none;} +/* fade */ +.jbox-fade{background-color:#000000;} +/* drag */ +.jbox-drag{border:1px dashed #9B6E42;} +/* jbox */ +div.jbox {padding:0px;border:none;font-size:12px;} +/* border */ +div.jbox .jbox-border{background: none repeat scroll 0 0 #000000;filter:alpha(opacity=20);-moz-opacity:0.2;opacity:0.2;} +/* container */ +div.jbox .jbox-container{background-color:#ffffff;border:1px solid #999999;} +/* title-panel */ +div.jbox .jbox-title-panel{background:#9B6E42;border-bottom:1px solid #CCCCCC;} +div.jbox .jbox-title{font-weight:bold;color:#ffffff;} +div.jbox .jbox-title-icon{background:url(images/jbox-title-icon.gif) no-repeat scroll 3px 5px transparent;} +div.jbox .jbox-close,div.jbox .jbox-close-hover{background:url(images/jbox-close1.gif) no-repeat scroll 0px 0px transparent;} +div.jbox .jbox-close-hover{background-position:-16px 0;} +/* content */ +div.jbox .jbox-content{min-height:24px;line-height:18px;color:#444444;} +div.jbox .jbox-content-loading{background-color:#E6E6E6;} +div.jbox .jbox-content-loading-image{background:url(images/jbox-content-loading.gif) no-repeat bottom center;} +/* button-panel */ +div.jbox .jbox-button-panel{border-top:1px solid #CCCCCC;background-color: #EEEEEE;} +div.jbox .jbox-bottom-text{text-indent:10px;color:#444444;} +div.jbox .jbox-button{background:url(images/jbox-button2.png) repeat-x transparent;border:#AAAAAA 1px solid;color:#888888;border-radius:3px 3px 3px 3px;margin:1px 7px 0px 0px;height:22px;cursor:default;} +div.jbox .jbox-button-hover{background-position:0px -20px;color:#666666;} +div.jbox .jbox-button-active{background-position:0px -40px;} +div.jbox-warning .jbox .jbox-button-panel{background-color: #FFFFFF;} +/* tip-color */ +div.jbox .jbox-tip-color{background-color:#9B6E42;border-color:#9B6E42;border-radius:3px 3px 3px 3px;color:#ffffff;} +/* icons */ +div.jbox span.jbox-icon{background:url(images/jbox-icons.png) no-repeat scroll 0 0 transparent;_background:url(images/jbox-icons-ie6.gif) no-repeat scroll 0 0 transparent;} +div.jbox span.jbox-icon-info {background-position:0 0;} +div.jbox span.jbox-icon-question {background-position:-36px 0;} +div.jbox span.jbox-icon-success {background-position:-72px 0;} +div.jbox span.jbox-icon-warning {background-position:-108px 0;} +div.jbox span.jbox-icon-error {background-position:-144px 0;} +div.jbox span.jbox-icon-none {display: none; overflow:hidden;} +div.jbox span.jbox-icon-loading {background:url(images/jbox-loading1.gif) no-repeat scroll 0 0 transparent;} \ No newline at end of file diff --git a/apps/static/jbox/Skins/Default/Desktop.ini b/apps/static/jbox/Skins/Default/Desktop.ini new file mode 100644 index 000000000..09485b11b --- /dev/null +++ b/apps/static/jbox/Skins/Default/Desktop.ini @@ -0,0 +1,3 @@ +[.ShellClassInfo] +IconFile=%SystemRoot%\system32\SHELL32.dll +IconIndex=161 diff --git a/apps/static/jbox/Skins/Default/Thumbs.db b/apps/static/jbox/Skins/Default/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..960e8d81d4225d29d91603648f6c77835420a144 GIT binary patch literal 4096 zcmeHId29?(82@J9%+B6+wlmxE52~mpNUN?!NK5NTq_xzUphb(IRH=%pn>O)>TO}f0 z_ffL$Bkoc}>ZVGfbrTV-qO?2Xd)r+aB5jE{vfs>azj?>E@BQ9)ysKA);v7e#68J{C z0s&dkg1SaOgWnV`F$1XZgSKTwQK~xu@Y5^*&g9&&FiPc^8`ZfQ=`UYHKmV1?udad^TWaQ7#8cgZbmA?t+o^kW{*ixU= z%zqx+8iW?1L+BB-CK%ni0cyMgKtNa!J_r#ZA*={rgdd_I!dpwIXZ}v1u}EX!7{-HA zs1$>_PgL(HU@)jg;seS(OcA0|(HDiqm(y?@%W^uNS8EJ9gF&y;>y0Lh*=Q0>dcE0d z7JNiWk_-)e{j8#&MU+JPCk#OwmeX>aRy693V!cH<1%d{;07DpmPzekX7$pxHxO!9#|Q8a*Z< zaqPJ9Q&Xl*Po0rAbN+&bixw}*%v!!;<*LZ``zb%hqk%ckJD_|G>dRhmRaR zb2jhX`TPqPFI~TJ^VaP&HE{4UxRRjjYp!0|T-N4zkGDdzU<)t69DX<|^fv`ZbM?QC`JTx}CqSwUZ zBjgJE+FdsJeA4U21zCk}?efFf5m}^v!HEYuGp^h`xn6QOGLCi&YGqLFdVF7RZ3f;| zJ4d1=MHs>rNyE+2v12YX;~^ezh8fTr^)$RGQm{1%TS<6hjD|Ka8C%u&2Cd|-qH4;{ z&;FrhO$#&tPyQYB=ASqJepFa~Q~rhD58NF+@mW<>Uj@?F1(IC((&EZTW%g|fOvrbZ wMnc-4s({2w1#+cA>}s1UGMUb$sm|N>e2A`${#*~&(aKQssI20 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Default/images/Thumbs.db b/apps/static/jbox/Skins/Default/images/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..c9e4ec7f9b83549292374f18f89d40f5000418c4 GIT binary patch literal 33792 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Default/images/jbox-button1.png b/apps/static/jbox/Skins/Default/images/jbox-button1.png new file mode 100644 index 0000000000000000000000000000000000000000..7d8a6a4b21406876efb7462317f1d98ba2c83cdb GIT binary patch literal 338 zcmV-Y0j>UtP)@$vin z`{?NC&(F`?+}y^-#?#Z&{r&ym;NZi-6dkG1Tgy;Teq!|TN@q$hN^zs(J=OPZ`DSBcr?&2tR;wsJ}T5%FD z(TJOPh`$?KF%&CNi?t}lOpL``RAMOxq7YND5eqR9BhgoPGRHF`gEB26Bg2!Bm}Dg| ksfkX0J|bW89sUtu0DUGDT{S~8^Z)<=07*qoM6N<$f_p@~vyu7^c@9*vH?Yg?Uz`(%t z^z{Gpnd|H8*Vota@$t&a%K!S+|NZXI&(GZ4+~VTm=;-MB`uhL!mH+p-|Ni*X)6@U- zq5u5i|MV925@rDg03|gR(J#~^Qvd(} M07*qoM6N<$f^USX1^@s6 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Default/images/jbox-close1.gif b/apps/static/jbox/Skins/Default/images/jbox-close1.gif new file mode 100644 index 0000000000000000000000000000000000000000..a87057e8921fd316e5d6d690138ade8ec67c0f23 GIT binary patch literal 1221 zcmeH`SxggA6oyB^GA=D!hD$Lc$Q%Y2L|aN9iRe~ zpYoG_A1Lt>UXRz~_P9Q{BuN%UNf4q8!;++5l4XwP8J7Lc6QTmcGN2+9qG>u12>3~o zz%ZN5W|4tVj7Fov&`=~235UZx&vP8dvMj?eg98Kop->-92Lr$iib$W&M-ag5al75U zF4qUAvj@k!G0bkWSyA-8+1y3>eSVSvMSY;-U?3Qv$Y1T^-45{3ZnN5~miOi^5Q8E~ zS(4%%2m7~PE|;qZz;PTK8xV@3m6erXO=Ii&fBnk|s74aUL68Yr z7Kg_F1O$&l^VX(sdZNrLfZ5Cnyt-YzI7MCbQAJE^yEtodMPhBKx-Dl3((v$UM`3Hu znr6+uur#UR=Df#G(4AZnoOVQCuiU*MY39<6o!dqVu}e49Wf?D8>XiEW^=DF$bIzkv zFJ$OKn*H`pxZ_ciqsb8NH1#3n3HP@gcxh@`q%EsDsM+&)#`2*l`tBG$Cw0{!?Ji`bQRTQaCEXdxQ_P-whk{!lD4e3lv{$42G7fHjgJfyw zXYChn_UHL_x=+1pP_NtZePL0(ZrXx%Q_a<_?V`6rEKly`tXS#oY{QIR%6tR4{prL@ z?(UN3RO19qIk9Y8ij7EEf10k^o^K?|R%(CbzW!=0zPw`X_0Rg`x{~UKwBwl^K3msh z!Rwk3NTt>xP+nTr!e$g!zbcyfNvB-J;J>*$ro}!MYqYwZ7`4BRyeji6wRS J>gg%anx8VZ7x@4H literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Default/images/jbox-close2.gif b/apps/static/jbox/Skins/Default/images/jbox-close2.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd2dde9009dfd7adbd272044c03a6f57d1a34701 GIT binary patch literal 791 zcmb7>$xjn;6vwA6O9hlg8U+qOqksl&0we;0tU@)4;6cEIAP}@zV2p4e#zR455lny! z4P20TGDeLd?g}JwQ3*5io2}D!*3MSIC@1uS!=K>i<(=O9=6%0;wHIm%i`vqmcu0XE z8~|O{B}rm~!9c*zFbqi$q|rDa2@*q5fMKel(lj0L`$HiqBuPBaF^tdH<~WuBKoEpL zAi#4RO;MVr8-)X06ogPHq{xaWiX6)U3>A0*+XuyQAS<#ch>9WufGV=g_-JGUp=nCj zG?opb8;GuJ0AQjh5ClO}w5q8XiiPzsO_PQNLEwEfg(3(|k^7Drnj}fhz(}I$IF3^U z0Z`2FY6LQ3$+7|fPLjB)Dh33O1p`5rV_B9nzyV4bQ3+gAMPo^R_LaXod>(Y3w3(M?fQRIm|t2`)+ui792L zi>cnStUiC^ z5E9qUBv)QKQ8j4(IFxcV&ZI$Z>5*@kkGdj&9)|>WMhwp7?N5#Q0 zkm;(Y1-Lt6oRO$0V$5Ao-~Wy@MaHDU-36{G;kxC>!55w7?y40_e0+aKiF1eFK4eWO z*&68JJ%g#0N!GeM<<7^Jp~k1Xzl5*j$u93x&)xR5Q5!r7(LV+)o~)WeFT|&m&!_b) z6-YbJo4o+O$gfl^z8UhrozBT=5HEYU>XC@4#2Zx}`*Pyv@ztofzVvhLORm+Czw_nL F*?;R5w}Aiv literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Default/images/jbox-content-loading.gif b/apps/static/jbox/Skins/Default/images/jbox-content-loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..94d46c129f6bba02f2f0b230d9f4d2c7a48e1412 GIT binary patch literal 6610 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 AkpKVy literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Default/images/jbox-icons-ie6.gif b/apps/static/jbox/Skins/Default/images/jbox-icons-ie6.gif new file mode 100644 index 0000000000000000000000000000000000000000..201b912e0db150b0111539e1ec35b2555b618b60 GIT binary patch literal 2767 zcmeH``8yQ)0>)>tj3vz^Mq`^{DEp8mq3)QmRW3q{W63g>q|Oiz33o=**y0Q!GaWUS ztb<6XEMs3P$=cXMLMj?@bkg^nbN`9^%YA=%pZB--c|Py++MTpDJLdZcf`x2D{t*Cx z*Q8j`qEsZnJZw`gZdWPkP%Z6LtLVX1_GvzPsr~r1PW_O6{g6T9h+)I9VdIF=^Ks*5 z;o;WFBh5n7w&|lCv&VWCEPED?_bi-vwL*TmOn$XOd9`Bw`lHRzXZztVCr39I*yC}E&S#*F8Vt-k8LUBVaE@;pL&xoMa8nmAR zU1vehFQC^83|s+2F<>Yb499_SCV0yNl`1E#rPCJ)T=z+54CR}9{j zfCWBSs053Z;C&5PdJNXO!S)C6A{b0$fhjJSEdaBHV7>w@)_`vd;M?Ng@c%o)|LuQ6 z0JkFsg+S;K{eSBJ`2++3AW$h4duLv<0z#g9sP|Dmg%Lbs|9jF>epe#u;3iV_d`!o&l_EACAOt#T~@4|PzY_-CZe{w-qr>US3O+au$C&-(AUR0^CF-y8T}-- z`#kd%F(mr_Mz~F1=H%%t&yDcF5-zdYzk%bW9QAp+S@@%VbjDO1OiCFOs_L9w*GPj@7Kx0XoZ-H%vb zLEbf@BJ-sp3n1^HO8iTxf)wxTT1A=hMdu_hrrXmIktrk$*C72p5)+e*`moPoZk0UbPk_2mohmb zjkCT?lZ74?hs*4zdT=3rnL;{54o!l}D5QG?qbc8gOBAnC6Z92H!I!>aF)t=SM?5n`^^jZa*G8`Qu)UjbiHlhe((WloK5MdG zE<`hE1D`$65qIY6Vaag)I|kPlc#?`CQ_)6p6!P>o3vYK2=6Cyy>Fj=kvvgCxu$xBMLRMp`A)$VdO?R8B?~SnSI*^(E z4MWLeJ6E6Z`$|-h6`&|O{iN&R%w*Z38b7<<(*-UWnA*0Ac*0FRg|9l!Sw#n~m=);l ztMR6k%A;0CJ1-`DJsW!grt_Owkzb%OE5~m?$Ax5n@q}ykR2c)!Ak^um7<)F2j2UX_ zkQw%a=c%Rg2V%3W{&inOjEl}z_3m<5sJny3k2r%LQGl_TE&6TlHk;UoXPSo{Cd)vi zb|U%=y2`4rzZNNAR+$nPZyDV{Jt;)@xH&C&X2o?{ylqpHcG>IN_K;d$KQBd=<@;21G!7nH*R7wMBz@IVr^^KK|TOJ0Y)=Rgz`cSr` ze8M?VA?=W|yc=rOP0XrojmiiR=KessWpZxg4&@57HHg}hbF%)hRQ=cU(qd{OUw4)mknu&INkJp&Z!IKhVsUCoQbC z3TD*kU{E2&bMGaVYw45nOLES-3@iLuAFqVa9_z`AqpS7w-qEW1{s&*o#l%B41iBdy z`K$MjHrvHz-H;-e73JA-{mXIO5ivONNT(CsWB|2FW#W!AoLS$$+^e-XC+4(D#v~yF z;6Co3i*#HQ6KJvd*WUdk;!hUiAaHHcycB`wp+7W4iN$M9ISh7LtiC}Swfo`T7kk@s zYit4wyb&CP7?SRs@~PgxYV$%7dGMW}Wc3q@jE0`(>4^@$ zFn*4>vqwANBW9bthYR5PIPDzU@Uzkl7*b?im*IbQWxFI#3+jlE=vQcPQWdnmjEdB!W$Aymo literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Default/images/jbox-icons.png b/apps/static/jbox/Skins/Default/images/jbox-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..c35abcffc91f6cc505418870b6b0d8bf5a712cf6 GIT binary patch literal 6588 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
  • gTCn<{Nls)_0O<$R-M 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 y{vI;nZJG+5OyvQuxEm~`b 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Default/images/jbox-title-icon.gif b/apps/static/jbox/Skins/Default/images/jbox-title-icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..02b4d54aa2ba0716516389393f2b2d12b6a5a42b GIT binary patch literal 92 zcmZ?wbhEHb+|z`(+w1LA>(;w$HX$(gJ|}}U09w%=8~^|S literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Default/jbox.css b/apps/static/jbox/Skins/Default/jbox.css new file mode 100644 index 000000000..c75564b9e --- /dev/null +++ b/apps/static/jbox/Skins/Default/jbox.css @@ -0,0 +1,43 @@ +@charset "utf-8"; +/* + ʾCSS ʽֻ޸ɫԣͼƬĵַͼƬСҪĬϵһ£border:dotted solid double dashed +*/ +*:focus {outline: none;} +/* fade */ +.jbox-fade{background-color:#000000;} +/* drag */ +.jbox-drag{border:1px dashed #A5C11B;} +/* jbox */ +div.jbox {padding:0px;border:none;font-size:12px;} +/* border */ +div.jbox .jbox-border{background: none repeat scroll 0 0 #000000;filter:alpha(opacity=20);-moz-opacity:0.2;opacity:0.2;} +/* container */ +div.jbox .jbox-container{background-color:#ffffff;border:1px solid #999999;} +/* title-panel */ +div.jbox .jbox-title-panel{background:#A5C11B;border-bottom:1px solid #CCCCCC;} +div.jbox .jbox-title{font-weight:bold;color:#ffffff;} +div.jbox .jbox-title-icon{background:url(images/jbox-title-icon.gif) no-repeat scroll 3px 5px transparent;} +div.jbox .jbox-close,div.jbox .jbox-close-hover{background:url(images/jbox-close1.gif) no-repeat scroll 0px 0px transparent;} +div.jbox .jbox-close-hover{background-position:-16px 0;} +/* content */ +div.jbox .jbox-content{min-height:24px;line-height:18px;color:#444444;} +div.jbox .jbox-content-loading{background-color:#E6E6E6;} +div.jbox .jbox-content-loading-image{background:url(images/jbox-content-loading.gif) no-repeat bottom center;} +/* button-panel */ +div.jbox .jbox-button-panel{border-top:1px solid #CCCCCC;background-color: #EEEEEE;} +div.jbox .jbox-bottom-text{text-indent:10px;color:#444444;} +div.jbox .jbox-button{background:url(images/jbox-button2.png) repeat-x transparent;border:#AAAAAA 1px solid;color:#888888;border-radius:3px 3px 3px 3px;margin:1px 7px 0px 0px;height:22px;cursor:default;} +div.jbox .jbox-button-hover{background-position:0px -20px;color:#666666;} +div.jbox .jbox-button-active{background-position:0px -40px;} +div.jbox-warning .jbox .jbox-button-panel{background-color: #FFFFFF;} +/* tip-color */ +div.jbox .jbox-tip-color{background-color:#A5C11B;border-color:#A5C11B;border-radius:3px 3px 3px 3px;color:#ffffff;} +/* icons */ +div.jbox span.jbox-icon{background:url(images/jbox-icons.png) no-repeat scroll 0 0 transparent;_background:url(images/jbox-icons-ie6.gif) no-repeat scroll 0 0 transparent;} +div.jbox span.jbox-icon-info {background-position:0 0;} +div.jbox span.jbox-icon-question {background-position:-36px 0;} +div.jbox span.jbox-icon-success {background-position:-72px 0;} +div.jbox span.jbox-icon-warning {background-position:-108px 0;} +div.jbox span.jbox-icon-error {background-position:-144px 0;} +div.jbox span.jbox-icon-none {display: none; overflow:hidden;} +div.jbox span.jbox-icon-loading {background:url(images/jbox-loading1.gif) no-repeat scroll 0 0 transparent;} \ No newline at end of file diff --git a/apps/static/jbox/Skins/Gray/Desktop.ini b/apps/static/jbox/Skins/Gray/Desktop.ini new file mode 100644 index 000000000..09485b11b --- /dev/null +++ b/apps/static/jbox/Skins/Gray/Desktop.ini @@ -0,0 +1,3 @@ +[.ShellClassInfo] +IconFile=%SystemRoot%\system32\SHELL32.dll +IconIndex=161 diff --git a/apps/static/jbox/Skins/Gray/images/Thumbs.db b/apps/static/jbox/Skins/Gray/images/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..37d2c8e06c99e32ff48c54ba42aaf5a9f6c2ff34 GIT binary patch literal 19456 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 z z2s^t+4{EMo6fPw-%sxT!!ZIo}5dG+W=&Xn6!j||DWj;J^j-44@d4+^dO|Mu=8PVZ} zwbjCwpx|<}plwPVY!iK5nlSek^w?Rab(x_(nZ1Y6WBqD-4J*;36BMKi){YHRA;e(5 zF%ko}aVcyRH?ty&4lsScCi!<{=vV#sXZKJ2TL1j|{nQ`)GVEXde(Kl!_iO(9HUIsZ z|Nd9!zdzn{{QZ7oX6m%+uiNtN9_6p|=P&=$uiqd4;Sa0-XMTVD%m4I$!2k67-%QKrE-xibfFic*IJHO%471GxY1WxA-&^aGD<*p`V zrWv%-hyQK@1KuaWZu}7nA3B1~QMaNX+XENK3~k_KSVVpIU0A4UQa6)KgPInS-#pS; znr${AL3U6QExks+qa>=NSX5V-W#rTfbboa7$n@p}jsOw!o05y}`f5@nw!S2C4bGLs zywHv3a{#Ssl!9C!D)z}>`9H?ww+prJ$%xyK&n{bA#*X#m+QGBKU9B^gW`O3xNslvr zQ|8tIxEpF8o3rnVJdM;}FWK3i{kD=PG-Zq8P}&2+QCDA$*3`eEKmGWV`W5qkq6hv9 D1Ij5$ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Gray/images/jbox-button1.png b/apps/static/jbox/Skins/Gray/images/jbox-button1.png new file mode 100644 index 0000000000000000000000000000000000000000..7d8a6a4b21406876efb7462317f1d98ba2c83cdb GIT binary patch literal 338 zcmV-Y0j>UtP)@$vin z`{?NC&(F`?+}y^-#?#Z&{r&ym;NZi-6dkG1Tgy;Teq!|TN@q$hN^zs(J=OPZ`DSBcr?&2tR;wsJ}T5%FD z(TJOPh`$?KF%&CNi?t}lOpL``RAMOxq7YND5eqR9BhgoPGRHF`gEB26Bg2!Bm}Dg| ksfkX0J|bW89sUtu0DUGDT{S~8^Z)<=07*qoM6N<$f_p@~vyu7^c@9*vH?Yg?Uz`(%t z^z{Gpnd|H8*Vota@$t&a%K!S+|NZXI&(GZ4+~VTm=;-MB`uhL!mH+p-|Ni*X)6@U- zq5u5i|MV925@rDg03|gR(J#~^Qvd(} M07*qoM6N<$f^USX1^@s6 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Gray/images/jbox-close1.gif b/apps/static/jbox/Skins/Gray/images/jbox-close1.gif new file mode 100644 index 0000000000000000000000000000000000000000..a87057e8921fd316e5d6d690138ade8ec67c0f23 GIT binary patch literal 1221 zcmeH`SxggA6oyB^GA=D!hD$Lc$Q%Y2L|aN9iRe~ zpYoG_A1Lt>UXRz~_P9Q{BuN%UNf4q8!;++5l4XwP8J7Lc6QTmcGN2+9qG>u12>3~o zz%ZN5W|4tVj7Fov&`=~235UZx&vP8dvMj?eg98Kop->-92Lr$iib$W&M-ag5al75U zF4qUAvj@k!G0bkWSyA-8+1y3>eSVSvMSY;-U?3Qv$Y1T^-45{3ZnN5~miOi^5Q8E~ zS(4%%2m7~PE|;qZz;PTK8xV@3m6erXO=Ii&fBnk|s74aUL68Yr z7Kg_F1O$&l^VX(sdZNrLfZ5Cnyt-YzI7MCbQAJE^yEtodMPhBKx-Dl3((v$UM`3Hu znr6+uur#UR=Df#G(4AZnoOVQCuiU*MY39<6o!dqVu}e49Wf?D8>XiEW^=DF$bIzkv zFJ$OKn*H`pxZ_ciqsb8NH1#3n3HP@gcxh@`q%EsDsM+&)#`2*l`tBG$Cw0{!?Ji`bQRTQaCEXdxQ_P-whk{!lD4e3lv{$42G7fHjgJfyw zXYChn_UHL_x=+1pP_NtZePL0(ZrXx%Q_a<_?V`6rEKly`tXS#oY{QIR%6tR4{prL@ z?(UN3RO19qIk9Y8ij7EEf10k^o^K?|R%(CbzW!=0zPw`X_0Rg`x{~UKwBwl^K3msh z!Rwk3NTt>xP+nTr!e$g!zbcyfNvB-J;J>*$ro}!MYqYwZ7`4BRyeji6wRS J>gg%anx8VZ7x@4H literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Gray/images/jbox-close2.gif b/apps/static/jbox/Skins/Gray/images/jbox-close2.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd2dde9009dfd7adbd272044c03a6f57d1a34701 GIT binary patch literal 791 zcmb7>$xjn;6vwA6O9hlg8U+qOqksl&0we;0tU@)4;6cEIAP}@zV2p4e#zR455lny! z4P20TGDeLd?g}JwQ3*5io2}D!*3MSIC@1uS!=K>i<(=O9=6%0;wHIm%i`vqmcu0XE z8~|O{B}rm~!9c*zFbqi$q|rDa2@*q5fMKel(lj0L`$HiqBuPBaF^tdH<~WuBKoEpL zAi#4RO;MVr8-)X06ogPHq{xaWiX6)U3>A0*+XuyQAS<#ch>9WufGV=g_-JGUp=nCj zG?opb8;GuJ0AQjh5ClO}w5q8XiiPzsO_PQNLEwEfg(3(|k^7Drnj}fhz(}I$IF3^U z0Z`2FY6LQ3$+7|fPLjB)Dh33O1p`5rV_B9nzyV4bQ3+gAMPo^R_LaXod>(Y3w3(M?fQRIm|t2`)+ui792L zi>cnStUiC^ z5E9qUBv)QKQ8j4(IFxcV&ZI$Z>5*@kkGdj&9)|>WMhwp7?N5#Q0 zkm;(Y1-Lt6oRO$0V$5Ao-~Wy@MaHDU-36{G;kxC>!55w7?y40_e0+aKiF1eFK4eWO z*&68JJ%g#0N!GeM<<7^Jp~k1Xzl5*j$u93x&)xR5Q5!r7(LV+)o~)WeFT|&m&!_b) z6-YbJo4o+O$gfl^z8UhrozBT=5HEYU>XC@4#2Zx}`*Pyv@ztofzVvhLORm+Czw_nL F*?;R5w}Aiv literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Gray/images/jbox-content-loading.gif b/apps/static/jbox/Skins/Gray/images/jbox-content-loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..5b0d1e4747978fab62efa2ddc030e0b1b16e82d2 GIT binary patch literal 10810 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Gray/images/jbox-icons-ie6.gif b/apps/static/jbox/Skins/Gray/images/jbox-icons-ie6.gif new file mode 100644 index 0000000000000000000000000000000000000000..201b912e0db150b0111539e1ec35b2555b618b60 GIT binary patch literal 2767 zcmeH``8yQ)0>)>tj3vz^Mq`^{DEp8mq3)QmRW3q{W63g>q|Oiz33o=**y0Q!GaWUS ztb<6XEMs3P$=cXMLMj?@bkg^nbN`9^%YA=%pZB--c|Py++MTpDJLdZcf`x2D{t*Cx z*Q8j`qEsZnJZw`gZdWPkP%Z6LtLVX1_GvzPsr~r1PW_O6{g6T9h+)I9VdIF=^Ks*5 z;o;WFBh5n7w&|lCv&VWCEPED?_bi-vwL*TmOn$XOd9`Bw`lHRzXZztVCr39I*yC}E&S#*F8Vt-k8LUBVaE@;pL&xoMa8nmAR zU1vehFQC^83|s+2F<>Yb499_SCV0yNl`1E#rPCJ)T=z+54CR}9{j zfCWBSs053Z;C&5PdJNXO!S)C6A{b0$fhjJSEdaBHV7>w@)_`vd;M?Ng@c%o)|LuQ6 z0JkFsg+S;K{eSBJ`2++3AW$h4duLv<0z#g9sP|Dmg%Lbs|9jF>epe#u;3iV_d`!o&l_EACAOt#T~@4|PzY_-CZe{w-qr>US3O+au$C&-(AUR0^CF-y8T}-- z`#kd%F(mr_Mz~F1=H%%t&yDcF5-zdYzk%bW9QAp+S@@%VbjDO1OiCFOs_L9w*GPj@7Kx0XoZ-H%vb zLEbf@BJ-sp3n1^HO8iTxf)wxTT1A=hMdu_hrrXmIktrk$*C72p5)+e*`moPoZk0UbPk_2mohmb zjkCT?lZ74?hs*4zdT=3rnL;{54o!l}D5QG?qbc8gOBAnC6Z92H!I!>aF)t=SM?5n`^^jZa*G8`Qu)UjbiHlhe((WloK5MdG zE<`hE1D`$65qIY6Vaag)I|kPlc#?`CQ_)6p6!P>o3vYK2=6Cyy>Fj=kvvgCxu$xBMLRMp`A)$VdO?R8B?~SnSI*^(E z4MWLeJ6E6Z`$|-h6`&|O{iN&R%w*Z38b7<<(*-UWnA*0Ac*0FRg|9l!Sw#n~m=);l ztMR6k%A;0CJ1-`DJsW!grt_Owkzb%OE5~m?$Ax5n@q}ykR2c)!Ak^um7<)F2j2UX_ zkQw%a=c%Rg2V%3W{&inOjEl}z_3m<5sJny3k2r%LQGl_TE&6TlHk;UoXPSo{Cd)vi zb|U%=y2`4rzZNNAR+$nPZyDV{Jt;)@xH&C&X2o?{ylqpHcG>IN_K;d$KQBd=<@;21G!7nH*R7wMBz@IVr^^KK|TOJ0Y)=Rgz`cSr` ze8M?VA?=W|yc=rOP0XrojmiiR=KessWpZxg4&@57HHg}hbF%)hRQ=cU(qd{OUw4)mknu&INkJp&Z!IKhVsUCoQbC z3TD*kU{E2&bMGaVYw45nOLES-3@iLuAFqVa9_z`AqpS7w-qEW1{s&*o#l%B41iBdy z`K$MjHrvHz-H;-e73JA-{mXIO5ivONNT(CsWB|2FW#W!AoLS$$+^e-XC+4(D#v~yF z;6Co3i*#HQ6KJvd*WUdk;!hUiAaHHcycB`wp+7W4iN$M9ISh7LtiC}Swfo`T7kk@s zYit4wyb&CP7?SRs@~PgxYV$%7dGMW}Wc3q@jE0`(>4^@$ zFn*4>vqwANBW9bthYR5PIPDzU@Uzkl7*b?im*IbQWxFI#3+jlE=vQcPQWdnmjEdB!W$Aymo literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Gray/images/jbox-icons.png b/apps/static/jbox/Skins/Gray/images/jbox-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..c35abcffc91f6cc505418870b6b0d8bf5a712cf6 GIT binary patch literal 6588 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
  • gTCn<{Nls)_0O<$R-M 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Gray/images/jbox-loading2.gif b/apps/static/jbox/Skins/Gray/images/jbox-loading2.gif new file mode 100644 index 0000000000000000000000000000000000000000..b8802e16acc2206feef63d65cca9fafaa80a8b33 GIT binary patch literal 4167 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Gray/images/jbox-loading3.gif b/apps/static/jbox/Skins/Gray/images/jbox-loading3.gif new file mode 100644 index 0000000000000000000000000000000000000000..1ebb10e61409b5a1247e58387030107e87b347a4 GIT binary patch literal 8778 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 S{fN*C-Grs4uTF_ESOWmk-xUJ@ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Gray/jbox.css b/apps/static/jbox/Skins/Gray/jbox.css new file mode 100644 index 000000000..d500b0fab --- /dev/null +++ b/apps/static/jbox/Skins/Gray/jbox.css @@ -0,0 +1,43 @@ +@charset "utf-8"; +/* + ʾCSS ʽֻ޸ɫԣͼƬĵַͼƬСҪĬϵһ£border:dotted solid double dashed +*/ +*:focus {outline: none;} +/* fade */ +.jbox-fade{background-color:#000000;} +/* drag */ +.jbox-drag{border:1px dashed #4C4C4C;} +/* jbox */ +div.jbox {padding:0px;border:none;font-size:12px;} +/* border */ +div.jbox .jbox-border{background: none repeat scroll 0 0 #000000;filter:alpha(opacity=20);-moz-opacity:0.2;opacity:0.2;} +/* container */ +div.jbox .jbox-container{background-color:#ffffff;border:1px solid #999999;} +/* title-panel */ +div.jbox .jbox-title-panel{background:#4C4C4C;border-bottom:1px solid #CCCCCC;} +div.jbox .jbox-title{font-weight:bold;color:#ffffff;} +div.jbox .jbox-title-icon{background:url(images/jbox-title-icon.gif) no-repeat scroll 3px 5px transparent;} +div.jbox .jbox-close,div.jbox .jbox-close-hover{background:url(images/jbox-close1.gif) no-repeat scroll 0px 0px transparent;} +div.jbox .jbox-close-hover{background-position:-16px 0;} +/* content */ +div.jbox .jbox-content{min-height:24px;line-height:18px;color:#444444;} +div.jbox .jbox-content-loading{background-color:#E6E6E6;} +div.jbox .jbox-content-loading-image{background:url(images/jbox-content-loading.gif) no-repeat bottom center;} +/* button-panel */ +div.jbox .jbox-button-panel{border-top:1px solid #CCCCCC;background-color: #EEEEEE;} +div.jbox .jbox-bottom-text{text-indent:10px;color:#444444;} +div.jbox .jbox-button{background:url(images/jbox-button2.png) repeat-x transparent;border:#AAAAAA 1px solid;color:#888888;border-radius:3px 3px 3px 3px;margin:1px 7px 0px 0px;height:22px;cursor:default;} +div.jbox .jbox-button-hover{background-position:0px -20px;color:#666666;} +div.jbox .jbox-button-active{background-position:0px -40px;} +div.jbox-warning .jbox .jbox-button-panel{background-color: #FFFFFF;} +/* tip-color */ +div.jbox .jbox-tip-color{background-color:#4C4C4C;border-color:#4C4C4C;border-radius:3px 3px 3px 3px;color:#ffffff;} +/* icons */ +div.jbox span.jbox-icon{background:url(images/jbox-icons.png) no-repeat scroll 0 0 transparent;_background:url(images/jbox-icons-ie6.gif) no-repeat scroll 0 0 transparent;} +div.jbox span.jbox-icon-info {background-position:0 0;} +div.jbox span.jbox-icon-question {background-position:-36px 0;} +div.jbox span.jbox-icon-success {background-position:-72px 0;} +div.jbox span.jbox-icon-warning {background-position:-108px 0;} +div.jbox span.jbox-icon-error {background-position:-144px 0;} +div.jbox span.jbox-icon-none {display: none; overflow:hidden;} +div.jbox span.jbox-icon-loading {background:url(images/jbox-loading1.gif) no-repeat scroll 0 0 transparent;} \ No newline at end of file diff --git a/apps/static/jbox/Skins/GrayCool/Desktop.ini b/apps/static/jbox/Skins/GrayCool/Desktop.ini new file mode 100644 index 000000000..09485b11b --- /dev/null +++ b/apps/static/jbox/Skins/GrayCool/Desktop.ini @@ -0,0 +1,3 @@ +[.ShellClassInfo] +IconFile=%SystemRoot%\system32\SHELL32.dll +IconIndex=161 diff --git a/apps/static/jbox/Skins/GrayCool/images/Thumbs.db b/apps/static/jbox/Skins/GrayCool/images/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..37d2c8e06c99e32ff48c54ba42aaf5a9f6c2ff34 GIT binary patch literal 19456 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 z z2s^t+4{EMo6fPw-%sxT!!ZIo}5dG+W=&Xn6!j||DWj;J^j-44@d4+^dO|Mu=8PVZ} zwbjCwpx|<}plwPVY!iK5nlSek^w?Rab(x_(nZ1Y6WBqD-4J*;36BMKi){YHRA;e(5 zF%ko}aVcyRH?ty&4lsScCi!<{=vV#sXZKJ2TL1j|{nQ`)GVEXde(Kl!_iO(9HUIsZ z|Nd9!zdzn{{QZ7oX6m%+uiNtN9_6p|=P&=$uiqd4;Sa0-XMTVD%m4I$!2k67-%QKrE-xibfFic*IJHO%471GxY1WxA-&^aGD<*p`V zrWv%-hyQK@1KuaWZu}7nA3B1~QMaNX+XENK3~k_KSVVpIU0A4UQa6)KgPInS-#pS; znr${AL3U6QExks+qa>=NSX5V-W#rTfbboa7$n@p}jsOw!o05y}`f5@nw!S2C4bGLs zywHv3a{#Ssl!9C!D)z}>`9H?ww+prJ$%xyK&n{bA#*X#m+QGBKU9B^gW`O3xNslvr zQ|8tIxEpF8o3rnVJdM;}FWK3i{kD=PG-Zq8P}&2+QCDA$*3`eEKmGWV`W5qkq6hv9 D1Ij5$ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/GrayCool/images/jbox-button1.png b/apps/static/jbox/Skins/GrayCool/images/jbox-button1.png new file mode 100644 index 0000000000000000000000000000000000000000..7d8a6a4b21406876efb7462317f1d98ba2c83cdb GIT binary patch literal 338 zcmV-Y0j>UtP)@$vin z`{?NC&(F`?+}y^-#?#Z&{r&ym;NZi-6dkG1Tgy;Teq!|TN@q$hN^zs(J=OPZ`DSBcr?&2tR;wsJ}T5%FD z(TJOPh`$?KF%&CNi?t}lOpL``RAMOxq7YND5eqR9BhgoPGRHF`gEB26Bg2!Bm}Dg| ksfkX0J|bW89sUtu0DUGDT{S~8^Z)<=07*qoM6N<$f_p@~vyu7^c@9*vH?Yg?Uz`(%t z^z{Gpnd|H8*Vota@$t&a%K!S+|NZXI&(GZ4+~VTm=;-MB`uhL!mH+p-|Ni*X)6@U- zq5u5i|MV925@rDg03|gR(J#~^Qvd(} M07*qoM6N<$f^USX1^@s6 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/GrayCool/images/jbox-close1.gif b/apps/static/jbox/Skins/GrayCool/images/jbox-close1.gif new file mode 100644 index 0000000000000000000000000000000000000000..a87057e8921fd316e5d6d690138ade8ec67c0f23 GIT binary patch literal 1221 zcmeH`SxggA6oyB^GA=D!hD$Lc$Q%Y2L|aN9iRe~ zpYoG_A1Lt>UXRz~_P9Q{BuN%UNf4q8!;++5l4XwP8J7Lc6QTmcGN2+9qG>u12>3~o zz%ZN5W|4tVj7Fov&`=~235UZx&vP8dvMj?eg98Kop->-92Lr$iib$W&M-ag5al75U zF4qUAvj@k!G0bkWSyA-8+1y3>eSVSvMSY;-U?3Qv$Y1T^-45{3ZnN5~miOi^5Q8E~ zS(4%%2m7~PE|;qZz;PTK8xV@3m6erXO=Ii&fBnk|s74aUL68Yr z7Kg_F1O$&l^VX(sdZNrLfZ5Cnyt-YzI7MCbQAJE^yEtodMPhBKx-Dl3((v$UM`3Hu znr6+uur#UR=Df#G(4AZnoOVQCuiU*MY39<6o!dqVu}e49Wf?D8>XiEW^=DF$bIzkv zFJ$OKn*H`pxZ_ciqsb8NH1#3n3HP@gcxh@`q%EsDsM+&)#`2*l`tBG$Cw0{!?Ji`bQRTQaCEXdxQ_P-whk{!lD4e3lv{$42G7fHjgJfyw zXYChn_UHL_x=+1pP_NtZePL0(ZrXx%Q_a<_?V`6rEKly`tXS#oY{QIR%6tR4{prL@ z?(UN3RO19qIk9Y8ij7EEf10k^o^K?|R%(CbzW!=0zPw`X_0Rg`x{~UKwBwl^K3msh z!Rwk3NTt>xP+nTr!e$g!zbcyfNvB-J;J>*$ro}!MYqYwZ7`4BRyeji6wRS J>gg%anx8VZ7x@4H literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/GrayCool/images/jbox-close2.gif b/apps/static/jbox/Skins/GrayCool/images/jbox-close2.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd2dde9009dfd7adbd272044c03a6f57d1a34701 GIT binary patch literal 791 zcmb7>$xjn;6vwA6O9hlg8U+qOqksl&0we;0tU@)4;6cEIAP}@zV2p4e#zR455lny! z4P20TGDeLd?g}JwQ3*5io2}D!*3MSIC@1uS!=K>i<(=O9=6%0;wHIm%i`vqmcu0XE z8~|O{B}rm~!9c*zFbqi$q|rDa2@*q5fMKel(lj0L`$HiqBuPBaF^tdH<~WuBKoEpL zAi#4RO;MVr8-)X06ogPHq{xaWiX6)U3>A0*+XuyQAS<#ch>9WufGV=g_-JGUp=nCj zG?opb8;GuJ0AQjh5ClO}w5q8XiiPzsO_PQNLEwEfg(3(|k^7Drnj}fhz(}I$IF3^U z0Z`2FY6LQ3$+7|fPLjB)Dh33O1p`5rV_B9nzyV4bQ3+gAMPo^R_LaXod>(Y3w3(M?fQRIm|t2`)+ui792L zi>cnStUiC^ z5E9qUBv)QKQ8j4(IFxcV&ZI$Z>5*@kkGdj&9)|>WMhwp7?N5#Q0 zkm;(Y1-Lt6oRO$0V$5Ao-~Wy@MaHDU-36{G;kxC>!55w7?y40_e0+aKiF1eFK4eWO z*&68JJ%g#0N!GeM<<7^Jp~k1Xzl5*j$u93x&)xR5Q5!r7(LV+)o~)WeFT|&m&!_b) z6-YbJo4o+O$gfl^z8UhrozBT=5HEYU>XC@4#2Zx}`*Pyv@ztofzVvhLORm+Czw_nL F*?;R5w}Aiv literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/GrayCool/images/jbox-content-loading.gif b/apps/static/jbox/Skins/GrayCool/images/jbox-content-loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..3bd5be25c6101d8ac699066c122874e41b467b16 GIT binary patch literal 10810 zcmb`NXHZk^-mjC81QJksCZ!s6MpXA}y>$H&LS#Kh3h(8a~&$&)9K zA3t_>c7FKqp}V`glarHyfq|W!otKwaP*Bi=2M;16BNGx5L=V6)H~;_;Jrca>YHjXr zZ6)Gm=WZ)vZf}lv#F|^3wR5(?0!062)zy6b=%$9Ars7!zCgAZ2a>obY&rJd#MUzn(x}}csXmJ$o+P?QRR4<=Vgu>Foe>! zdxpZCUhO?SQ$N@FHTAdl_ztoGzhk@j$=27$Kfs$z#nT*uy+SD-0R*?G7$k`d4JSsX zL!@ZUqRLFZhz>6${b|=lr6!7S_=C`b`}j*ZSsdV-tJZtL~o8 z=Jv+EcRkg;eIHsT+NL^Yx`wJ+`HNYY}|k_F-;TI zDs+d7&?!ljVU=l54bM7WJGfmb%3QqW{Y`<x?=}ekCe5gpC>eNTy+n-y8 zWQ|3mx2C^+>dT6%^!N8}-kk}nJC{{|^y~Ms=QGn)d=LoFgPZ9HwW&G}NCmNZGP1Fp zx?M(r>=xQN;69yX(V#vprNRy#01IEw*#9@b(pA0<`a8EXmn2=7e zbh~n7YZ9fpfnR)lLq^Loc3jAgJ8q=9BQK8sZg)?ZB%2;9czTiT7ZK=}9)_hR2K$ll5kA2IM6x3x5|SS4Nhyy?%5%uVLH}6@!l*whp+gV}g|LG# zw(kX528X(B`~91SCSg!F%sBhx(6oF1`-Q=gez(=NCFEH5{Mv}S|EGne%@1D=W=4y4 z?Mj((6uQgb42T>N(53)pGT>m*HwRLn9ExYp;Lyp`s8grVz1prV6eivybxD>>vEpDT zO^y6oWYGFnvh3BBGCS^-&Ug`tU3a?|iyt!Nbr#qTV{9HqNNIq055HR9P2ftOtdV)r zdb|8;o+8AD69^0uz9=VhDMvobqCMZ7qbj@Hw2mu$Js~lBo66>Ou%;{-u|3x$0A|0H zO;=#h34CG-zV%KET|UU4~z!82mtWZR0!V5AAHd$ z8W_oAreYFt+7-{{i9{QSNB>lg7Y`TfsTYfp@uZ9ToRtwUXXZSU3<5H%vY5M`5<18M zu!U>cSPARa5>pZJ6Xs!l6A~HeH%`Y%l4_Q1r_+2bYEPNs78;&qILY%BX1i}U%;YM1 z7A0o%2zbvxBWI;agu;U)V$vC+w2dnpT`L(RE1hIfe1mM0?kVW0ClmIgxMabH0=bk8 zDHUWf!dH1lqdepUzdQ&Pec_#9)_Gdi!7ldGq(jBP(WReTn2y_M2inWCv=VUF$)Cl4 znO|EItLgOBUXCcZbO{)KO;Kk)erHm30VAlb{+tFwSCxf)J8O8?<^t4rGwRb|aPFI1 z!fxRJR#rIy=>5qqiO5+5+j10BR!Ma`ry~(qB*i9j0_=(Zq(9`>KVDEBR4u&uu$BKJopx@cjIQ z{Qk6$@?+Ax#ZdV^p0H{(KNa?2Ic!YZasFUcI6LU<;adKqkD8oCg%yVzWp&$!n^m1> ze{R)``QKpq@8Ked*$&Tg(e^8G5ywCINkjDBv$_-bI<*+}FWe|cJO#?cj`Xu5;;@35>aF)J-=)R$mkv=45YH)T02DKfqwO$@(xchC*j;&4xBbUCg ztcKbhEbpu_HuWR3>M!iUb6NQ!vQ;QQ76hX8fGq$77^->(jn-gd5z#p2hB~=Bj_XL+ zmrZ(4Lk9*!r#|lH5~ncp>ZQI`f4OomRME1)q7r{vVNrV=TRg7huy z)^J&pAq|DES{bSk#Sl5XAV4*k!hL!HP{YlQS5BM#^?iy*Gc5N`)-`ht(B=nIhdKq4 z?~mgPA^V#%e7e0Y)%Em?e#tNiu6Aii#pyCOip2$Q|5P!ZV7$UP&BJ3qN{Eh zCiO7yZsdhnObdE!dVCCeI#xA5;#^O?Wyn>1L|&xa4S`H$UHz2Qh@h5W@d!B^`f`wN ztcpdTGzXmo=CoDKfJnXxHt<<#m(H-(o%11vVcxKjzXT?BeY;gn-JTnR|uD3?9%~dBdvDI|XkZV42&xBsN zwVwk$ZwOckWpm%3R@{fcwyb*8I)y95j5x|X#;BeS%-AF7rk%Ou`LNBG*DYj8wVlqA znU(c7g12t++B!I!7s?w~yo}TI;n%Ep9ov9`Ib>wx8x8Z+6UCjS&nf~~r6r*~?ga4! zygcEqqS-?Mt32491BtK;srnPGcst6ZZ>??Q!FW;pLw^ARx|qGIYxaI|QBi+^^ktd|0(VBJyjmS7qndmjSJFzrPMY#s2>GUloxc zjKVGtIL-aA%Y`3>+t1FfV4tMDo;rU&pPL9np$LHlKM#K=pFm%Bq`y5G?}BAwkMRtn zLH$VfUe4*6B!4CxHa8$FCg0PBIa7rz>7j~x}x2r35-XAlFDlmDz{O+GLR(cCY(Tb6CX}K6ZqZgK&hlRPp#qX zx72SMT?t&Z=WU5ZqUK2mmo`Nq$9aZLZn3>h1Wht+!b_mi5Ln9GTaPatd5MhOIXb1> zP$^usn$bRTs85rdNToFk$jH_*3!cXW_}~0nD1wb-GZdQeZiha{&I6{i$}A$vbo0=m`>Po&~3&S0Wm2o$Vka&wL(_D7jG-K9;L+0w@+E~t5A+lS1{7xKBt72D63Jl9Xk)qY{5E*mF!I(xQ6 z(SEfgVkCc3BX3GbX}pqdw&tMNBTR94nSYdOA65OLf6PJoF)%Hwm~vw5QwhHe-$ZW5 zVUPqIjLTLp${Vd0jb^|al9hEv%k=n>4ZqJI8n z<@ucpD&OY0e#YAB`ZYUoXyqYmez?$M)csDmL0cyb*R!sLMkzK0PSf%A&=#QMc+#b=B z)nH~GVaG+$RvA*!#DSpdxXL**v&B0fbrF~R$4M1i%6Vc&PK=8(yWA@u*FV);MOz-p zL(e^Ysj(3NV?bE797X>j%dgK}PmitT{~^mbCg8tnEf~7A4?L~L`{s)3>@LtdLlVh$ zQq6yNT>OaW>E%UmwTJn`n6Q*^T9AJj&Kv6M9$-zOCa?!MgrZWZuEgM&xK!WgAt@1F zQFcV z^!U;kw7Pm=aCnyCFuglEHyQGEX)bAdo#jX7de~S{f4zGjhv>#5VjBr4$0B#yQ?!NY zION!y=rM@YC=m&h;ri-0Dp>01x{;&0q8J4v`Y6Ssm%v@vj*7FOnaKSvvM;Wx|rc`k7U`7V`cUXM;lta4U=$ROar)Cy;&Do z9oaHyGyBL5zoULjeq#A;$~K zq={98p)P-2c@cQ7)9ijrCv0F&@tj%T*UxXc>vz7L6}@D(?oMg*$jVex+nLPc%d$E6 z37(Q+Akt0OtgC?55fVrGXi&V+_ifJuAqYA)6q4(_PB24J zFj)JvJ69^kELfnI&pgO?MB;Ria)pLtW5*}A*FKC@fYydKG=yF(F+jv7WAr3|_?}Cg&Rel4MtXM7S;1A`82$xd`Ltyc|j@NkJ2+0dm%6(b2q^v-Zzs$0&!f4B8SR1z) z^QE|x5BlM#8B>KCW-?_G%D-l}7~I?+42%)kHaL4b zURQP@raPu&tm1mJW=TVEL*iKzE$CQk^ZDlW;*fG3n0O>-UK;T2fS_t+94kOQd33Az!^!e~w^X zwN`^k&#^a{zb5UfW!MfQQ1aG+uBLg?v9du@ z;oQjn8z*__*@s%B@pq)~FF>AM)~5_kj81(n38VUBPXFR;wpZBHfnC(5j(UCD%Srj= zB$d>+_g+G>XMYpc!l(R-=3HQa@JVe)(LW)_`RAwlKk4W7kL{m3|FM>1wn+U~ITCry zkt^>4BfQ^;UYW)9i@ebtzl5dS{Ch=hi)e2JrTSpqkg$+Y7{%8c8XOWAfsdxfuzQ3j z2Kq9krX?i%p3L^N50A{p1caBMGLvJ8o{=;kw@^nd{J&7*Mq#h`gOc7}7G!sP2&9K) zbZj6e4Awn1J5d}rGdnskUp&0D{4vbF8@@5nlJB8)6?8rAx`Dsk=FD zg^MxkJ_0gvL90X;D_B1F-3Xe+i zCtMfbC!Yp}I1;`rYo&_cL0pABmbjC2*LpiYg)Z5jr=w}~TiRoFp!~s2$;ksE{Vz2C z`6AvbGP~VeHv>v)Fl7- z$JJ<8cS!4}8(HZyTW}CmTn}gm%a%;`4wXNW1Uy5av{SC~JF1&v;;Z$OslL`#Ef#(J zHVj(6^=LBI)6OP6V{vf}anKBH`~5#4ck_dxkkhYtWDuKZIz`9(s8; zS8W(saDbVDh(B9&SFSNW#6Z_}IK*9y^k7dS)=p6|jt<%jSshL4yPzZ)fyho-Q8zu5 z%uF23t|wW)5lAs|Kl4IjE;O^HD;4}eUuD(yJiJj7>(qhBOLpp8ol1&rHyDeR2Ammz zOjeIugt74?p*@HFCN+vg&D^F79~lv4l3zTbmw5R11*Ydu^A=7J2pc---eL1n8ey4a zLBpzvlta6sl!(+UY{$hk#>?TOPf|1GnTH*YX8F2AX*d9pJrd>jVH(fttz>bdam4oU;=38X@^|#d zi52%aYU~hPp>BzJS8Y>!gnnIeD}#p{N}61r3If`?-WIB936!^g`hL(f#LdG>$+6E2 zplzG;3)m4F*Byj-9r{8I|p}f8F#j}uel7rK)14|Oa8-EL_CWqdk ztC|Ey$;dGXJ*)Ty^_UOxRkNHo4fgw-*RRU>#;Rn}-!An+_rV~xFBiFtmnwd4|HF~T z?hoGmNk4x$Qu&|slf?o0uhl7mpq4i2EBz<$o3}Y*p{N?MO#dowyxNS23Y#ziNwD_y z#rS*T$uO+XNm@X7EZGK{7#$MpjS934_9DPs5?xOQc!lLgB?T3RhT=-|gL7i5X-S37 zNG)rWxtT0eZaO=W0A&|EZeHIbyUBxp$2LnZ3Tc)*b4! z{AtQLbmR*(tmwz;z~T3mW{ouQh`Bo4=J+=^bRiK4J8oYUtha6m!(jglC_E_)a>sG# z0Y-@1xr*IB1`66Fej)Y*u4ySzYezB4_o!JPMwQff<0N$ zRbvm%wbBz=?I~1YMGd3`5#Ir!aux<*f65c?g`N!JY8t2xx2oHvH@0p3#>FGEjWxM~ z>Hz1e`_0OK-vT1Y#Xb67r9~0KBCa&LscO8`=XxM~E8Gxh+dx**()IPO>>n9FPFN8+ zHy|*ZryTrM8u=FPybDIj3e)6TPcAZ(Su~(wZ^0$yN|tf@r4>hbEPLVE4EL3#)>Y59 znfz*>zi=n3wCS5Qn61ARO$(U&HEDlha@n~q)6m27$AV#Ps#Qa=`tg%_d<2-V2Jv)^ znMP^Y2zt0&-8Z)31|_yYIV5Y1D1wqz45Gk8$MSKU)Wu^!BM@c5=q1DH z+J+JRs$Y6T=RdWJ(l|F%$7s(*5fjk!!rgg6f@nQ7oY^d!K}ISJB~wVw0gZb&OhemnF-@9ic-^43S&RT%(+ut6c3NKJ-?if#^x6uC zte{JiJ*CmlXT}u5wr&Sk;o9Jm^KZbL$ZboRNQYJc7Yj}uf?qaXYfd>2H7&@~YyuRt zT6+U%Op-=!`CMh568@Nnt5d|7brY#xRfk%2W?yevJL9LR7hjqwSbA<-x()U!g@ml@ zyy_bp=dXS5=I1?Qp`>-p68vxV>@;3BM)vWK3mq&d!Byx6! z$^R*7-cyPLM-BWjBLgK)O}cwWoydcerxIGTTSY&hN~$kIQSK#fibrT7H-LsJP6C0V7OVPQU1+3Z*ljNSSV zLts$!$rls|yPzOTPY<#!J`UE!GBV22+DKp@9vf+mcRKcxi3F#mvDP@}MfTabftMe4 zb~hK|*GGSZkq7%T(tQZ^#`qgW;pgHyA1VqFweQ;c=K69 z6DD#b5&TY@3&a#BB^&A3eO{tHUP-6_(BmqvwO!r*^V^ zjp#P*3GzvTchu>}vk0N{!J5RJNg9NEup|T5nM$@tf2_!e&MBX=2QBr#V&x-|U%L&F zAFC&q8NP8~b`UX16j`Y8ka%q!{-YWV8$~=liJI71Y9mcZ>QyBxnA6=hBWr2q=Qm!J zoPS&-lCud1F?;IxJ2>5huyPYwJE82rb~*wfe&+1F*Y2yHl&9LVYWS~BR)wXIYogxf zvo9L3Py3syTvivF&Q*T@jYscoC1tP+z4>Z!Vtc4fs;}vit7CyQk>n)9Aws{AFMZUO z1<0|k(jdN1za`|Dm(V!}?HaM3^y6~K{{wSnCB5NWKV)l40AA4=fuM8MV6`drUE%+ z<9_SsRuZv^bkMq?f=x)DBOQ>GBu!bgz`!w5ntKUrk_jKm4I^wKT?%b*_#5kNOd~KY z&d7k&{eo0VIAN39!AmHQgbn3TWw zdm2$7bwQd3%J{e@iXG#!akdxpt{rcjIw&%1P~Ka!EZ!KslN0#-Q?h=TV~nw!;jS(K z2P%(QGi-@&VXRiNPW+{!)@}Zx4$n%M84YE10r>66_f1u?xvK+K46^(J>z z&$&rU;kvlK&e-GF9C7swE{-E?g;*^g;e7dH((tXcW~y zi!s~@CE<}iRKEZcnVlByZ|Uh32BXFKlcJ9k4^waw-j|AujE1HJ!Y~d*hXUV3hmhxl zxWLHjP#13qlhr>s0dcXPOvN4pg+;Kh4++hwL3SU<9F~?;!pQjOB(7#=wj~@3TO41W z?>ffGNAJP)vCW~i?VaVl9MHki#~XpU%u#cf$Sk1(e|Q2khx72)XKRr)VR3@$<6SNq zBqjv6$?IKpvCatABVpn@e%G7baYzBRdTphaJIRU;7UFh$Rz1;j+`Cj*i`YQ)P4fb< zG}n4x+$B4syKoQ5j!>>5*KnC9vOR_{7FC{X^%V#kKSzGVnSbgMrMoW*7=pA~++yf! z{U2#lud%B}#%a4)vj*hplILN3yWkkX(*>`-)2n7ru!tKE4e(bny2dVVCS=!Ff(d_&HGzwl@L}|F1h>a)A-r7 zq0&<-kr~c!RyyZyo%=1c`(?Y8S9`$U)O)27exb~ZZN~4{USwWnB#O}NQ9s^3#s~Ux zNu>oJ`}xmIn9H^b2<@K^(f~!iNd!2&ud3C+dnX{CSs?|_JpJp}h_X2}G9q|hQ7RNK z8q)U{&uO%ncV{>V>8WmMacWO_(VR~)&fErhgfW4twHE1v&NPpZBDF2nECV0-7ZJ(Q z3dupSqbzhH0fDX&2$-n<_6&W(24R`9a*r6JWHq>w?t*O<5HQ2gQf#Q{DR$Ft&W*>L zgaS4iCWx-5z0$Q6E>eg|Q}UAx#T$tSsO%4hV9Zq;Z$w(OAo`dr-3Iw|tBohSOL5qd zPQl!gjs0g{OI2Q|@}2WZe5GvlK@lKcJr=&o<~`o6ip$?+Ol*3~8#ll`sfZZO{v)oR zB^JX^ep=PI%ilD0=@(v;Et@Luae9`UsSXh4LJ#l--xE$u_7dzsj!|}D!Fg}An!Dso zHCwGsLEDMYofO1M)1;k%LFWco=XR6E>oR>p7LmI!c`5bh$|NHukr)9Un=> z_1(_>vuPDD`X5Pw$VS_iemI^J6M7llIsKKcp-QEf&-F?dbgr8KL&60-*TL$nU2^%O zrbab3pAUXX4J*C8_${ftR?x#6>F!+&v1DhFb|r2&j`^tsefp06q5MZuKB~zF-fD!O zGKDP2Ikz}i{H5U!o(pz@1Ti5pn$DDZ0U)J+^26Wn%#e2Prudi%?Q^O`{=Cd zYGsegr3HrvJtix}+-uq3xa;y}3rklS?`MvO$N#BI{?ok)ohEO6sA!O2PY(+V5=#9@ZR#88 z`{122Jlgj*C$14RJp-l8%`dXd4#K+D+dqaw*w@EDfBLesJV!WK{J!Z$|3 z_?94@3{Zfu@{9bL6t{Y z%SO&lv7jppX1uqx<|f{kBlS6)&1h(;GxU~MGnJvlek zq;R0sv(+^Q{s}uG4@t^(AVz;iw1)VUJwMOV403G8sL7F;`{HzOIr@#yW<~k;WZW~D zbDEtt8=*q`L@-h|Qf_`{t|#n#oo2ZAw)LxQO|M8F!`5+L@JTtMLd!%GoLdgeH|x`; z3PCIziBxQ>%+JEoS*4Cg#$N{<10iz`GwzE^E=irQW@}wk7}V~mCsl?*hr5g1Rc}i( zsxE)ufB81c;p)ZZ!>RVw(Lb63Wa3mmsv=o_dL==3^Rw2^q;T|%A(VJpwWi1i)z9fr z0fP=vC1G-r=rdM}Y&HjWBbyu>i5vB3p9nwx1v7#C{V_#JXmGA^?=HUuvrt#UqHnyP zwgEFI`4$=uJ#EVwl6yWIqvUeBu51K9dJhP0z=T*QRBI-IcW!>Zbq<}FE%{>mr z2u|btiqb$t$%}U{dh{u+M`t!=OLIhJHE;tKQ{e?tOOghVV5d?2s0tVU%?8B^1hPp= zI7I06wVo?Z;it`1b0QoN4d#Tx&p$U~RxSotRJ!X_SwtZBH+G`<6kkh5qCmde(d@^C z7Aw=cuXKe{NWr+PxRg~Y^mLo1smZhcv@zGWwQL5~L-L`9l=Kr?rZ;wa5VKj#+O}tt zLSK}n+K~-)P>EVuw=Q(wWipW%zE~P)HQ3V~*aFnYb_~GLRPYN+#)(4N!3n1;CU4n# z`3tmp@{@+_TRZw@rrpK7h%>{6eEc&T+8jSB{VVG-6)>tj3vz^Mq`^{DEp8mq3)QmRW3q{W63g>q|Oiz33o=**y0Q!GaWUS ztb<6XEMs3P$=cXMLMj?@bkg^nbN`9^%YA=%pZB--c|Py++MTpDJLdZcf`x2D{t*Cx z*Q8j`qEsZnJZw`gZdWPkP%Z6LtLVX1_GvzPsr~r1PW_O6{g6T9h+)I9VdIF=^Ks*5 z;o;WFBh5n7w&|lCv&VWCEPED?_bi-vwL*TmOn$XOd9`Bw`lHRzXZztVCr39I*yC}E&S#*F8Vt-k8LUBVaE@;pL&xoMa8nmAR zU1vehFQC^83|s+2F<>Yb499_SCV0yNl`1E#rPCJ)T=z+54CR}9{j zfCWBSs053Z;C&5PdJNXO!S)C6A{b0$fhjJSEdaBHV7>w@)_`vd;M?Ng@c%o)|LuQ6 z0JkFsg+S;K{eSBJ`2++3AW$h4duLv<0z#g9sP|Dmg%Lbs|9jF>epe#u;3iV_d`!o&l_EACAOt#T~@4|PzY_-CZe{w-qr>US3O+au$C&-(AUR0^CF-y8T}-- z`#kd%F(mr_Mz~F1=H%%t&yDcF5-zdYzk%bW9QAp+S@@%VbjDO1OiCFOs_L9w*GPj@7Kx0XoZ-H%vb zLEbf@BJ-sp3n1^HO8iTxf)wxTT1A=hMdu_hrrXmIktrk$*C72p5)+e*`moPoZk0UbPk_2mohmb zjkCT?lZ74?hs*4zdT=3rnL;{54o!l}D5QG?qbc8gOBAnC6Z92H!I!>aF)t=SM?5n`^^jZa*G8`Qu)UjbiHlhe((WloK5MdG zE<`hE1D`$65qIY6Vaag)I|kPlc#?`CQ_)6p6!P>o3vYK2=6Cyy>Fj=kvvgCxu$xBMLRMp`A)$VdO?R8B?~SnSI*^(E z4MWLeJ6E6Z`$|-h6`&|O{iN&R%w*Z38b7<<(*-UWnA*0Ac*0FRg|9l!Sw#n~m=);l ztMR6k%A;0CJ1-`DJsW!grt_Owkzb%OE5~m?$Ax5n@q}ykR2c)!Ak^um7<)F2j2UX_ zkQw%a=c%Rg2V%3W{&inOjEl}z_3m<5sJny3k2r%LQGl_TE&6TlHk;UoXPSo{Cd)vi zb|U%=y2`4rzZNNAR+$nPZyDV{Jt;)@xH&C&X2o?{ylqpHcG>IN_K;d$KQBd=<@;21G!7nH*R7wMBz@IVr^^KK|TOJ0Y)=Rgz`cSr` ze8M?VA?=W|yc=rOP0XrojmiiR=KessWpZxg4&@57HHg}hbF%)hRQ=cU(qd{OUw4)mknu&INkJp&Z!IKhVsUCoQbC z3TD*kU{E2&bMGaVYw45nOLES-3@iLuAFqVa9_z`AqpS7w-qEW1{s&*o#l%B41iBdy z`K$MjHrvHz-H;-e73JA-{mXIO5ivONNT(CsWB|2FW#W!AoLS$$+^e-XC+4(D#v~yF z;6Co3i*#HQ6KJvd*WUdk;!hUiAaHHcycB`wp+7W4iN$M9ISh7LtiC}Swfo`T7kk@s zYit4wyb&CP7?SRs@~PgxYV$%7dGMW}Wc3q@jE0`(>4^@$ zFn*4>vqwANBW9bthYR5PIPDzU@Uzkl7*b?im*IbQWxFI#3+jlE=vQcPQWdnmjEdB!W$Aymo literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/GrayCool/images/jbox-icons.png b/apps/static/jbox/Skins/GrayCool/images/jbox-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..c35abcffc91f6cc505418870b6b0d8bf5a712cf6 GIT binary patch literal 6588 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
  • gTCn<{Nls)_0O<$R-M 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/GrayCool/images/jbox-loading2.gif b/apps/static/jbox/Skins/GrayCool/images/jbox-loading2.gif new file mode 100644 index 0000000000000000000000000000000000000000..b8802e16acc2206feef63d65cca9fafaa80a8b33 GIT binary patch literal 4167 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/GrayCool/images/jbox-loading3.gif b/apps/static/jbox/Skins/GrayCool/images/jbox-loading3.gif new file mode 100644 index 0000000000000000000000000000000000000000..1ebb10e61409b5a1247e58387030107e87b347a4 GIT binary patch literal 8778 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 S{fN*C-Grs4uTF_ESOWmk-xUJ@ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/GrayCool/jbox.css b/apps/static/jbox/Skins/GrayCool/jbox.css new file mode 100644 index 000000000..8a84ae323 --- /dev/null +++ b/apps/static/jbox/Skins/GrayCool/jbox.css @@ -0,0 +1,44 @@ +@charset "utf-8"; +/* + ʾCSS ʽֻ޸ɫԣͼƬĵַͼƬСҪĬϵһ£ +*/ +*:focus {outline: none;} +/* fade */ +.jbox-fade{background-color:#000000;} +/* drag */ +.jbox-drag{border:1px dashed #4C4C4C;} +/* jbox */ +div.jbox {padding:0px;border:none;font-size:12px;} +/* border */ +div.jbox .jbox-border{background: none repeat scroll 0 0 #4C4C4C;} +/* container */ +div.jbox .jbox-container{background-color:#4C4C4C;border:1px solid #4C4C4C;} +/* title-panel */ +div.jbox .jbox-title-panel{background:#4C4C4C;border-bottom:1px solid #333333;} +div.jbox .jbox-title{font-weight:bold;color:#ffffff;} +div.jbox .jbox-title-icon{background:url(images/jbox-title-icon.gif) no-repeat scroll 3px 5px transparent;} +div.jbox .jbox-close,div.jbox .jbox-close-hover{background:url(images/jbox-close1.gif) no-repeat scroll 0px 0px transparent;} +div.jbox .jbox-close-hover{background-position:-16px 0;} +/* content */ +div.jbox .jbox-content{min-height:24px;line-height:18px;color:#C7C7C7;} +div.jbox .jbox-content-loading{background-color:#4C4C4C; } +div.jbox .jbox-content-loading-image{background:url(images/jbox-content-loading.gif) no-repeat bottom center;} +/* button-panel */ +div.jbox .jbox-button-panel{border-top:1px solid #4C4C4C;background-color: #4C4C4C;} +div.jbox .jbox-bottom-text{text-indent:10px;color:#C7C7C7;} +div.jbox .jbox-button{background:#FBFBFB url(images/jbox-button1.png) repeat-x;border:#AAAAAA 1px solid;color:#888888;border-radius:3px 3px 3px 3px;margin:1px 7px 0px 0px;padding:0px 10px 0px 10px;height:22px;cursor:default;} +div.jbox .jbox-button-hover{background-position:0px -20px;color:#666666;} +div.jbox .jbox-button-active{background-position:0px -40px;} +div.jbox-warning .jbox .jbox-button-panel{background-color: #4C4C4C;} +/* tip color */ +div.jbox .jbox-tip-color{background-color:#636363;border-color:#636363;border-radius:3px 3px 3px 3px;color:#ffffff;} +/* icons */ +div.jbox span.jbox-icon{background:url(images/jbox-icons.png) no-repeat scroll 0 0 transparent;_background:url(images/jbox-icons-ie6.gif) no-repeat scroll 0 0 transparent;} +div.jbox span.jbox-icon-info {background-position:0 0;} +div.jbox span.jbox-icon-question {background-position:-36px 0;} +div.jbox span.jbox-icon-success {background-position:-72px 0;} +div.jbox span.jbox-icon-warning {background-position:-108px 0;} +div.jbox span.jbox-icon-error {background-position:-144px 0;} +div.jbox span.jbox-icon-none {display: none; overflow:hidden;} +div.jbox span.jbox-icon-loading {background:url(images/jbox-loading1.gif) no-repeat scroll 0 0 transparent;} + diff --git a/apps/static/jbox/Skins/Green/Desktop.ini b/apps/static/jbox/Skins/Green/Desktop.ini new file mode 100644 index 000000000..09485b11b --- /dev/null +++ b/apps/static/jbox/Skins/Green/Desktop.ini @@ -0,0 +1,3 @@ +[.ShellClassInfo] +IconFile=%SystemRoot%\system32\SHELL32.dll +IconIndex=161 diff --git a/apps/static/jbox/Skins/Green/images/Thumbs.db b/apps/static/jbox/Skins/Green/images/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..37d2c8e06c99e32ff48c54ba42aaf5a9f6c2ff34 GIT binary patch literal 19456 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 z z2s^t+4{EMo6fPw-%sxT!!ZIo}5dG+W=&Xn6!j||DWj;J^j-44@d4+^dO|Mu=8PVZ} zwbjCwpx|<}plwPVY!iK5nlSek^w?Rab(x_(nZ1Y6WBqD-4J*;36BMKi){YHRA;e(5 zF%ko}aVcyRH?ty&4lsScCi!<{=vV#sXZKJ2TL1j|{nQ`)GVEXde(Kl!_iO(9HUIsZ z|Nd9!zdzn{{QZ7oX6m%+uiNtN9_6p|=P&=$uiqd4;Sa0-XMTVD%m4I$!2k67-%QKrE-xibfFic*IJHO%471GxY1WxA-&^aGD<*p`V zrWv%-hyQK@1KuaWZu}7nA3B1~QMaNX+XENK3~k_KSVVpIU0A4UQa6)KgPInS-#pS; znr${AL3U6QExks+qa>=NSX5V-W#rTfbboa7$n@p}jsOw!o05y}`f5@nw!S2C4bGLs zywHv3a{#Ssl!9C!D)z}>`9H?ww+prJ$%xyK&n{bA#*X#m+QGBKU9B^gW`O3xNslvr zQ|8tIxEpF8o3rnVJdM;}FWK3i{kD=PG-Zq8P}&2+QCDA$*3`eEKmGWV`W5qkq6hv9 D1Ij5$ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Green/images/jbox-button1.png b/apps/static/jbox/Skins/Green/images/jbox-button1.png new file mode 100644 index 0000000000000000000000000000000000000000..7d8a6a4b21406876efb7462317f1d98ba2c83cdb GIT binary patch literal 338 zcmV-Y0j>UtP)@$vin z`{?NC&(F`?+}y^-#?#Z&{r&ym;NZi-6dkG1Tgy;Teq!|TN@q$hN^zs(J=OPZ`DSBcr?&2tR;wsJ}T5%FD z(TJOPh`$?KF%&CNi?t}lOpL``RAMOxq7YND5eqR9BhgoPGRHF`gEB26Bg2!Bm}Dg| ksfkX0J|bW89sUtu0DUGDT{S~8^Z)<=07*qoM6N<$f_p@~vyu7^c@9*vH?Yg?Uz`(%t z^z{Gpnd|H8*Vota@$t&a%K!S+|NZXI&(GZ4+~VTm=;-MB`uhL!mH+p-|Ni*X)6@U- zq5u5i|MV925@rDg03|gR(J#~^Qvd(} M07*qoM6N<$f^USX1^@s6 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Green/images/jbox-close1.gif b/apps/static/jbox/Skins/Green/images/jbox-close1.gif new file mode 100644 index 0000000000000000000000000000000000000000..a87057e8921fd316e5d6d690138ade8ec67c0f23 GIT binary patch literal 1221 zcmeH`SxggA6oyB^GA=D!hD$Lc$Q%Y2L|aN9iRe~ zpYoG_A1Lt>UXRz~_P9Q{BuN%UNf4q8!;++5l4XwP8J7Lc6QTmcGN2+9qG>u12>3~o zz%ZN5W|4tVj7Fov&`=~235UZx&vP8dvMj?eg98Kop->-92Lr$iib$W&M-ag5al75U zF4qUAvj@k!G0bkWSyA-8+1y3>eSVSvMSY;-U?3Qv$Y1T^-45{3ZnN5~miOi^5Q8E~ zS(4%%2m7~PE|;qZz;PTK8xV@3m6erXO=Ii&fBnk|s74aUL68Yr z7Kg_F1O$&l^VX(sdZNrLfZ5Cnyt-YzI7MCbQAJE^yEtodMPhBKx-Dl3((v$UM`3Hu znr6+uur#UR=Df#G(4AZnoOVQCuiU*MY39<6o!dqVu}e49Wf?D8>XiEW^=DF$bIzkv zFJ$OKn*H`pxZ_ciqsb8NH1#3n3HP@gcxh@`q%EsDsM+&)#`2*l`tBG$Cw0{!?Ji`bQRTQaCEXdxQ_P-whk{!lD4e3lv{$42G7fHjgJfyw zXYChn_UHL_x=+1pP_NtZePL0(ZrXx%Q_a<_?V`6rEKly`tXS#oY{QIR%6tR4{prL@ z?(UN3RO19qIk9Y8ij7EEf10k^o^K?|R%(CbzW!=0zPw`X_0Rg`x{~UKwBwl^K3msh z!Rwk3NTt>xP+nTr!e$g!zbcyfNvB-J;J>*$ro}!MYqYwZ7`4BRyeji6wRS J>gg%anx8VZ7x@4H literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Green/images/jbox-close2.gif b/apps/static/jbox/Skins/Green/images/jbox-close2.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd2dde9009dfd7adbd272044c03a6f57d1a34701 GIT binary patch literal 791 zcmb7>$xjn;6vwA6O9hlg8U+qOqksl&0we;0tU@)4;6cEIAP}@zV2p4e#zR455lny! z4P20TGDeLd?g}JwQ3*5io2}D!*3MSIC@1uS!=K>i<(=O9=6%0;wHIm%i`vqmcu0XE z8~|O{B}rm~!9c*zFbqi$q|rDa2@*q5fMKel(lj0L`$HiqBuPBaF^tdH<~WuBKoEpL zAi#4RO;MVr8-)X06ogPHq{xaWiX6)U3>A0*+XuyQAS<#ch>9WufGV=g_-JGUp=nCj zG?opb8;GuJ0AQjh5ClO}w5q8XiiPzsO_PQNLEwEfg(3(|k^7Drnj}fhz(}I$IF3^U z0Z`2FY6LQ3$+7|fPLjB)Dh33O1p`5rV_B9nzyV4bQ3+gAMPo^R_LaXod>(Y3w3(M?fQRIm|t2`)+ui792L zi>cnStUiC^ z5E9qUBv)QKQ8j4(IFxcV&ZI$Z>5*@kkGdj&9)|>WMhwp7?N5#Q0 zkm;(Y1-Lt6oRO$0V$5Ao-~Wy@MaHDU-36{G;kxC>!55w7?y40_e0+aKiF1eFK4eWO z*&68JJ%g#0N!GeM<<7^Jp~k1Xzl5*j$u93x&)xR5Q5!r7(LV+)o~)WeFT|&m&!_b) z6-YbJo4o+O$gfl^z8UhrozBT=5HEYU>XC@4#2Zx}`*Pyv@ztofzVvhLORm+Czw_nL F*?;R5w}Aiv literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Green/images/jbox-content-loading.gif b/apps/static/jbox/Skins/Green/images/jbox-content-loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..c3ef6ec99c8ce8f0a1b7524c21184fcbca91862d GIT binary patch literal 10810 zcmb`NXHb*t!mg8$1QJksO+b()O%X&;Q9&017Q}{hLk~5fhn_}A=)HH4UKOc|0i+6u z^iJqiKx}}@I=J@U-}&bJJv%d*$)8LznfJMJ-S_=!>)ukkWHAlk27Cno{{H8YQ|ev* ziu$54D!<&XunM1EfQ`?x$t-eD%t6OySVpHmi%c~wswU)?`GhAMg(f~tdyWZ-e@KaY zkdp5d9D6^b&@DO7ftL6rA=@^q*rT*2m>i>5RUh%{b-dUC7zPIb0Afc%H{EP3JZ!8* zz3n~Fq81JoI46vS^;vrtTMR(#Z&p36$B%Am>T4;TRb&Dlzd`=^3Hb9R0gxk6(MW6i zOms{Q`r0iDVqbk?I{v@(l8EkBUJMh|q9+WJ+{! zoCnGlVlHQ9&BZGKhv!y+5cxtcSzfUqtg$XHYHMK)jj!L-(Xp*>-ZnO|x4r7_>1=Lq z?0eT!-P`w}Wuk4WW2S4Us#Tzvg-IR^g~3_bPH?b7n2W!2@w0#C`1R|{w;#Lfn`2Rg zLOc_!=L+tem?jCpx$W0Akl9A$h3LH#7+AO!B={x3RG@lZhbnx;ZAuOy;4cHWStgCN z;u7!>ZnuqI#khnI25R0bTL;`l139aqv+9=#YagC#XB?7cAD8rHKZ(26-Z)h9vB_0;eT1*aSBS@z-;=Cn$0D3DlqW_Z?UiNxswu%b@;drn!9ig^W=K-l8HZMjthEuQ0 zIGEj1CkNc8n=BU6XJi;p;U@~DQ?JLU<uRqVL1J$Kwlbw^&Dz}@biFex^DR`CA7{v6O8S~Q$wG5S<05OrI( zAl1@kq`(kk&b#^)eHh;lM_m|zCoofQEfE8*eU~N^^g8SuD2dcHyAb#!I#=#&<3#qp z&gJpEaM_Kbd(RoPcYN8DMi%Pxsi^}KECY!h(IcVggMDX386WJd;0~r z$3+AOq=#Y1iPQiBF2au*geN-rL_*SIy-4LzNqLT0Sm-|oK?M2dByw;N}l9Gdp%f4?v|((k^ywuBh#o?jdB2>i6LwE5x7!OUpUu6-#p zmPB{`n*ou>1KJe9OokjR1{OdPltbz487wN99Chjxs#nLYg~Y^rq#?y}DOLgurKl5M ziw@e{N|w92QfAM+(itx*x$9y7V(~+Ug6;y_VT|p=2x(0a@8MUQy9r$BlQptWT5p$M z%~OK-aRPxfk&E)8mvR)cEZg%fII6PC&FZ+q*Ao)6x5;eY2Wu))5!-W3f?)Pr*>pt) z-G^UX(ZAk#q00~Pvs~R`83plIy{?zeaG&o>;I%9GwO{G*M(B+AcX^}l&sgl9a$u{z zZ-c=I4m6eTgeDQr7b}f%Oy9>gcO}R@i`LlRT@c8X%R&(jzpTQq-OkFS`+QzpOiA)S zc{Sk2w|7%_Fq^-dOg{~7Ubj=1{|)}#E+#tb|F)&>nb*Q8A~F0`8Wfa>h^7LFXv-^H5=UrvUY$aWpWJ z$6VDk;$Rp zns`m8zs_<*!KF*U@M}uC^YJ^AY72HkIvUR@FjQ3;?b}(SyS5jg{+m&s2C2DkZi%>u z16Wz*1)=vRyCfrL`Pi1Dn6gT$+c}-^z#?fj(Gy^23oM|#NJ(QoRX)$?j4ioA*S<$C z?VvD7c4(u(&#mC+YM<~|HiVTDH`=3uT+-mtckjB;g<-slYRizXR(Uaqvm5}u#T`HS z`TSw4?#y_2`Gta9yT#I-NzS9ObG2MZz>g+2l>Aq1Y+T8YVh3*Y^!UX0-y-w#6AJs& zekzX%^Oi&9`#7IfDo zAtKx_#sP_OiDVD*PmUl{sG0Z_7w=#QEz>D2HzUiQP?_eJpXC_uj1)PEI{xc)L_!4M zT|)3oIK-(-2Gdu#eX2(`1sfeX7EUTgR z2g^Haj7@{ctojRk@LX2@h-_8Tj|IVKeP9cK4-8d1gFP5rp;8}rb4iexdG%9YYrI^!7pi1cVA{QBtCyipqnPf}t%H-#$BmM)U!M18YNdg$ z%8V3_W^*;Zu!cWI8aGz}%q%9$kFRK!` zKP`LrCOwQ<^_JKE?p(W%q}s(KHMhH+@!S9d z4?^@eXZU^F9H?Xdp4prViredZ>Kz%N{%z-1``E16&S%f8AaA21hOmD^b?1y3t5Q8X zvAq~;3gpm7i8w`=*(HNO(<7QbRnAp+ab4u`7Ai4?WllxFDY_-}O+(SFlBk}BRhaa{ zyt|PXV(nT`W7Fef(9^MM`4Q)O>aA#34fygRg`TdC`t87KI8X6))qo`~-NrUxU=CTi_(r2VjYJ6-nX^g&Rv9U1kB5&$0#3o_ zu9EpfLF+u&ode0R3#kSZ7LYGZrO%WNbTescw|-)}R9tHBhM!UOQ*<`WO=rB{Xiud}61B8i@$p>~q~TjB4Xd zWLC3UWRJnF8u^1i;T<2H`P{GFcl;RjKO*vLuUB>F*Ovk9bHBe1KgIn1_Fol|5Ie

    h&Wda6MKwT7zG+Y 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Green/images/jbox-icons.png b/apps/static/jbox/Skins/Green/images/jbox-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..c35abcffc91f6cc505418870b6b0d8bf5a712cf6 GIT binary patch literal 6588 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

  • gTCn<{Nls)_0O<$R-M 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Green/images/jbox-loading3.gif b/apps/static/jbox/Skins/Green/images/jbox-loading3.gif new file mode 100644 index 0000000000000000000000000000000000000000..3a07cfc0dd7d3621e26786e1fffd7c626a7b8329 GIT binary patch literal 8778 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Green/images/jbox-title-icon.gif b/apps/static/jbox/Skins/Green/images/jbox-title-icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..b9c772fb5dd615a76731d4c119ff9fe5ea34ea5e GIT binary patch literal 73 zcmZ?wbhEHbBe?# S{fN*C-Grs4uTF_ESOWmk-xUJ@ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Green/jbox.css b/apps/static/jbox/Skins/Green/jbox.css new file mode 100644 index 000000000..a112bcd8a --- /dev/null +++ b/apps/static/jbox/Skins/Green/jbox.css @@ -0,0 +1,43 @@ +@charset "utf-8"; +/* + ʾCSS ʽֻ޸ɫԣͼƬĵַͼƬСҪĬϵһ£border:dotted solid double dashed +*/ +*:focus {outline: none;} +/* fade */ +.jbox-fade{background-color:#000000;} +/* drag */ +.jbox-drag{border:1px dashed #818E49;} +/* jbox */ +div.jbox {padding:0px;border:none;font-size:12px;} +/* border */ +div.jbox .jbox-border{background: none repeat scroll 0 0 #000000;filter:alpha(opacity=20);-moz-opacity:0.2;opacity:0.2;} +/* container */ +div.jbox .jbox-container{background-color:#ffffff;border:1px solid #999999;} +/* title-panel */ +div.jbox .jbox-title-panel{background:#818E49;border-bottom:1px solid #CCCCCC;} +div.jbox .jbox-title{font-weight:bold;color:#ffffff;} +div.jbox .jbox-title-icon{background:url(images/jbox-title-icon.gif) no-repeat scroll 3px 5px transparent;} +div.jbox .jbox-close,div.jbox .jbox-close-hover{background:url(images/jbox-close1.gif) no-repeat scroll 0px 0px transparent;} +div.jbox .jbox-close-hover{background-position:-16px 0;} +/* content */ +div.jbox .jbox-content{min-height:24px;line-height:18px;color:#444444;} +div.jbox .jbox-content-loading{background-color:#E6E6E6;} +div.jbox .jbox-content-loading-image{background:url(images/jbox-content-loading.gif) no-repeat bottom center;} +/* button-panel */ +div.jbox .jbox-button-panel{border-top:1px solid #CCCCCC;background-color: #EEEEEE;} +div.jbox .jbox-bottom-text{text-indent:10px;color:#444444;} +div.jbox .jbox-button{background:url(images/jbox-button2.png) repeat-x transparent;border:#AAAAAA 1px solid;color:#888888;border-radius:3px 3px 3px 3px;margin:1px 7px 0px 0px;height:22px;cursor:default;} +div.jbox .jbox-button-hover{background-position:0px -20px;color:#666666;} +div.jbox .jbox-button-active{background-position:0px -40px;} +div.jbox-warning .jbox .jbox-button-panel{background-color: #FFFFFF;} +/* tip-color */ +div.jbox .jbox-tip-color{background-color:#818E49;border-color:#818E49;border-radius:3px 3px 3px 3px;color:#ffffff;} +/* icons */ +div.jbox span.jbox-icon{background:url(images/jbox-icons.png) no-repeat scroll 0 0 transparent;_background:url(images/jbox-icons-ie6.gif) no-repeat scroll 0 0 transparent;} +div.jbox span.jbox-icon-info {background-position:0 0;} +div.jbox span.jbox-icon-question {background-position:-36px 0;} +div.jbox span.jbox-icon-success {background-position:-72px 0;} +div.jbox span.jbox-icon-warning {background-position:-108px 0;} +div.jbox span.jbox-icon-error {background-position:-144px 0;} +div.jbox span.jbox-icon-none {display: none; overflow:hidden;} +div.jbox span.jbox-icon-loading {background:url(images/jbox-loading1.gif) no-repeat scroll 0 0 transparent;} \ No newline at end of file diff --git a/apps/static/jbox/Skins/GreyBlue/Desktop.ini b/apps/static/jbox/Skins/GreyBlue/Desktop.ini new file mode 100644 index 000000000..09485b11b --- /dev/null +++ b/apps/static/jbox/Skins/GreyBlue/Desktop.ini @@ -0,0 +1,3 @@ +[.ShellClassInfo] +IconFile=%SystemRoot%\system32\SHELL32.dll +IconIndex=161 diff --git a/apps/static/jbox/Skins/GreyBlue/images/Thumbs.db b/apps/static/jbox/Skins/GreyBlue/images/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..37d2c8e06c99e32ff48c54ba42aaf5a9f6c2ff34 GIT binary patch literal 19456 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 z z2s^t+4{EMo6fPw-%sxT!!ZIo}5dG+W=&Xn6!j||DWj;J^j-44@d4+^dO|Mu=8PVZ} zwbjCwpx|<}plwPVY!iK5nlSek^w?Rab(x_(nZ1Y6WBqD-4J*;36BMKi){YHRA;e(5 zF%ko}aVcyRH?ty&4lsScCi!<{=vV#sXZKJ2TL1j|{nQ`)GVEXde(Kl!_iO(9HUIsZ z|Nd9!zdzn{{QZ7oX6m%+uiNtN9_6p|=P&=$uiqd4;Sa0-XMTVD%m4I$!2k67-%QKrE-xibfFic*IJHO%471GxY1WxA-&^aGD<*p`V zrWv%-hyQK@1KuaWZu}7nA3B1~QMaNX+XENK3~k_KSVVpIU0A4UQa6)KgPInS-#pS; znr${AL3U6QExks+qa>=NSX5V-W#rTfbboa7$n@p}jsOw!o05y}`f5@nw!S2C4bGLs zywHv3a{#Ssl!9C!D)z}>`9H?ww+prJ$%xyK&n{bA#*X#m+QGBKU9B^gW`O3xNslvr zQ|8tIxEpF8o3rnVJdM;}FWK3i{kD=PG-Zq8P}&2+QCDA$*3`eEKmGWV`W5qkq6hv9 D1Ij5$ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/GreyBlue/images/jbox-button1.png b/apps/static/jbox/Skins/GreyBlue/images/jbox-button1.png new file mode 100644 index 0000000000000000000000000000000000000000..7d8a6a4b21406876efb7462317f1d98ba2c83cdb GIT binary patch literal 338 zcmV-Y0j>UtP)@$vin z`{?NC&(F`?+}y^-#?#Z&{r&ym;NZi-6dkG1Tgy;Teq!|TN@q$hN^zs(J=OPZ`DSBcr?&2tR;wsJ}T5%FD z(TJOPh`$?KF%&CNi?t}lOpL``RAMOxq7YND5eqR9BhgoPGRHF`gEB26Bg2!Bm}Dg| ksfkX0J|bW89sUtu0DUGDT{S~8^Z)<=07*qoM6N<$f_p@~vyu7^c@9*vH?Yg?Uz`(%t z^z{Gpnd|H8*Vota@$t&a%K!S+|NZXI&(GZ4+~VTm=;-MB`uhL!mH+p-|Ni*X)6@U- zq5u5i|MV925@rDg03|gR(J#~^Qvd(} M07*qoM6N<$f^USX1^@s6 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/GreyBlue/images/jbox-close1.gif b/apps/static/jbox/Skins/GreyBlue/images/jbox-close1.gif new file mode 100644 index 0000000000000000000000000000000000000000..a87057e8921fd316e5d6d690138ade8ec67c0f23 GIT binary patch literal 1221 zcmeH`SxggA6oyB^GA=D!hD$Lc$Q%Y2L|aN9iRe~ zpYoG_A1Lt>UXRz~_P9Q{BuN%UNf4q8!;++5l4XwP8J7Lc6QTmcGN2+9qG>u12>3~o zz%ZN5W|4tVj7Fov&`=~235UZx&vP8dvMj?eg98Kop->-92Lr$iib$W&M-ag5al75U zF4qUAvj@k!G0bkWSyA-8+1y3>eSVSvMSY;-U?3Qv$Y1T^-45{3ZnN5~miOi^5Q8E~ zS(4%%2m7~PE|;qZz;PTK8xV@3m6erXO=Ii&fBnk|s74aUL68Yr z7Kg_F1O$&l^VX(sdZNrLfZ5Cnyt-YzI7MCbQAJE^yEtodMPhBKx-Dl3((v$UM`3Hu znr6+uur#UR=Df#G(4AZnoOVQCuiU*MY39<6o!dqVu}e49Wf?D8>XiEW^=DF$bIzkv zFJ$OKn*H`pxZ_ciqsb8NH1#3n3HP@gcxh@`q%EsDsM+&)#`2*l`tBG$Cw0{!?Ji`bQRTQaCEXdxQ_P-whk{!lD4e3lv{$42G7fHjgJfyw zXYChn_UHL_x=+1pP_NtZePL0(ZrXx%Q_a<_?V`6rEKly`tXS#oY{QIR%6tR4{prL@ z?(UN3RO19qIk9Y8ij7EEf10k^o^K?|R%(CbzW!=0zPw`X_0Rg`x{~UKwBwl^K3msh z!Rwk3NTt>xP+nTr!e$g!zbcyfNvB-J;J>*$ro}!MYqYwZ7`4BRyeji6wRS J>gg%anx8VZ7x@4H literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/GreyBlue/images/jbox-close2.gif b/apps/static/jbox/Skins/GreyBlue/images/jbox-close2.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd2dde9009dfd7adbd272044c03a6f57d1a34701 GIT binary patch literal 791 zcmb7>$xjn;6vwA6O9hlg8U+qOqksl&0we;0tU@)4;6cEIAP}@zV2p4e#zR455lny! z4P20TGDeLd?g}JwQ3*5io2}D!*3MSIC@1uS!=K>i<(=O9=6%0;wHIm%i`vqmcu0XE z8~|O{B}rm~!9c*zFbqi$q|rDa2@*q5fMKel(lj0L`$HiqBuPBaF^tdH<~WuBKoEpL zAi#4RO;MVr8-)X06ogPHq{xaWiX6)U3>A0*+XuyQAS<#ch>9WufGV=g_-JGUp=nCj zG?opb8;GuJ0AQjh5ClO}w5q8XiiPzsO_PQNLEwEfg(3(|k^7Drnj}fhz(}I$IF3^U z0Z`2FY6LQ3$+7|fPLjB)Dh33O1p`5rV_B9nzyV4bQ3+gAMPo^R_LaXod>(Y3w3(M?fQRIm|t2`)+ui792L zi>cnStUiC^ z5E9qUBv)QKQ8j4(IFxcV&ZI$Z>5*@kkGdj&9)|>WMhwp7?N5#Q0 zkm;(Y1-Lt6oRO$0V$5Ao-~Wy@MaHDU-36{G;kxC>!55w7?y40_e0+aKiF1eFK4eWO z*&68JJ%g#0N!GeM<<7^Jp~k1Xzl5*j$u93x&)xR5Q5!r7(LV+)o~)WeFT|&m&!_b) z6-YbJo4o+O$gfl^z8UhrozBT=5HEYU>XC@4#2Zx}`*Pyv@ztofzVvhLORm+Czw_nL F*?;R5w}Aiv literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/GreyBlue/images/jbox-content-loading.gif b/apps/static/jbox/Skins/GreyBlue/images/jbox-content-loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..a1ba8bc4fb75aee044cba5125642854d9b49ee31 GIT binary patch literal 10810 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/GreyBlue/images/jbox-icons-ie6.gif b/apps/static/jbox/Skins/GreyBlue/images/jbox-icons-ie6.gif new file mode 100644 index 0000000000000000000000000000000000000000..201b912e0db150b0111539e1ec35b2555b618b60 GIT binary patch literal 2767 zcmeH``8yQ)0>)>tj3vz^Mq`^{DEp8mq3)QmRW3q{W63g>q|Oiz33o=**y0Q!GaWUS ztb<6XEMs3P$=cXMLMj?@bkg^nbN`9^%YA=%pZB--c|Py++MTpDJLdZcf`x2D{t*Cx z*Q8j`qEsZnJZw`gZdWPkP%Z6LtLVX1_GvzPsr~r1PW_O6{g6T9h+)I9VdIF=^Ks*5 z;o;WFBh5n7w&|lCv&VWCEPED?_bi-vwL*TmOn$XOd9`Bw`lHRzXZztVCr39I*yC}E&S#*F8Vt-k8LUBVaE@;pL&xoMa8nmAR zU1vehFQC^83|s+2F<>Yb499_SCV0yNl`1E#rPCJ)T=z+54CR}9{j zfCWBSs053Z;C&5PdJNXO!S)C6A{b0$fhjJSEdaBHV7>w@)_`vd;M?Ng@c%o)|LuQ6 z0JkFsg+S;K{eSBJ`2++3AW$h4duLv<0z#g9sP|Dmg%Lbs|9jF>epe#u;3iV_d`!o&l_EACAOt#T~@4|PzY_-CZe{w-qr>US3O+au$C&-(AUR0^CF-y8T}-- z`#kd%F(mr_Mz~F1=H%%t&yDcF5-zdYzk%bW9QAp+S@@%VbjDO1OiCFOs_L9w*GPj@7Kx0XoZ-H%vb zLEbf@BJ-sp3n1^HO8iTxf)wxTT1A=hMdu_hrrXmIktrk$*C72p5)+e*`moPoZk0UbPk_2mohmb zjkCT?lZ74?hs*4zdT=3rnL;{54o!l}D5QG?qbc8gOBAnC6Z92H!I!>aF)t=SM?5n`^^jZa*G8`Qu)UjbiHlhe((WloK5MdG zE<`hE1D`$65qIY6Vaag)I|kPlc#?`CQ_)6p6!P>o3vYK2=6Cyy>Fj=kvvgCxu$xBMLRMp`A)$VdO?R8B?~SnSI*^(E z4MWLeJ6E6Z`$|-h6`&|O{iN&R%w*Z38b7<<(*-UWnA*0Ac*0FRg|9l!Sw#n~m=);l ztMR6k%A;0CJ1-`DJsW!grt_Owkzb%OE5~m?$Ax5n@q}ykR2c)!Ak^um7<)F2j2UX_ zkQw%a=c%Rg2V%3W{&inOjEl}z_3m<5sJny3k2r%LQGl_TE&6TlHk;UoXPSo{Cd)vi zb|U%=y2`4rzZNNAR+$nPZyDV{Jt;)@xH&C&X2o?{ylqpHcG>IN_K;d$KQBd=<@;21G!7nH*R7wMBz@IVr^^KK|TOJ0Y)=Rgz`cSr` ze8M?VA?=W|yc=rOP0XrojmiiR=KessWpZxg4&@57HHg}hbF%)hRQ=cU(qd{OUw4)mknu&INkJp&Z!IKhVsUCoQbC z3TD*kU{E2&bMGaVYw45nOLES-3@iLuAFqVa9_z`AqpS7w-qEW1{s&*o#l%B41iBdy z`K$MjHrvHz-H;-e73JA-{mXIO5ivONNT(CsWB|2FW#W!AoLS$$+^e-XC+4(D#v~yF z;6Co3i*#HQ6KJvd*WUdk;!hUiAaHHcycB`wp+7W4iN$M9ISh7LtiC}Swfo`T7kk@s zYit4wyb&CP7?SRs@~PgxYV$%7dGMW}Wc3q@jE0`(>4^@$ zFn*4>vqwANBW9bthYR5PIPDzU@Uzkl7*b?im*IbQWxFI#3+jlE=vQcPQWdnmjEdB!W$Aymo literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/GreyBlue/images/jbox-icons.png b/apps/static/jbox/Skins/GreyBlue/images/jbox-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..c35abcffc91f6cc505418870b6b0d8bf5a712cf6 GIT binary patch literal 6588 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
  • gTCn<{Nls)_0O<$R-M zF5gAOuTD)}c{2w@IoNBbfR=@?_|ZCg{}Haf3j^QJA=y1S^4d4mHX?p7m+!*=esMg- znAh{DdTe^h5KpFF{qLMBhQMMHD>MuBzjH1_uOAxbu~^F4xwDJ4YoB24+9zmlKU&bd zD_3r1&z|4X+`L~Gk2oDaxmmzjFW|)I^XW<*BuQdoVuGHY9(sCun3$Nznt{ldN~lkf z69H%abo}JztU|Ni%}ADdM5{Wlnro00n}Xw2Wpq8D_P8HB184UyKuDH)X1&Gn7>Rq1s>V%)XYWE!tb=Dd{$84124bqHSHNj{y=RywWy(}EH}A_b zamu_FOWFLn_Vyz=O`ORiM&lXn4Fwc-^LImDv!5j zn={Z#JfyzSx^^~CEsEMxU42(Q{_wBrzX;Iw8m!utdBIh#ypg-AYiHHA;vu!|qIeAS zymenMTtx$Y zF04RNl$>wavfg|M0u2ofEL*lL{k~tj#-&S_&{|tDGcz+^Ce?OEda#y61Oy2sIH<{! zHVe@98r1GdyT8C0y8mt~;oPZ_+J>aQ6;l`CED=whv>`LRufn;5x_L77Dn9i69ka8u z1@+S6@%ww}=xFD`2an@$EX-bcJYVLkU;Q;DCDm9guC!~;pZ`9mPyd519ua5|uo4c3 zb%~QmByhXkw77njcDUVcUFnA)2x?ncL0yrQ84anm1cuD==PzWMR|dv-vt=to|6P!W z$b>q0DuyR>FqYH2FBLHFa<|^Xld?s8=#diZ!sNUOIT9(EuGC?O7(yG;gl7p%9PA?GP>h zlzndK2l~u=y)y}^sNJ326X(l$y|1LD4Sy;TjRyGWqyNm4T3+JHl`g||ioiHTb@`!$SHH@$0|d>{QnxTrZF3QMmUtjht79d9`>9>Xo*T zNR1wu$)(dvCr@+pezt6RG3RFv$7=TM>CHO_oR7x@3@JqFY&M&^w!ivmFeXXQfqYulYX9a2fDD&#! zS*(}dsj$Apj>T^*H(tATP1m)hrKOsB>EUT^-cNh`k&Lu6iYQtZ%^8=mb7xmF)#%m5 zBgW*=`PAUS;c(pW-q+!9%$p$9cE+^Td6J`W!P%&e3vvvFa!L@Z#8 z=k&v>DKn!;^XlO#Mz6lN&hXyPE7tgP3J^!_1I&rN4Os zKK$o0B3A($LPT%Cp$Ksp#)NN>|r`v~t0qmtfGV$s@YWj}64+&j&`EafF_R!;4-(p zJ|_>1DMWC)-B>J^B{#3dVo5$d5$5E9F_*dR_56wQn%4=9jG@S|Y$Moo^)%~PSO>gJ zv$V~v)~(3u=1Rw!>*q$hiet?5q7WbSIvt(O*0fB#WB zI@;;zXwTWJro!*<<=C+ey!F;svdo*0M+8W2eLoUU%wf0I(Ae0xq^X1`iZnJhVz<^1 zPs{-vDY)HU-D-Y>L{!}~*6_HVRKk%q3!(K@-SD_tcOnXKq~P{;BRuC08lU4e$g|4& zR2K;IdbNJ#3q~cGEA*kOWwjx_^ziuoy;-Kr6}b#vh(}y_inbmW1ff&HMY*#9kH?eO z#JSEFDx2CDC*eX6gie=v>tW5m#9n(CsiYILL)|mx*_+=qq7^bohym z9l`e6rR6bd-XeI?_407nmp+%bY`*o|`OI64UPgF~gcgtCO`VFOP*zrk-EL27C=?1Y zH8qtsZ+kN~brzZ{&id>oZ0a;Lmww%wI={UwoVc(^FE8E4f0;KAPHn;+9lgxO)4$Ii zAZ=K4U3wYe(KUe7!6O|ybZF6ta@){c;y2@S@zExWxN4QvYR6S>ng1b*lsKVKh+r_7 zc7(&>`CeF(B$h8WbP-=SHutlv+;P)*(t6z`;8FGZ?IOKOsJ^2L zbET8X;q=va(<2j%^nJ`o-^WZ{N}ud1yR(j(&o*ASUPgEdg%O@lf7s+U;JF-me%p-v z{wL^%O>Q2~r#~%qoA3l;KW`k1{QE&rJ`sA|ES^t)-0wEyxg2>ush9GJ(CbF?2%rAE u>g~zni@lQ6YfMA0>g3OvK6Xp;{Qm&Ty9t1djtSKO0000xzjCnv)>dhwiK1A!Wlh)@ebfikKPAV5F{0YN|{Mg?(X5C{Tc2nom- z!Wa+|NDR@62r6i`2vSfB3#*9Is|9KuaIVW<+v^>Iy$^lh;jVSp>fLMY{j~Sm>-+t` z@8kOWI=dt=0VePk0RHuH3CmkGJztCKH1(R^=^q{rk4^3`sM~dvG;b+#6)N41-*{~h$?5^!o z9W)o#T=|x5OfYn_9AZflA+4Qq_r*Ej?xp z>~m++Sk->1B}Y@D-Tm@x^YP)5^L3QVGXB^2Rule6u+MH+s3DIV9cMe>G41(7aA+;+qb@#ixV>`;;?wm8j?%H6LcZzobUwG>w{Rh?`w9hYSkM5WsJ09)p zNNe$}x~&R>hveaWI`=|=_~O9xlYzPx!K}&aRpRJ%+=Ui3eUO~fC^bXB|pMmnUW?^e}*R^7Jc z*ca!WXN*V935&^psh4kUub2PWp6e)x6R)mShK-z&hp#P@?+Gl*9=heu#A7BLXM$*# zXQ=E6V{5T7l^NK#yu+VR{Cb~w%tt%2oz@Ex4`S*FDv}Rv+eKrM3$}F=M<1FI;B?dt zCkTav9ClF@gF-FY%m#O6m}No9?xbcGr8T&{y`+Xxtr2$UvSnYM)E(*6b)0KgvHDG$ zF48Xfb|sbB56aon5|Ko6Q8|d^NN5YgrjZ*m`Ya305-Ye*Xk82Q-abdGO;C zpzAW@x$~RH(e7Pk^Vl^t+4-&Hc&sGE$nxw(wYludl4XlJV8Q*Jbk+RWZeyPa!=Jaz2-)m>ILSU-%q8y5FwM$gfl`)LSaS=G zwkZ)Jr9xchq12(8<1Hu9cJ=Xf$IfxTpA@fURZPCz|C`4>Y;OAcp}P({$371l z>{#6WAIEQ_ogcHZ_E8JsYO8R%W+)_#;z^dfnt%CsVT!DvrkS5nvxMa&vfy^C7Ffnu zNM!E=x<4K8P5iP71`{wwC=^n@{UFP9u-MMaHzamP#FDus8^R~j2wUt9!X)mh;52Vy zLcD1zlx4Qp+bXD`5l5O^4pB?GXgd%cAu>J+q)pd7dQ|<5cd6y0fTW-o?laLd zZl!lm>e&v-=^d&z5;DU3~m+7YZP(Q(piU0W4-qT@_8K@d@3kt2%{! zhrJ3E$V&hAdGsj_^<82?UGkGqfwCGLuB#`xttghb)VIQl=9)IRQQR)q zxqu>8xhWArz@tenJw0#>re$)-q<(~CQS4;~qFxZ(f7Uw{ucVPs6sCdW+oGUdIhG-m zDKtCq!G;jvI*P~@!43d2H8J3G>n-$?OcD9alHT{|`Z5CnKnR#vX^n~haxik);DF_# zP4Mgw9K?DnFpZR9gIhP1*o4>^oS1c+v<%6%k#8y(coFL}QT4MqInO>KcHoO zuv*5e1uK(;PNi+GU}gaif?;BwCr7I#wXVu>$s?VDNom4ZGa?cTozv>P9qDeFAcFMc zL~VCyzF;+a2cX4_jG`mRO@J~CS4oNEsPRn%BMy(0Amf9;eVjDh z!vn`3U{A2VVd+Ek`Qz`N4riKdOXAu~-&qm0lsh3Xa%WELw%H|4$6Wu4Gb? zr=33gASZ{;fDnzQI6W4JyHL1?K>!nT_-YM8^d2;UKyWB-g$Gfi#YqUFh4mg71@j}V zZz0BaV2nCl3g4QT!-=CV9PrkU*fZ}(yeCK%@D6+N6;C5prI%CAVVH zi+AFm5(K>whzMF$T_SX(R@b97^76`t(pHYxl>#n+KoH_b5U@_S0D{zmkj^uF^c*^M zuoFNYHi@B;S9m}=bsr3?!6{%%<|^yku<_J){w`9|?UTUl#seJUZ4y2ozJd4Po2Pei z!S{?;w4dYNU-9}vIRF&2Ig#lTC%hL8!ju2W1Z4CZkYucnMgb5Z~2Z2!c)_?sgI6dtkJmuWZ(30~R#M zqRw(}eEXC$oBS3ytYzGLv)(rDHz!)>YjcV9(oYDH(*Gs_5$NwNNExEb0|xfI-?TQB z=Tu4UR-l5T{)VDaBWuK%Y8ZIe@AMWW7j>c#u7ARdqHD0i=WX3GTPKy^w3d-efQ2=Q z_XcUC^mI~+of9+45iaz1i!U}!Lx{mEeJI(%3Wd}qk_4;Tn~%A)YaLpS(II7LbGM@2 zEwYYdM+HGqzZ0E7zBts7YjX*+8X}gO1RYq>hh4Zx6zv}$;jf4q1YNP*xX&VO#`YQg x1R3+N}4^NO2-UxD25Llc^ZEAV_%%v(kBx^omEJL(hQ_HRDNzh?jd literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/GreyBlue/images/jbox-loading2.gif b/apps/static/jbox/Skins/GreyBlue/images/jbox-loading2.gif new file mode 100644 index 0000000000000000000000000000000000000000..1ab0b7e44c39a5f1a0f84da4b4ebf118cc78319f GIT binary patch literal 4167 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 r`>ZPO-d!Px97e>sW4oqqm&NF6+w!gc3Be?# S{fN*C-Grs4uTF_ESOWmk-xUJ@ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/GreyBlue/jbox.css b/apps/static/jbox/Skins/GreyBlue/jbox.css new file mode 100644 index 000000000..9c5427bd4 --- /dev/null +++ b/apps/static/jbox/Skins/GreyBlue/jbox.css @@ -0,0 +1,43 @@ +@charset "utf-8"; +/* + ʾCSS ʽֻ޸ɫԣͼƬĵַͼƬСҪĬϵһ£border:dotted solid double dashed +*/ +*:focus {outline: none;} +/* fade */ +.jbox-fade{background-color:#000000;} +/* drag */ +.jbox-drag{border:1px dashed #546C83;} +/* jbox */ +div.jbox {padding:0px;border:none;font-size:12px;} +/* border */ +div.jbox .jbox-border{background: none repeat scroll 0 0 #000000;filter:alpha(opacity=20);-moz-opacity:0.2;opacity:0.2;} +/* container */ +div.jbox .jbox-container{background-color:#ffffff;border:1px solid #999999;} +/* title-panel */ +div.jbox .jbox-title-panel{background:#546C83;border-bottom:1px solid #CCCCCC;} +div.jbox .jbox-title{font-weight:bold;color:#ffffff;} +div.jbox .jbox-title-icon{background:url(images/jbox-title-icon.gif) no-repeat scroll 3px 5px transparent;} +div.jbox .jbox-close,div.jbox .jbox-close-hover{background:url(images/jbox-close1.gif) no-repeat scroll 0px 0px transparent;} +div.jbox .jbox-close-hover{background-position:-16px 0;} +/* content */ +div.jbox .jbox-content{min-height:24px;line-height:18px;color:#444444;} +div.jbox .jbox-content-loading{background-color:#E6E6E6;} +div.jbox .jbox-content-loading-image{background:url(images/jbox-content-loading.gif) no-repeat bottom center;} +/* button-panel */ +div.jbox .jbox-button-panel{border-top:1px solid #CCCCCC;background-color: #EEEEEE;} +div.jbox .jbox-bottom-text{text-indent:10px;color:#444444;} +div.jbox .jbox-button{background:url(images/jbox-button2.png) repeat-x transparent;border:#AAAAAA 1px solid;color:#888888;border-radius:3px 3px 3px 3px;margin:1px 7px 0px 0px;height:22px;cursor:default;} +div.jbox .jbox-button-hover{background-position:0px -20px;color:#666666;} +div.jbox .jbox-button-active{background-position:0px -40px;} +div.jbox-warning .jbox .jbox-button-panel{background-color: #FFFFFF;} +/* tip-color */ +div.jbox .jbox-tip-color{background-color:#546C83;border-color:#546C83;border-radius:3px 3px 3px 3px;color:#ffffff;} +/* icons */ +div.jbox span.jbox-icon{background:url(images/jbox-icons.png) no-repeat scroll 0 0 transparent;_background:url(images/jbox-icons-ie6.gif) no-repeat scroll 0 0 transparent;} +div.jbox span.jbox-icon-info {background-position:0 0;} +div.jbox span.jbox-icon-question {background-position:-36px 0;} +div.jbox span.jbox-icon-success {background-position:-72px 0;} +div.jbox span.jbox-icon-warning {background-position:-108px 0;} +div.jbox span.jbox-icon-error {background-position:-144px 0;} +div.jbox span.jbox-icon-none {display: none; overflow:hidden;} +div.jbox span.jbox-icon-loading {background:url(images/jbox-loading1.gif) no-repeat scroll 0 0 transparent;} \ No newline at end of file diff --git a/apps/static/jbox/Skins/Purple/Desktop.ini b/apps/static/jbox/Skins/Purple/Desktop.ini new file mode 100644 index 000000000..09485b11b --- /dev/null +++ b/apps/static/jbox/Skins/Purple/Desktop.ini @@ -0,0 +1,3 @@ +[.ShellClassInfo] +IconFile=%SystemRoot%\system32\SHELL32.dll +IconIndex=161 diff --git a/apps/static/jbox/Skins/Purple/images/Thumbs.db b/apps/static/jbox/Skins/Purple/images/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..37d2c8e06c99e32ff48c54ba42aaf5a9f6c2ff34 GIT binary patch literal 19456 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 z z2s^t+4{EMo6fPw-%sxT!!ZIo}5dG+W=&Xn6!j||DWj;J^j-44@d4+^dO|Mu=8PVZ} zwbjCwpx|<}plwPVY!iK5nlSek^w?Rab(x_(nZ1Y6WBqD-4J*;36BMKi){YHRA;e(5 zF%ko}aVcyRH?ty&4lsScCi!<{=vV#sXZKJ2TL1j|{nQ`)GVEXde(Kl!_iO(9HUIsZ z|Nd9!zdzn{{QZ7oX6m%+uiNtN9_6p|=P&=$uiqd4;Sa0-XMTVD%m4I$!2k67-%QKrE-xibfFic*IJHO%471GxY1WxA-&^aGD<*p`V zrWv%-hyQK@1KuaWZu}7nA3B1~QMaNX+XENK3~k_KSVVpIU0A4UQa6)KgPInS-#pS; znr${AL3U6QExks+qa>=NSX5V-W#rTfbboa7$n@p}jsOw!o05y}`f5@nw!S2C4bGLs zywHv3a{#Ssl!9C!D)z}>`9H?ww+prJ$%xyK&n{bA#*X#m+QGBKU9B^gW`O3xNslvr zQ|8tIxEpF8o3rnVJdM;}FWK3i{kD=PG-Zq8P}&2+QCDA$*3`eEKmGWV`W5qkq6hv9 D1Ij5$ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Purple/images/jbox-button1.png b/apps/static/jbox/Skins/Purple/images/jbox-button1.png new file mode 100644 index 0000000000000000000000000000000000000000..7d8a6a4b21406876efb7462317f1d98ba2c83cdb GIT binary patch literal 338 zcmV-Y0j>UtP)@$vin z`{?NC&(F`?+}y^-#?#Z&{r&ym;NZi-6dkG1Tgy;Teq!|TN@q$hN^zs(J=OPZ`DSBcr?&2tR;wsJ}T5%FD z(TJOPh`$?KF%&CNi?t}lOpL``RAMOxq7YND5eqR9BhgoPGRHF`gEB26Bg2!Bm}Dg| ksfkX0J|bW89sUtu0DUGDT{S~8^Z)<=07*qoM6N<$f_p@~vyu7^c@9*vH?Yg?Uz`(%t z^z{Gpnd|H8*Vota@$t&a%K!S+|NZXI&(GZ4+~VTm=;-MB`uhL!mH+p-|Ni*X)6@U- zq5u5i|MV925@rDg03|gR(J#~^Qvd(} M07*qoM6N<$f^USX1^@s6 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Purple/images/jbox-close1.gif b/apps/static/jbox/Skins/Purple/images/jbox-close1.gif new file mode 100644 index 0000000000000000000000000000000000000000..a87057e8921fd316e5d6d690138ade8ec67c0f23 GIT binary patch literal 1221 zcmeH`SxggA6oyB^GA=D!hD$Lc$Q%Y2L|aN9iRe~ zpYoG_A1Lt>UXRz~_P9Q{BuN%UNf4q8!;++5l4XwP8J7Lc6QTmcGN2+9qG>u12>3~o zz%ZN5W|4tVj7Fov&`=~235UZx&vP8dvMj?eg98Kop->-92Lr$iib$W&M-ag5al75U zF4qUAvj@k!G0bkWSyA-8+1y3>eSVSvMSY;-U?3Qv$Y1T^-45{3ZnN5~miOi^5Q8E~ zS(4%%2m7~PE|;qZz;PTK8xV@3m6erXO=Ii&fBnk|s74aUL68Yr z7Kg_F1O$&l^VX(sdZNrLfZ5Cnyt-YzI7MCbQAJE^yEtodMPhBKx-Dl3((v$UM`3Hu znr6+uur#UR=Df#G(4AZnoOVQCuiU*MY39<6o!dqVu}e49Wf?D8>XiEW^=DF$bIzkv zFJ$OKn*H`pxZ_ciqsb8NH1#3n3HP@gcxh@`q%EsDsM+&)#`2*l`tBG$Cw0{!?Ji`bQRTQaCEXdxQ_P-whk{!lD4e3lv{$42G7fHjgJfyw zXYChn_UHL_x=+1pP_NtZePL0(ZrXx%Q_a<_?V`6rEKly`tXS#oY{QIR%6tR4{prL@ z?(UN3RO19qIk9Y8ij7EEf10k^o^K?|R%(CbzW!=0zPw`X_0Rg`x{~UKwBwl^K3msh z!Rwk3NTt>xP+nTr!e$g!zbcyfNvB-J;J>*$ro}!MYqYwZ7`4BRyeji6wRS J>gg%anx8VZ7x@4H literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Purple/images/jbox-close2.gif b/apps/static/jbox/Skins/Purple/images/jbox-close2.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd2dde9009dfd7adbd272044c03a6f57d1a34701 GIT binary patch literal 791 zcmb7>$xjn;6vwA6O9hlg8U+qOqksl&0we;0tU@)4;6cEIAP}@zV2p4e#zR455lny! z4P20TGDeLd?g}JwQ3*5io2}D!*3MSIC@1uS!=K>i<(=O9=6%0;wHIm%i`vqmcu0XE z8~|O{B}rm~!9c*zFbqi$q|rDa2@*q5fMKel(lj0L`$HiqBuPBaF^tdH<~WuBKoEpL zAi#4RO;MVr8-)X06ogPHq{xaWiX6)U3>A0*+XuyQAS<#ch>9WufGV=g_-JGUp=nCj zG?opb8;GuJ0AQjh5ClO}w5q8XiiPzsO_PQNLEwEfg(3(|k^7Drnj}fhz(}I$IF3^U z0Z`2FY6LQ3$+7|fPLjB)Dh33O1p`5rV_B9nzyV4bQ3+gAMPo^R_LaXod>(Y3w3(M?fQRIm|t2`)+ui792L zi>cnStUiC^ z5E9qUBv)QKQ8j4(IFxcV&ZI$Z>5*@kkGdj&9)|>WMhwp7?N5#Q0 zkm;(Y1-Lt6oRO$0V$5Ao-~Wy@MaHDU-36{G;kxC>!55w7?y40_e0+aKiF1eFK4eWO z*&68JJ%g#0N!GeM<<7^Jp~k1Xzl5*j$u93x&)xR5Q5!r7(LV+)o~)WeFT|&m&!_b) z6-YbJo4o+O$gfl^z8UhrozBT=5HEYU>XC@4#2Zx}`*Pyv@ztofzVvhLORm+Czw_nL F*?;R5w}Aiv literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Purple/images/jbox-content-loading.gif b/apps/static/jbox/Skins/Purple/images/jbox-content-loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..6d1fb53bbc5781e2b71bbade6bb8dc5e2bc6ea61 GIT binary patch literal 10810 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Purple/images/jbox-icons.png b/apps/static/jbox/Skins/Purple/images/jbox-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..c35abcffc91f6cc505418870b6b0d8bf5a712cf6 GIT binary patch literal 6588 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
  • gTCn<{Nls)_0O<$R-M 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Purple/images/jbox-loading2.gif b/apps/static/jbox/Skins/Purple/images/jbox-loading2.gif new file mode 100644 index 0000000000000000000000000000000000000000..893b4298c3fec9d2c7bd6816fe45ad91b9abc82f GIT binary patch literal 4167 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 S{fN*C-Grs4uTF_ESOWmk-xUJ@ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Purple/jbox.css b/apps/static/jbox/Skins/Purple/jbox.css new file mode 100644 index 000000000..7a5121024 --- /dev/null +++ b/apps/static/jbox/Skins/Purple/jbox.css @@ -0,0 +1,43 @@ +@charset "utf-8"; +/* + ʾCSS ʽֻ޸ɫԣͼƬĵַͼƬСҪĬϵһ£border:dotted solid double dashed +*/ +*:focus {outline: none;} +/* fade */ +.jbox-fade{background-color:#000000;} +/* drag */ +.jbox-drag{border:1px dashed #824E85;} +/* jbox */ +div.jbox {padding:0px;border:none;font-size:12px;} +/* border */ +div.jbox .jbox-border{background: none repeat scroll 0 0 #000000;filter:alpha(opacity=20);-moz-opacity:0.2;opacity:0.2;} +/* container */ +div.jbox .jbox-container{background-color:#ffffff;border:1px solid #999999;} +/* title-panel */ +div.jbox .jbox-title-panel{background:#824E85;border-bottom:1px solid #CCCCCC;} +div.jbox .jbox-title{font-weight:bold;color:#ffffff;} +div.jbox .jbox-title-icon{background:url(images/jbox-title-icon.gif) no-repeat scroll 3px 5px transparent;} +div.jbox .jbox-close,div.jbox .jbox-close-hover{background:url(images/jbox-close1.gif) no-repeat scroll 0px 0px transparent;} +div.jbox .jbox-close-hover{background-position:-16px 0;} +/* content */ +div.jbox .jbox-content{min-height:24px;line-height:18px;color:#444444;} +div.jbox .jbox-content-loading{background-color:#E6E6E6;} +div.jbox .jbox-content-loading-image{background:url(images/jbox-content-loading.gif) no-repeat bottom center;} +/* button-panel */ +div.jbox .jbox-button-panel{border-top:1px solid #CCCCCC;background-color: #EEEEEE;} +div.jbox .jbox-bottom-text{text-indent:10px;color:#444444;} +div.jbox .jbox-button{background:url(images/jbox-button2.png) repeat-x transparent;border:#AAAAAA 1px solid;color:#888888;border-radius:3px 3px 3px 3px;margin:1px 7px 0px 0px;height:22px;cursor:default;} +div.jbox .jbox-button-hover{background-position:0px -20px;color:#666666;} +div.jbox .jbox-button-active{background-position:0px -40px;} +div.jbox-warning .jbox .jbox-button-panel{background-color: #FFFFFF;} +/* tip-color */ +div.jbox .jbox-tip-color{background-color:#824E85;border-color:#824E85;border-radius:3px 3px 3px 3px;color:#ffffff;} +/* icons */ +div.jbox span.jbox-icon{background:url(images/jbox-icons.png) no-repeat scroll 0 0 transparent;_background:url(images/jbox-icons-ie6.gif) no-repeat scroll 0 0 transparent;} +div.jbox span.jbox-icon-info {background-position:0 0;} +div.jbox span.jbox-icon-question {background-position:-36px 0;} +div.jbox span.jbox-icon-success {background-position:-72px 0;} +div.jbox span.jbox-icon-warning {background-position:-108px 0;} +div.jbox span.jbox-icon-error {background-position:-144px 0;} +div.jbox span.jbox-icon-none {display: none; overflow:hidden;} +div.jbox span.jbox-icon-loading {background:url(images/jbox-loading1.gif) no-repeat scroll 0 0 transparent;} \ No newline at end of file diff --git a/apps/static/jbox/Skins/Red/Desktop.ini b/apps/static/jbox/Skins/Red/Desktop.ini new file mode 100644 index 000000000..09485b11b --- /dev/null +++ b/apps/static/jbox/Skins/Red/Desktop.ini @@ -0,0 +1,3 @@ +[.ShellClassInfo] +IconFile=%SystemRoot%\system32\SHELL32.dll +IconIndex=161 diff --git a/apps/static/jbox/Skins/Red/images/Thumbs.db b/apps/static/jbox/Skins/Red/images/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..37d2c8e06c99e32ff48c54ba42aaf5a9f6c2ff34 GIT binary patch literal 19456 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 z z2s^t+4{EMo6fPw-%sxT!!ZIo}5dG+W=&Xn6!j||DWj;J^j-44@d4+^dO|Mu=8PVZ} zwbjCwpx|<}plwPVY!iK5nlSek^w?Rab(x_(nZ1Y6WBqD-4J*;36BMKi){YHRA;e(5 zF%ko}aVcyRH?ty&4lsScCi!<{=vV#sXZKJ2TL1j|{nQ`)GVEXde(Kl!_iO(9HUIsZ z|Nd9!zdzn{{QZ7oX6m%+uiNtN9_6p|=P&=$uiqd4;Sa0-XMTVD%m4I$!2k67-%QKrE-xibfFic*IJHO%471GxY1WxA-&^aGD<*p`V zrWv%-hyQK@1KuaWZu}7nA3B1~QMaNX+XENK3~k_KSVVpIU0A4UQa6)KgPInS-#pS; znr${AL3U6QExks+qa>=NSX5V-W#rTfbboa7$n@p}jsOw!o05y}`f5@nw!S2C4bGLs zywHv3a{#Ssl!9C!D)z}>`9H?ww+prJ$%xyK&n{bA#*X#m+QGBKU9B^gW`O3xNslvr zQ|8tIxEpF8o3rnVJdM;}FWK3i{kD=PG-Zq8P}&2+QCDA$*3`eEKmGWV`W5qkq6hv9 D1Ij5$ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Red/images/jbox-button1.png b/apps/static/jbox/Skins/Red/images/jbox-button1.png new file mode 100644 index 0000000000000000000000000000000000000000..7d8a6a4b21406876efb7462317f1d98ba2c83cdb GIT binary patch literal 338 zcmV-Y0j>UtP)@$vin z`{?NC&(F`?+}y^-#?#Z&{r&ym;NZi-6dkG1Tgy;Teq!|TN@q$hN^zs(J=OPZ`DSBcr?&2tR;wsJ}T5%FD z(TJOPh`$?KF%&CNi?t}lOpL``RAMOxq7YND5eqR9BhgoPGRHF`gEB26Bg2!Bm}Dg| ksfkX0J|bW89sUtu0DUGDT{S~8^Z)<=07*qoM6N<$f_p@~vyu7^c@9*vH?Yg?Uz`(%t z^z{Gpnd|H8*Vota@$t&a%K!S+|NZXI&(GZ4+~VTm=;-MB`uhL!mH+p-|Ni*X)6@U- zq5u5i|MV925@rDg03|gR(J#~^Qvd(} M07*qoM6N<$f^USX1^@s6 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Red/images/jbox-close1.gif b/apps/static/jbox/Skins/Red/images/jbox-close1.gif new file mode 100644 index 0000000000000000000000000000000000000000..a87057e8921fd316e5d6d690138ade8ec67c0f23 GIT binary patch literal 1221 zcmeH`SxggA6oyB^GA=D!hD$Lc$Q%Y2L|aN9iRe~ zpYoG_A1Lt>UXRz~_P9Q{BuN%UNf4q8!;++5l4XwP8J7Lc6QTmcGN2+9qG>u12>3~o zz%ZN5W|4tVj7Fov&`=~235UZx&vP8dvMj?eg98Kop->-92Lr$iib$W&M-ag5al75U zF4qUAvj@k!G0bkWSyA-8+1y3>eSVSvMSY;-U?3Qv$Y1T^-45{3ZnN5~miOi^5Q8E~ zS(4%%2m7~PE|;qZz;PTK8xV@3m6erXO=Ii&fBnk|s74aUL68Yr z7Kg_F1O$&l^VX(sdZNrLfZ5Cnyt-YzI7MCbQAJE^yEtodMPhBKx-Dl3((v$UM`3Hu znr6+uur#UR=Df#G(4AZnoOVQCuiU*MY39<6o!dqVu}e49Wf?D8>XiEW^=DF$bIzkv zFJ$OKn*H`pxZ_ciqsb8NH1#3n3HP@gcxh@`q%EsDsM+&)#`2*l`tBG$Cw0{!?Ji`bQRTQaCEXdxQ_P-whk{!lD4e3lv{$42G7fHjgJfyw zXYChn_UHL_x=+1pP_NtZePL0(ZrXx%Q_a<_?V`6rEKly`tXS#oY{QIR%6tR4{prL@ z?(UN3RO19qIk9Y8ij7EEf10k^o^K?|R%(CbzW!=0zPw`X_0Rg`x{~UKwBwl^K3msh z!Rwk3NTt>xP+nTr!e$g!zbcyfNvB-J;J>*$ro}!MYqYwZ7`4BRyeji6wRS J>gg%anx8VZ7x@4H literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Red/images/jbox-close2.gif b/apps/static/jbox/Skins/Red/images/jbox-close2.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd2dde9009dfd7adbd272044c03a6f57d1a34701 GIT binary patch literal 791 zcmb7>$xjn;6vwA6O9hlg8U+qOqksl&0we;0tU@)4;6cEIAP}@zV2p4e#zR455lny! z4P20TGDeLd?g}JwQ3*5io2}D!*3MSIC@1uS!=K>i<(=O9=6%0;wHIm%i`vqmcu0XE z8~|O{B}rm~!9c*zFbqi$q|rDa2@*q5fMKel(lj0L`$HiqBuPBaF^tdH<~WuBKoEpL zAi#4RO;MVr8-)X06ogPHq{xaWiX6)U3>A0*+XuyQAS<#ch>9WufGV=g_-JGUp=nCj zG?opb8;GuJ0AQjh5ClO}w5q8XiiPzsO_PQNLEwEfg(3(|k^7Drnj}fhz(}I$IF3^U z0Z`2FY6LQ3$+7|fPLjB)Dh33O1p`5rV_B9nzyV4bQ3+gAMPo^R_LaXod>(Y3w3(M?fQRIm|t2`)+ui792L zi>cnStUiC^ z5E9qUBv)QKQ8j4(IFxcV&ZI$Z>5*@kkGdj&9)|>WMhwp7?N5#Q0 zkm;(Y1-Lt6oRO$0V$5Ao-~Wy@MaHDU-36{G;kxC>!55w7?y40_e0+aKiF1eFK4eWO z*&68JJ%g#0N!GeM<<7^Jp~k1Xzl5*j$u93x&)xR5Q5!r7(LV+)o~)WeFT|&m&!_b) z6-YbJo4o+O$gfl^z8UhrozBT=5HEYU>XC@4#2Zx}`*Pyv@ztofzVvhLORm+Czw_nL F*?;R5w}Aiv literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Red/images/jbox-content-loading.gif b/apps/static/jbox/Skins/Red/images/jbox-content-loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..d39b1aa69bf94efe5c44c18f4386ba04c1f22d88 GIT binary patch literal 10810 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 AdjJ3c literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Red/images/jbox-icons-ie6.gif b/apps/static/jbox/Skins/Red/images/jbox-icons-ie6.gif new file mode 100644 index 0000000000000000000000000000000000000000..201b912e0db150b0111539e1ec35b2555b618b60 GIT binary patch literal 2767 zcmeH``8yQ)0>)>tj3vz^Mq`^{DEp8mq3)QmRW3q{W63g>q|Oiz33o=**y0Q!GaWUS ztb<6XEMs3P$=cXMLMj?@bkg^nbN`9^%YA=%pZB--c|Py++MTpDJLdZcf`x2D{t*Cx z*Q8j`qEsZnJZw`gZdWPkP%Z6LtLVX1_GvzPsr~r1PW_O6{g6T9h+)I9VdIF=^Ks*5 z;o;WFBh5n7w&|lCv&VWCEPED?_bi-vwL*TmOn$XOd9`Bw`lHRzXZztVCr39I*yC}E&S#*F8Vt-k8LUBVaE@;pL&xoMa8nmAR zU1vehFQC^83|s+2F<>Yb499_SCV0yNl`1E#rPCJ)T=z+54CR}9{j zfCWBSs053Z;C&5PdJNXO!S)C6A{b0$fhjJSEdaBHV7>w@)_`vd;M?Ng@c%o)|LuQ6 z0JkFsg+S;K{eSBJ`2++3AW$h4duLv<0z#g9sP|Dmg%Lbs|9jF>epe#u;3iV_d`!o&l_EACAOt#T~@4|PzY_-CZe{w-qr>US3O+au$C&-(AUR0^CF-y8T}-- z`#kd%F(mr_Mz~F1=H%%t&yDcF5-zdYzk%bW9QAp+S@@%VbjDO1OiCFOs_L9w*GPj@7Kx0XoZ-H%vb zLEbf@BJ-sp3n1^HO8iTxf)wxTT1A=hMdu_hrrXmIktrk$*C72p5)+e*`moPoZk0UbPk_2mohmb zjkCT?lZ74?hs*4zdT=3rnL;{54o!l}D5QG?qbc8gOBAnC6Z92H!I!>aF)t=SM?5n`^^jZa*G8`Qu)UjbiHlhe((WloK5MdG zE<`hE1D`$65qIY6Vaag)I|kPlc#?`CQ_)6p6!P>o3vYK2=6Cyy>Fj=kvvgCxu$xBMLRMp`A)$VdO?R8B?~SnSI*^(E z4MWLeJ6E6Z`$|-h6`&|O{iN&R%w*Z38b7<<(*-UWnA*0Ac*0FRg|9l!Sw#n~m=);l ztMR6k%A;0CJ1-`DJsW!grt_Owkzb%OE5~m?$Ax5n@q}ykR2c)!Ak^um7<)F2j2UX_ zkQw%a=c%Rg2V%3W{&inOjEl}z_3m<5sJny3k2r%LQGl_TE&6TlHk;UoXPSo{Cd)vi zb|U%=y2`4rzZNNAR+$nPZyDV{Jt;)@xH&C&X2o?{ylqpHcG>IN_K;d$KQBd=<@;21G!7nH*R7wMBz@IVr^^KK|TOJ0Y)=Rgz`cSr` ze8M?VA?=W|yc=rOP0XrojmiiR=KessWpZxg4&@57HHg}hbF%)hRQ=cU(qd{OUw4)mknu&INkJp&Z!IKhVsUCoQbC z3TD*kU{E2&bMGaVYw45nOLES-3@iLuAFqVa9_z`AqpS7w-qEW1{s&*o#l%B41iBdy z`K$MjHrvHz-H;-e73JA-{mXIO5ivONNT(CsWB|2FW#W!AoLS$$+^e-XC+4(D#v~yF z;6Co3i*#HQ6KJvd*WUdk;!hUiAaHHcycB`wp+7W4iN$M9ISh7LtiC}Swfo`T7kk@s zYit4wyb&CP7?SRs@~PgxYV$%7dGMW}Wc3q@jE0`(>4^@$ zFn*4>vqwANBW9bthYR5PIPDzU@Uzkl7*b?im*IbQWxFI#3+jlE=vQcPQWdnmjEdB!W$Aymo literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Red/images/jbox-icons.png b/apps/static/jbox/Skins/Red/images/jbox-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..c35abcffc91f6cc505418870b6b0d8bf5a712cf6 GIT binary patch literal 6588 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
  • gTCn<{Nls)_0O<$R-M zF5gAOuTD)}c{2w@IoNBbfR=@?_|ZCg{}Haf3j^QJA=y1S^4d4mHX?p7m+!*=esMg- znAh{DdTe^h5KpFF{qLMBhQMMHD>MuBzjH1_uOAxbu~^F4xwDJ4YoB24+9zmlKU&bd zD_3r1&z|4X+`L~Gk2oDaxmmzjFW|)I^XW<*BuQdoVuGHY9(sCun3$Nznt{ldN~lkf z69H%abo}JztU|Ni%}ADdM5{Wlnro00n}Xw2Wpq8D_P8HB184UyKuDH)X1&Gn7>Rq1s>V%)XYWE!tb=Dd{$84124bqHSHNj{y=RywWy(}EH}A_b zamu_FOWFLn_Vyz=O`ORiM&lXn4Fwc-^LImDv!5j zn={Z#JfyzSx^^~CEsEMxU42(Q{_wBrzX;Iw8m!utdBIh#ypg-AYiHHA;vu!|qIeAS zymenMTtx$Y zF04RNl$>wavfg|M0u2ofEL*lL{k~tj#-&S_&{|tDGcz+^Ce?OEda#y61Oy2sIH<{! zHVe@98r1GdyT8C0y8mt~;oPZ_+J>aQ6;l`CED=whv>`LRufn;5x_L77Dn9i69ka8u z1@+S6@%ww}=xFD`2an@$EX-bcJYVLkU;Q;DCDm9guC!~;pZ`9mPyd519ua5|uo4c3 zb%~QmByhXkw77njcDUVcUFnA)2x?ncL0yrQ84anm1cuD==PzWMR|dv-vt=to|6P!W z$b>q0DuyR>FqYH2FBLHFa<|^Xld?s8=#diZ!sNUOIT9(EuGC?O7(yG;gl7p%9PA?GP>h zlzndK2l~u=y)y}^sNJ326X(l$y|1LD4Sy;TjRyGWqyNm4T3+JHl`g||ioiHTb@`!$SHH@$0|d>{QnxTrZF3QMmUtjht79d9`>9>Xo*T zNR1wu$)(dvCr@+pezt6RG3RFv$7=TM>CHO_oR7x@3@JqFY&M&^w!ivmFeXXQfqYulYX9a2fDD&#! zS*(}dsj$Apj>T^*H(tATP1m)hrKOsB>EUT^-cNh`k&Lu6iYQtZ%^8=mb7xmF)#%m5 zBgW*=`PAUS;c(pW-q+!9%$p$9cE+^Td6J`W!P%&e3vvvFa!L@Z#8 z=k&v>DKn!;^XlO#Mz6lN&hXyPE7tgP3J^!_1I&rN4Os zKK$o0B3A($LPT%Cp$Ksp#)NN>|r`v~t0qmtfGV$s@YWj}64+&j&`EafF_R!;4-(p zJ|_>1DMWC)-B>J^B{#3dVo5$d5$5E9F_*dR_56wQn%4=9jG@S|Y$Moo^)%~PSO>gJ zv$V~v)~(3u=1Rw!>*q$hiet?5q7WbSIvt(O*0fB#WB zI@;;zXwTWJro!*<<=C+ey!F;svdo*0M+8W2eLoUU%wf0I(Ae0xq^X1`iZnJhVz<^1 zPs{-vDY)HU-D-Y>L{!}~*6_HVRKk%q3!(K@-SD_tcOnXKq~P{;BRuC08lU4e$g|4& zR2K;IdbNJ#3q~cGEA*kOWwjx_^ziuoy;-Kr6}b#vh(}y_inbmW1ff&HMY*#9kH?eO z#JSEFDx2CDC*eX6gie=v>tW5m#9n(CsiYILL)|mx*_+=qq7^bohym z9l`e6rR6bd-XeI?_407nmp+%bY`*o|`OI64UPgF~gcgtCO`VFOP*zrk-EL27C=?1Y zH8qtsZ+kN~brzZ{&id>oZ0a;Lmww%wI={UwoVc(^FE8E4f0;KAPHn;+9lgxO)4$Ii zAZ=K4U3wYe(KUe7!6O|ybZF6ta@){c;y2@S@zExWxN4QvYR6S>ng1b*lsKVKh+r_7 zc7(&>`CeF(B$h8WbP-=SHutlv+;P)*(t6z`;8FGZ?IOKOsJ^2L zbET8X;q=va(<2j%^nJ`o-^WZ{N}ud1yR(j(&o*ASUPgEdg%O@lf7s+U;JF-me%p-v z{wL^%O>Q2~r#~%qoA3l;KW`k1{QE&rJ`sA|ES^t)-0wEyxg2>ush9GJ(CbF?2%rAE u>g~zni@lQ6YfMA0>g3OvK6Xp;{Qm&Ty9t1djtSKO0000y=ZH#f_@I(Toe1A#Um5ut4eDo9vV2oNA3i+~^?5~G5+}SA)a6I*4)^+`NyYEe*5K@ zKdu>0%by?$6#xLs-^{ql+Y?f^3z_Ljsfo;lT?rX`_9qDKllJY{4_N+=Z14%+$n^~I zS!vG(jSLS~7`EX{CICRw#>4(e37Xl_X#rni-Rz5+w1yEp72#)BkTfedPT8@Y92~Ci zRUfbvRrh_(HYFIlSr4+gMosnve>=-x{kY3L*Du;{1Ql4W;)FY0ioNM#t6Ly#+1mH& z+*u)wl%B!!h=!;;X;4ABpP-?ep-#;)}JEt8&4Y_+~S~P_WNVSExRh7aeEc>+#U@pTVI` zDMe3#*;v6qqCMw@N6OCkxktB^zS}-!f!(*mD()8T0M>XLApHl{pR~`;X^(E39X%fH z>qKkzt-P%cg9jAh0y^(ffaG%Ti<5!+X5pmSn`M&dy%~&W<%$8+1Y*XbG}`)lQ%pSD zXVS1JVW_ioak;KEIJBf1Mqr$1kL3Kyo4Dhn&d2Av+9n(?%8W?JmmAqe8^I28P zrlV^vx=ff3TN37z|H>fW*3lq;+L7lZjFT*{QH2eiRfMlBRqP5Z%o@1m&ctKJohE{4 zS0||KaZ_7~DU})6y|~SvQ1oW6WYkADw3T)aA|Ajr5mY1(+OmVjBIj@EBo05ZAi!y; z8%_|32-)nyCe#Pf%ZkNP?Ts&@&nfZ70henTC11)*DWYT7*B4{O_uLwr1;x6{?LqdQG~B8;1B znRi;kqzQ^}FXIPo3-QUT2iDqLsA=0yes3*nu#$naSm{z9N3PL6@wIYV!S$SbcYpxX z6^s9|!ZV?UtT$_pNZ+#B$e$JR=rMU=8WOsA)ha?3I}c8B443eTJJZcGvss{wWfRua zjH4|ogh(lulzOQ2sP=gC3A9yneAUqlyjoU|;=rXVY%R3`?+OUpFLA<$i`f3xw0kpm z%bYGdo85ysV2;&kmmNEpSFtZ=nF^@}K3o?qQ0NUvVNau!?h+LjBg zW2~g|4*{K@_WCBCs)WG=j1dZjlx;o0GVd>P@bV3b-4?N6YQehj@l?VlhXXK)w=6i- zo0t%9o&sfB?D4hj4O9syDx);@h&^_6#t_0xc)pqK6w z(GzYZ_s`(sdZBwYGnkN{8uf$wL7UGOc`clO{O{%pAgtX`09FAkW^-*NO{Mh--K?)X zjeUc?4iw5u{`GnEX)X1AVt(!JXQ8UY;zG=6G7YNmizS@yXgPEW&<=Gg%Tr#N#Az2l9S%9b)1oxcxPQfc^Bou{d;MkTZXh*hn z2<0A{75I2v2rz;o3T5zW0J%5b>vQWJ^u1ge`P`b`{d8oJkq{sRj4!ptB!4>)xv0O_ zdfp~@{wEF+gB6%2s<8ge8;b2h?2JxKy4|r3$+A;y$nSj_>oZ>YgC#lFF(P>7BX3GW ze6q9uj{>Ty?fcu;{OTHAC|-4Ll(Q$TY{>ei&EGyuy&@Nwi}_2rHhftz4wjY?)3evf z$`oLgoL>W0B#E3$T3o@5d_Dxj#9U9VPDeVnESr-{It`OjMX?q{Bo?}$(|bG7-7-J~ z>A{J*&d@yJa`Y}hxq)=@H(_^CYy^Qzg1jbh_y#ERKR1Ix4`o3fZ!yx1Hbx5mVXFIz zi+6%i0Z|n|+qyoG2hG=num1}DJQ3X>SXSYZEh?6mDRN4btf)dh0R%Y~1+Hpc9y_~@ zMIq`y;+%2__9Az-?V)c&K{F7BNr7rXXdaBBL&!~lG6+}7h-0YfO#~wj4izI~{lFuf zG}y%l#~x$Pua(-{z=)fT12;&2BFcQFWHVzxk|MTp-0W)KJt#4Yh4YIQgXL3FUe1H)im zr0p%l^e&81AC|zk#;0)NFoz4?`VM>U{gnRd!{0IWp>*qj_x)9PuhL3?m zyB>B1$b)7vH1ZM;NU!OJVGVc>*p#u%_BL#K?;C%PjCA`XFu8s|mw20m&xWt#KmKaw zJ}&&0@tXES+=o7|HL6}9zr~qMA3xzeZxEjSPbMIvUx`gV7J)IFylOE~-=#>r(~TD> z6ME}*F(WV{lEwAkZN68)Un*EMy2>1gFnrK8 zD33uUb#!pk#5uslZc?$CPh!{Z(;XydfC63t<|xE>bQXZ1bBMb`1o;6N?dL0>D|pe;DYti43(x2nIRsc# zo%o=iMoLQ~B|A7XqnzLZf4BG|^HhWwywr!16|7XsIFTe+-P&}N)2dtDe3TBU+M7C+ zb#9ThTn8!$ihG>t4D#iH`W(9}n9TsO#4Kq4l5XtMWukcB*pOgJR6pp7<-~m!X*asp zCVhkoSY^3C^PZ$>ScEi_#a+4 zcmLy$?zAaF39zCO0e%9{( zdGg+GPp7Ze*ZeZ|-GyZfetr1E?>|4Cp7`=JU-QLE)1%8{|9Jf9>#mNQ?ze7vtj~V9 ze|wwra_#abw{KkfmnAnF-+Xv+sNl!+5V|(>%I5(-#ygz$*UE^#W|Bl4u7(?^2)lZFZb;nH5Yuo ztL3{BN1oigK4w|?@%)!QdP#aZJLO|t`cGfnne0FK?a}woYG+OKyz`$$`+qsbzd|%R z0083WQMv1@E9$GOM4MLC*N7@sS8T3bTT!K0wPxj7K>P=zL}yxy1#flum6zA|$skaiXsg zzk00+hR~E-sCN8;FzBYnF`_aQ45wvt*%Ux!$xYtdcgZn90ufb-+HB_l^8J{!Z+s$q z0|qQVz1|W8T?CoyJJr^2bR~utJ*>;K5GN^TVvI^nA#nvn$J55{AY@+@Lytlhe-K)s zsH>{2vLc+uOEI$BmP)dF2a8cUQ75sHTPj%Dn=8a{>edc-#zzjTW)x!2%Q!Esw2hW- zh_~>`GvgJFQHqSJ+#4hvx@@@WODvKRh2l;G!}i93=Eb@B8({5j)HblcDBft^O1yJ@YX@j(-o! zl9l9N_bdACINq`yR7IZ(k5tK&{*3b6-b4B14n!j!kH>XOP;?fAd|~X)9E%T(XD*tt z-lFkJDE76$8cNbmx4nGH!vioR-2L?yC3YuAc6l+wVaY5X_m?QkkH(>?@TlyW6Q zz{k3vgJFrHQ4J6TNgmc)mKg-N<0w= z0*;lGxVLQeSC`#9U|bBLlQ-fgtN_Y-@Myy&5{>)z0b%Ck*6N@q&iElB^bLbog35 z|2voqfE(N%H;n6+5v=AN4KTBik*<%!eft3Jf*BYlRmQ0!Lnk> zd@V0CkqI{QOX%fv6)s;o)N6zi%OwfX^wj02(IMN{n-Q=c*Wep|F zA(H3!q;N_i6Ru#47&cze22mAZk*I0F;tVz_@LeOX9q&3npg~IN++rIINo-=uMt}*D zZ|jg5c(U$@fr2x(Xvfmj#t3f4HX`)UF?}H>Sw0Bvg5>Ys;NfQOEfP$4ye@YDlG;IcE2EL=+Z8# zXPJX-p1A(1!!_`3a$QZqL68}zPq{HN_r99WVrH!q7Jn8_B`+ytWvPLSSZuqjS2Q6_ z?_wHf2LR+`$Ptt7GwgvX$VuUb${7V+fZi$DVXw6r?|t(n%xz#|bviotnn#%FZhw6i zfW~#li`6$0^9v9ebbszxa42rhSMMd5tb{u*bLzyqBI;7Va4VT-CpJ2zc}qlpA_;@A z>qVcmQ=x^$TzBhE7b~JXT3rbFcI||ul+4M2+N43sBSr4M3J z`G=cR)A#K8%%Tg~=mMFF9qMk(DHrm~43=)ETL$sdUp9>U+>y_@g3VpSW99H!f6A=MCruRV@R%7vA8bfVqJA0Q7NFJ$LayQU8pDmh&JWg@)ryMDyM%G0jQ%yeajHBDVVVKR8 zBglt(C$0f-+o4wBWX&o%)ggAUdz6pe2O9;9EwxSSt5aUq!>2MkG{Cu63~<4W!v;~y z8hw*`gZV?XEwPaB#s^eW0bFq)rKi?svC(f0yr~V5CdZ3NNwwjiUTf{;%JUFf(u9u8 z5K}0y%RlT`KsCj}R{4Qw#*L zZ+gI}$%Ve?%?8@Sdl3V`H1fLwv`>DFx4y~TQ)(kq43CYgz=PoD4KW+}$e+aYpSX6I zwcNA4k)Ntr$OXN7;AQ%3^&IjZFUydCNz1jc13v79cRN_TnSFZbFw9NW;(u+TE?Z0t zfV!0;l!pT_RKVcOBF?%%TDd4+=s=hY*=K;Hyg@8l!*Ak;g=37I8!j&WMeJuRxzvcr zIob3RSXqt1Ly4#c`^{5-S93t5G~-4<1KjK)BT948v^9VWnNbbnBM*X();NwBS^w<_ zgY0Bl4q8Q0fW+>uyWfT;9Hnbk&gMj}4(!<2XHc`97K9!dt8R_AcJDhQOr&xQY?9}! zf#^0@gLe1?xU6Sekr--X^2a4P^)l|&PsuD^xAu;)r|%O2q(0+c>t>KZ+|Z|D$Dgwc zMQfCAm`)hzjOd5?NL$qhY9aJH2rRVRvZhkH1ECc0uy_2WM&+2HA<`9#4p|Lee}36b zMrUAUOBKC=j4NN+XPF#s#XBpsV*ixd(~$Z0E4$jdbUWj+60}2Ji4PE_n+vVB^FgnG z-d^-8Jzu>8DKh`Chd8Qfq~Gu1Ix$5JkBrFKPa^=<>r?U$=L0GaqpE#8MF5Td@h&O!mk)`K>2z@ryb{& z(o2#&)Wu6wdwPMs}C-*2D}3#kBuO2 z)UJ}G8C|GicxRKQ+TaPFiwtV3Cg4n(!ne7qtSjaaIkkJ5ZR?I@dSjdIhUj*6v?%iJrH`ha3nZt#3G!Ta={^VjGjq z3aL3CtZRzFnbs$zTmWQp^t*0b#AY$HaP>${3PI+I1R)^>meY}X@z4iN zeEc&HvI~0Xf|1IdI~|Y=V+VhzP58K{Tm$GW6-# zURO+xx_2P-P4`7a%a_pYx{)?{3>$qmF+8bL#F(P8lvP1p+C0=$V;Sy)*u|2Jc#C#E zjja)?hOjPYKA+C}upmuB_n^#28`PyMKr|BV%X`IS%iGPoJF$7M!KQOjVkyb8>iVl8 z2c1&##%+uO+s?Qk)0F=ujy=M-&1Vhj3L95xH_FByhZ*TH^J~Ela9fB3o8x1R26eS7 zF{{=yU=ZurplK29@!g;9fx=!|*_dHkvLh_czSL{Kmm7{E4W{!$f%%UKBvTm*YKI>r z#PI@Ni)6eR7MN<4M=IPmbB}jxEowWN)R}P7thD;AE-8;)w|5oJ4iMqY+kM*Fh^K&y u1c(eIN~>HFaJ2=l=Wdc}1Gy?tXAWTMx}cT9b=DxMiJoHOTheShEIbzR>N zW5-ARD_u^JQ{GT0fBo0fwFkN%x6|hrS)&R(E|>(ZGtlyRF+_ zT53R z>i%qKW96fx2X5D`d;8$t+k1C^e)Qn7v*6v+C+Bje|N7#`3k%cFW~KF{#dS{}f6`_= zJ#$j8J=qfzbx7l{4+Fah6i^;3`=H++UD=p8zE z7lY}K5ylXW{t`h>4sqzO#o(=T+}FsjNXHTL>~j?SSFt|E&~;%|(KMYtrh{~WicvXcLwsfXPoNMHh8A{@JV=PUY+Nor7+d)QutR_o4! zRLcLW#Qz4XUlX_EN}=4)-BR6Q$Tl@>KakIzc)~Eyx3E?DY4hWZ;c(6dQvI3TDu%oQa+XS2jJA=KA$zpo% zu=APw_t^F()7VFkB8O&qLnk4&%#)0FLnnHZ5SSQfxtIuFzrOIQg+2(MzGbH0hUvp2 z6y!D?x%mjB`yvSN$i#Vth|#wc$*%}Pq}eAq#^JONegd486c_mLKrGSgFcl$7`xe<> z=xJqC$-$|VMWI~|Dkj|aOPH(2pUTPjDy1^rNf&9;j+Rkpk2jyQaWfmAwvmYHqSJeS zk({N$)mWL-didK>mnUdqVw75nb)_(H-isMG2eLFgM#r?MP06hTl8f>6hRy=(zz0TB z*#9l?|AjSIzh->QPla-b*O(tY!yfF_ua1z`9B<}i7`J1Znu_u3?w54j8Ti4X;fYH3 zEe+xxyR&H27*&Bu1_{bV%e)r)e>7_}QcPh$ECH*wg5b;lhAgV8=Fwv}ZGt6Pm=vhy zupww7TV8#bLF_+{9X^a6-+!pHm3}3vK1=8s--Dju(xkE>G z-%CM!k>{CDlAj}DvHMk$_>CBR{LU=?$KQF99H3{FBqBTQ+e!sc zP8SyKw7;a4;M?xS>k6flHIsLxo!Qg8M9?D8)7p*o3~=Z!jD}3N-UWR$HuN=!6=DVjx+so7e$R>C-D%7*bE`E*%;&+ z1t!bkCisg>_o?ySz@fP)XI<`qG^-AVZx}7GW%MPvi$oYb$H-cTcJh zPH8KontO0*1Z7h#WwLhiuBpt!`gG-E5^TWE-1N8eZ?4v**3l~>=dKd#=RDe75rq7+ zXfCON7jLp5ybZrvi{VG!|O(m=9+xO;tPoPDclr)qvAggv(y-ZY|miplI+MRw(uLgH(_gy{j@!PANtOMrv)Eyt4=uY3He| zp;Rl@qRRl6r1KxIl!n^R_uaU=0~3bWduxrZo_Imf#ip50Qb$!BNuS#`5gR@=bZq&_ zf!*gsj*mQ4*L&g+I4J(w)RwhG*z&6%7U#UxrLFN7)E^) zm-Wzm^M(CLNUoO>%9zbS=;g8S)D;Uqkt&r6ktCT5BEBnQ5e^`c_@I!ZXq}&kB+W;} z$R;{2n=OIYk|pwoY-Zq__IB?jW{%fkvP573*awRD_jtVgj+`$B`unh}iRjVu{s={g z@=+Z38BQYZo#(31w{N-66D9XXjpBI!%{9X@E`S|3*pcq?Pzd>0hkTJ9D`JALsAW<0 zep^;9iDnJgQ|P_XDuFv}QQj&VT^6mg-$;s!=Q31%t+DR!rqHOuf>-<^6V1j8NW*1! zO{PA6aEeZrLCZ-IhBVP^>38R?7U}oxw6)U$adCLlUYj!#x=DJ8E-O71nsF$3R>v0V zlwFnIE`Rweoha0EI!iV{|9ruLncT9XPMgNYU)Pwgja|-4>m7KJ8|C9BQA<>t2TvZD zo-;*L^wMTB%EuM&Tly}$Fi<2SNYZ#gL1E7F6(2dJQkEo{hJ&EE3<2eUOah?rmz7># zBDYy6U%#Oi-C>o$B56|-lxW6Kbp3iP&&=7cRGbFQykqCvx-8yaN>cDrH^#YnQ+CP9 z=}}xoC>r@gA9?3@R`|4^zaN(Yym=#hy4U}-zduKYMQLpMfLT@WAHNDHwGHXsE(@a4 z_1C+sTt>V>bvL~c;fnoZa@!Y8>EiiY658wy)>s9Wus*H4%Yq3)nrqvB=sGoiWnI$J z!?uPZdY@7|jh~h1*VC`it-Mx9dUJA%?jw&wF}r6nCA6hrOQ@^o`tHn}mdIt1LASo4 z40QQ77VNowr114wl=hEy0p=UP^CJ$U>c7ZRBL7qT^p*WlnDFwBtjYyS>=v+Xe)d>y z(TiMK2C=qm?9xL&j@GhZdpehcq6MGMS+;=vg+KtwGB_orcmWDvDw(&O4t=>s#CDlA zU)QXcH(O=Cti2+Ult?tI03QI5bJpdV=`n_UP^`1i>qP0c@yx&Dp5Z7Q^JrkcbKPeW= zInKgtiR#DlZQS;^K0^?j&REO?;}%CBx(hypGLe zL2hf~M!-i7q$kS|Cz~Y@z=>v_M1r04Ze2|AftZ5B0=_wzp=xLpp0;4@BO;NYRm~k? zFs@yO$(@g~x!ok7dFYjdtx zqz>hjlJylDZ;W1P&_!fL0pS|w)eOSd_Y;^v(v#IPtOD?vyL{dkPPm#NU|CWCLq$?7 z^Z_I?215dfi)tVUF0}}`+`6wNykr%)e)n#AhdDqfq|ur@`2c*3%|y-G0JU1PSDkOc zAoc|on_{msVj^5Tv?A?y9GxHY^?G5VHnTO zqf492c^3y!yP<5WGMH#E@+mIDZ@gRIx3AZ=HIb9DdMa&R3NgKStcJ7SjigQF)oD84 zy07h)$F*inrwygj#yt2+PNeoaj*bdG{{w^aye!`Rhc@PXNBivB_Ysee1|}(~G-mYQ z#HVHQT~y89OyaowOvK~8y67nh+$(=%5XhxW-GT;iEj?iO{iWz9zH~4nS*uo);Fjk2 zEI>cXMd)-ym82s{l~phpTrQ8c40YtfblA7p5~ytt4k!ywW}t{Kd=wThHizg=wgqYP zP2M%fAdXod8ZvNF*K3v>C7@djlm5<~(9mlZ0KRpLZwd8gSGr~wy+_-% zDj9vQCq=iiPgB2SMt&G}%EOB-glPfQR_jz%>eB<8>j|-|JS{DG{|t3_^dWGG1OyR2 zHzPzBsMQv#XB0G>`tA0(9 zWZx4I1pIUgdG`+g%3y0fd zXjKAMwJLA8i#!NOD}SxgRl*qa^M$eX>8{Ba7_D*R2}NTwv@sA~AlG)yRj)xUZo8JY z!%BzZ+=GYT7{|I1?`rY6C2ol8!>$ug&*&axNaDiUIt!krP6ypWY8af{F)f{%WrTSQVIhMVeE_g5f>XP=aZ6FI?IlFr}RBC zhtCWpUzlr&>}FmuyPxI_utEjj%5#e|*WQFK;ZI(kaRB%AhP9w{Ggxzzt~R)cip} z4)7M4BeFsx1A_w8w9hf}p5t)1#d)QZ%VU;uzgR0rQ4X!PG@P{WhOK-~ZqnjfM)g)4 z1Zs~k4uU5(94VIZPk@L|SFQX6f{2^WW-!F!iwHKbh=1Leb29@VIn%-6Wb7VH_kENk zqr*?(=ZUh{@7`Lmcdvi5D8&vvLG>sQToYj!kvmvyp>%kd=ya8Fwmt(!>SwzkCN(d+ zuf50xGbrO*avO>!!06kosQQLE=P)8dXfnu)5@>Xecr5AHO(hJGO}ot2m~)v>Sjzfr zDJNa{z{gQC>i#DsjYN`mx_$QiGER2+JbV4(4UqS!x^c1wsxxgNcU*^VQDYYXy6(Pb zpa%Qqgr~LkB<-JZs%2kc%JEIX>rSoRw6t{c;N+SuF+%R;DRH}cda`0iT{iA6U$|}W zfxPWD9z%w?X`h;7!cr%GF;{|l0|2jdRxpjRW-SL0*31%ClC2tweLah}bsLJ7v?McH zQNDNEN8YpUors+k^DkIs$TbAKY*AgmcGG+nq5JyYF<~TT z`2GVq`~<%70EFL?GL{kW?{M=Sy;x6i-r1EShqULLCpw)l#?fSU(BiyEoaWK5~o*N=1+SNZwxNz83@TP|_Q%T9dQXug2OF!MVWfA3DN zHx`#@roDdPET118wE~;mQpU7?5*G6=tFx3l!*>V{x5sT%SI{5-QMY9F zEVYKlkjd1`r|IT%i!sTv@~OdYnFIq=Yp1DI8)^aG=BYxGwvQa!I#t#}G8VQ@5&~@~ zf78AMZ%#YveKbLW9zx|Ottu41h@Z7EaPTVFZ)RK*Umv8%5b?&G(^nHi>`aa}* zr=pX?^dLEwzoXOc!+-rX{K27`7%GTR7%_#kyOwhBld(e^HL5}v*cJ`LT!m(9t=~=dN!eB+N){mHqF=qD4v3-hjMG$Mk zDlsPl>~H)quuoT?TtUGDo4*{CX8?&?KlD}U-_7YPWhz=eu3h%F3!u#$Gf_V`yc?5!GG+Lb*!9y8yB6)RL<3>wZ_gIxBZ)GOBjWw+52neom!%9XcJAipSS<)`Hk_@ zrXPvdi0U>TXtoJ?%O>g;s)bxek!ymskXJ5KubL1{tHK!76G-@2y=JpjEvW|p?pCYJ zy9K~@Sr{a6Ik4BvJ;*tJ*u*`Kc6%t??lV0qlz$QJ!Eo>jrw6@q#b>;56@y%;fnteO z#9oCWPoB`sf-$4~`*Hza%GJEf^@${GaHR|1-{D%o3x*3tnmF|A#haoA$(;AG)06MhjT@zJ3z?gR^ zTJMqT>QF%cw0rtmXHoTp_o!JXUDKPnwrRoWobcv-NKI!`l9Vs3NZ)XCV`S>G6>CN$ z_}h&3i!qT$4kYauKK-u=_v3EAv@Tp8tX4b5FAq=)dBLTYz?DK8w`7gEg2c?-P|Mvc zlYM1Ut4MuIwo%kOFmLZxO&f5am3zSFh}j3`I8<`dxDQB2jrM0c0L~>8@m7vHZE>^$5EB5$YVA0%-%|Iis65s~Mw#N?}>gV)t=JVUE?^83$cw62XGUMpetR7tv);u{dFK$ccz7JbPLO?V( zTm1CYXkOOiDXUNA@n+|(-?@J;W411ES#Z$jCReaJpoF3=S8Ft@w3Q@gh)u4B=LFL> za2ft2G=GUbn9(YeDVv))cFi8iK~}pzXy;-lFbTb>nQfPl4(=`EG$|Au`%zi8U`EC zHq*v>htUbt^{RVwg|WmxTgCstZOM}9|LI#gaQHh3P6@-??rp@! zhtw@-KDR8o^i)O&%irY>rhM+u>6C8&Wl5otD+9Hw{jrqDYOOZd?dR{ELQWq|>Q#OU ze|d^FAV9sB?Y~ojrvwW%!efZy0F=Vx(zslq+@nw`B}r<=fJ&v|dMVF)!AUBKOmas} zLA<07r5qaQDxB@vB629LU{C2ey-|d0%_W*Qt{GZ0~L(n z45|#BTiq%KD=OxlUE^*Xzb+#UD{AIaQ6D5SSMVee6j!s_hBK+I2I#y{^Mbl?N&t_q zYMGvrS1Q*gheo#O zbP&1L@xoJdfya&^UY$}RMH_TFNbA!j6-kn`>fnGYTCQ|ZDxfE+g=)=+mI8_{2v{>G zsTo`vkEb?~@!umBd+P+DM8)`vI|Fa9HJDrw8}CR`8l6SBBs#y=VDV7lM_j3)k6KP) z`9OGXOTBBXl0n*ZcKv-S?)O)gjiNMygaXdBIqt?J!hn=%h{~;}&_FRl*eg8`CK7-~ zIn`$HOC)m*ZPv|*E(&7;sLCzh?}2y6ZC2YT2g=>x6h^IeQ?-G{qHT-stu*XNgm6QC zc7^JnSM>h_IldUWIb%U?^1QsenwkYucUKL+`EK;xyNyp}0Rt9GPQ)wqu=z|AAFGiU zn&k?=75<+%DTsRoRBnREwU`oLLy>w_D}gl;UiI~o+=vLucIn0)Wz)jLw?~8vc1T4& zIeQL;6Z@qCevZEDBq-`(!8swJq5AWHNFZRbWYa=)x{#2_5E^rU#YCoQwShNoQgGH~ zHgs?jIg$rG2sAO+tmhEXI$=f{nMhbM(JyY*qq!cBGhu=)hKx387(ciS(e$yqoB$Xj zZ#O8(q=-jP%WimJFt73bk6v7v-bv%iAbhx9Zk}4YjvFTZVVL{C$wu^q+#@Fo5dGO4 zeU7pm1brFV*2?ODVr0?>PgD9Dc5^P$U>fTk~3Ux^-)UKC?#txh}RbBqD^K<`W4<_W=VI7 zoXr$bn@F&6&t3sbfbF5M53*Rhn_)pWvutUEB?3IbWc!v!3{VCD78AN5TN-|QAR?Rw zv2Q@)rF#AC+a~_K8*pcGXy^|=gqavO2>6eENxHNvg~o5bt3;q*-vrk0DqktorXsBz zSDAy2vH6Bd`x%Z%9p91Lpj1|TK#!PbaX1Y{xC)G~l#{TjLerNiiw2OiayA*37#t1? zfT4y$G0C3{_;mI9DwCCqf}{7U>=7h>ptj2$-RYjJ<{5~fn~^^ZG$n}Ya~rHQ1P_v^ z1{tZXZvIkTzWBwGPX<}Ec>Q~p$#wYH?rnJ+XDp9v_F8*N)YywWEAf-ywHG%Zb5~UZgY67^%tCCX_#}!G} zNEg<{0$%S;d_gEmT>!@rCQ@bl9uuece4G3LB>y&}e0;ca$u2r?2HDE}`~Ls{YQF^l literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Red/images/jbox-title-icon.gif b/apps/static/jbox/Skins/Red/images/jbox-title-icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..b9c772fb5dd615a76731d4c119ff9fe5ea34ea5e GIT binary patch literal 73 zcmZ?wbhEHbBe?# S{fN*C-Grs4uTF_ESOWmk-xUJ@ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/Red/jbox.css b/apps/static/jbox/Skins/Red/jbox.css new file mode 100644 index 000000000..816f237d0 --- /dev/null +++ b/apps/static/jbox/Skins/Red/jbox.css @@ -0,0 +1,43 @@ +@charset "utf-8"; +/* + ʾCSS ʽֻ޸ɫԣͼƬĵַͼƬСҪĬϵһ£border:dotted solid double dashed +*/ +*:focus {outline: none;} +/* fade */ +.jbox-fade{background-color:#000000;} +/* drag */ +.jbox-drag{border:1px dashed #B8311F;} +/* jbox */ +div.jbox {padding:0px;border:none;font-size:12px;} +/* border */ +div.jbox .jbox-border{background: none repeat scroll 0 0 #000000;filter:alpha(opacity=20);-moz-opacity:0.2;opacity:0.2;} +/* container */ +div.jbox .jbox-container{background-color:#ffffff;border:1px solid #999999;} +/* title-panel */ +div.jbox .jbox-title-panel{background:#B8311F;border-bottom:1px solid #CCCCCC;} +div.jbox .jbox-title{font-weight:bold;color:#ffffff;} +div.jbox .jbox-title-icon{background:url(images/jbox-title-icon.gif) no-repeat scroll 3px 5px transparent;} +div.jbox .jbox-close,div.jbox .jbox-close-hover{background:url(images/jbox-close1.gif) no-repeat scroll 0px 0px transparent;} +div.jbox .jbox-close-hover{background-position:-16px 0;} +/* content */ +div.jbox .jbox-content{min-height:24px;line-height:18px;color:#444444;} +div.jbox .jbox-content-loading{background-color:#E6E6E6;} +div.jbox .jbox-content-loading-image{background:url(images/jbox-content-loading.gif) no-repeat bottom center;} +/* button-panel */ +div.jbox .jbox-button-panel{border-top:1px solid #CCCCCC;background-color: #EEEEEE;} +div.jbox .jbox-bottom-text{text-indent:10px;color:#444444;} +div.jbox .jbox-button{background:url(images/jbox-button2.png) repeat-x transparent;border:#AAAAAA 1px solid;color:#888888;border-radius:3px 3px 3px 3px;margin:1px 7px 0px 0px;height:22px;cursor:default;} +div.jbox .jbox-button-hover{background-position:0px -20px;color:#666666;} +div.jbox .jbox-button-active{background-position:0px -40px;} +div.jbox-warning .jbox .jbox-button-panel{background-color: #FFFFFF;} +/* tip-color */ +div.jbox .jbox-tip-color{background-color:#B8311F;border-color:#B8311F;border-radius:3px 3px 3px 3px;color:#ffffff;} +/* icons */ +div.jbox span.jbox-icon{background:url(images/jbox-icons.png) no-repeat scroll 0 0 transparent;_background:url(images/jbox-icons-ie6.gif) no-repeat scroll 0 0 transparent;} +div.jbox span.jbox-icon-info {background-position:0 0;} +div.jbox span.jbox-icon-question {background-position:-36px 0;} +div.jbox span.jbox-icon-success {background-position:-72px 0;} +div.jbox span.jbox-icon-warning {background-position:-108px 0;} +div.jbox span.jbox-icon-error {background-position:-144px 0;} +div.jbox span.jbox-icon-none {display: none; overflow:hidden;} +div.jbox span.jbox-icon-loading {background:url(images/jbox-loading1.gif) no-repeat scroll 0 0 transparent;} \ No newline at end of file diff --git a/apps/static/jbox/Skins/ShareBlue/Desktop.ini b/apps/static/jbox/Skins/ShareBlue/Desktop.ini new file mode 100644 index 000000000..09485b11b --- /dev/null +++ b/apps/static/jbox/Skins/ShareBlue/Desktop.ini @@ -0,0 +1,3 @@ +[.ShellClassInfo] +IconFile=%SystemRoot%\system32\SHELL32.dll +IconIndex=161 diff --git a/apps/static/jbox/Skins/ShareBlue/images/Thumbs.db b/apps/static/jbox/Skins/ShareBlue/images/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..37d2c8e06c99e32ff48c54ba42aaf5a9f6c2ff34 GIT binary patch literal 19456 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 z z2s^t+4{EMo6fPw-%sxT!!ZIo}5dG+W=&Xn6!j||DWj;J^j-44@d4+^dO|Mu=8PVZ} zwbjCwpx|<}plwPVY!iK5nlSek^w?Rab(x_(nZ1Y6WBqD-4J*;36BMKi){YHRA;e(5 zF%ko}aVcyRH?ty&4lsScCi!<{=vV#sXZKJ2TL1j|{nQ`)GVEXde(Kl!_iO(9HUIsZ z|Nd9!zdzn{{QZ7oX6m%+uiNtN9_6p|=P&=$uiqd4;Sa0-XMTVD%m4I$!2k67-%QKrE-xibfFic*IJHO%471GxY1WxA-&^aGD<*p`V zrWv%-hyQK@1KuaWZu}7nA3B1~QMaNX+XENK3~k_KSVVpIU0A4UQa6)KgPInS-#pS; znr${AL3U6QExks+qa>=NSX5V-W#rTfbboa7$n@p}jsOw!o05y}`f5@nw!S2C4bGLs zywHv3a{#Ssl!9C!D)z}>`9H?ww+prJ$%xyK&n{bA#*X#m+QGBKU9B^gW`O3xNslvr zQ|8tIxEpF8o3rnVJdM;}FWK3i{kD=PG-Zq8P}&2+QCDA$*3`eEKmGWV`W5qkq6hv9 D1Ij5$ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareBlue/images/jbox-button1.png b/apps/static/jbox/Skins/ShareBlue/images/jbox-button1.png new file mode 100644 index 0000000000000000000000000000000000000000..7d8a6a4b21406876efb7462317f1d98ba2c83cdb GIT binary patch literal 338 zcmV-Y0j>UtP)@$vin z`{?NC&(F`?+}y^-#?#Z&{r&ym;NZi-6dkG1Tgy;Teq!|TN@q$hN^zs(J=OPZ`DSBcr?&2tR;wsJ}T5%FD z(TJOPh`$?KF%&CNi?t}lOpL``RAMOxq7YND5eqR9BhgoPGRHF`gEB26Bg2!Bm}Dg| ksfkX0J|bW89sUtu0DUGDT{S~8^Z)<=07*qoM6N<$f_p@~vyu7^c@9*vH?Yg?Uz`(%t z^z{Gpnd|H8*Vota@$t&a%K!S+|NZXI&(GZ4+~VTm=;-MB`uhL!mH+p-|Ni*X)6@U- zq5u5i|MV925@rDg03|gR(J#~^Qvd(} M07*qoM6N<$f^USX1^@s6 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareBlue/images/jbox-close1.gif b/apps/static/jbox/Skins/ShareBlue/images/jbox-close1.gif new file mode 100644 index 0000000000000000000000000000000000000000..a87057e8921fd316e5d6d690138ade8ec67c0f23 GIT binary patch literal 1221 zcmeH`SxggA6oyB^GA=D!hD$Lc$Q%Y2L|aN9iRe~ zpYoG_A1Lt>UXRz~_P9Q{BuN%UNf4q8!;++5l4XwP8J7Lc6QTmcGN2+9qG>u12>3~o zz%ZN5W|4tVj7Fov&`=~235UZx&vP8dvMj?eg98Kop->-92Lr$iib$W&M-ag5al75U zF4qUAvj@k!G0bkWSyA-8+1y3>eSVSvMSY;-U?3Qv$Y1T^-45{3ZnN5~miOi^5Q8E~ zS(4%%2m7~PE|;qZz;PTK8xV@3m6erXO=Ii&fBnk|s74aUL68Yr z7Kg_F1O$&l^VX(sdZNrLfZ5Cnyt-YzI7MCbQAJE^yEtodMPhBKx-Dl3((v$UM`3Hu znr6+uur#UR=Df#G(4AZnoOVQCuiU*MY39<6o!dqVu}e49Wf?D8>XiEW^=DF$bIzkv zFJ$OKn*H`pxZ_ciqsb8NH1#3n3HP@gcxh@`q%EsDsM+&)#`2*l`tBG$Cw0{!?Ji`bQRTQaCEXdxQ_P-whk{!lD4e3lv{$42G7fHjgJfyw zXYChn_UHL_x=+1pP_NtZePL0(ZrXx%Q_a<_?V`6rEKly`tXS#oY{QIR%6tR4{prL@ z?(UN3RO19qIk9Y8ij7EEf10k^o^K?|R%(CbzW!=0zPw`X_0Rg`x{~UKwBwl^K3msh z!Rwk3NTt>xP+nTr!e$g!zbcyfNvB-J;J>*$ro}!MYqYwZ7`4BRyeji6wRS J>gg%anx8VZ7x@4H literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareBlue/images/jbox-close2.gif b/apps/static/jbox/Skins/ShareBlue/images/jbox-close2.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd2dde9009dfd7adbd272044c03a6f57d1a34701 GIT binary patch literal 791 zcmb7>$xjn;6vwA6O9hlg8U+qOqksl&0we;0tU@)4;6cEIAP}@zV2p4e#zR455lny! z4P20TGDeLd?g}JwQ3*5io2}D!*3MSIC@1uS!=K>i<(=O9=6%0;wHIm%i`vqmcu0XE z8~|O{B}rm~!9c*zFbqi$q|rDa2@*q5fMKel(lj0L`$HiqBuPBaF^tdH<~WuBKoEpL zAi#4RO;MVr8-)X06ogPHq{xaWiX6)U3>A0*+XuyQAS<#ch>9WufGV=g_-JGUp=nCj zG?opb8;GuJ0AQjh5ClO}w5q8XiiPzsO_PQNLEwEfg(3(|k^7Drnj}fhz(}I$IF3^U z0Z`2FY6LQ3$+7|fPLjB)Dh33O1p`5rV_B9nzyV4bQ3+gAMPo^R_LaXod>(Y3w3(M?fQRIm|t2`)+ui792L zi>cnStUiC^ z5E9qUBv)QKQ8j4(IFxcV&ZI$Z>5*@kkGdj&9)|>WMhwp7?N5#Q0 zkm;(Y1-Lt6oRO$0V$5Ao-~Wy@MaHDU-36{G;kxC>!55w7?y40_e0+aKiF1eFK4eWO z*&68JJ%g#0N!GeM<<7^Jp~k1Xzl5*j$u93x&)xR5Q5!r7(LV+)o~)WeFT|&m&!_b) z6-YbJo4o+O$gfl^z8UhrozBT=5HEYU>XC@4#2Zx}`*Pyv@ztofzVvhLORm+Czw_nL F*?;R5w}Aiv literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareBlue/images/jbox-content-loading.gif b/apps/static/jbox/Skins/ShareBlue/images/jbox-content-loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..f3e1650093810c2c0ce153f9f1b84efc9b685615 GIT binary patch literal 10810 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

    ugLTFm2Ar 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareBlue/images/jbox-icons.png b/apps/static/jbox/Skins/ShareBlue/images/jbox-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..c35abcffc91f6cc505418870b6b0d8bf5a712cf6 GIT binary patch literal 6588 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

  • gTCn<{Nls)_0O<$R-M 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareBlue/images/jbox-loading2.gif b/apps/static/jbox/Skins/ShareBlue/images/jbox-loading2.gif new file mode 100644 index 0000000000000000000000000000000000000000..60f0070361aa5afddb2bab70a4918a141a850d90 GIT binary patch literal 4167 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareBlue/images/jbox-title-icon.gif b/apps/static/jbox/Skins/ShareBlue/images/jbox-title-icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..b9c772fb5dd615a76731d4c119ff9fe5ea34ea5e GIT binary patch literal 73 zcmZ?wbhEHbBe?# S{fN*C-Grs4uTF_ESOWmk-xUJ@ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareBlue/jbox.css b/apps/static/jbox/Skins/ShareBlue/jbox.css new file mode 100644 index 000000000..d5e64174d --- /dev/null +++ b/apps/static/jbox/Skins/ShareBlue/jbox.css @@ -0,0 +1,43 @@ +@charset "utf-8"; +/* + ʾCSS ʽֻ޸ɫԣͼƬĵַͼƬСҪĬϵһ£border:dotted solid double dashed +*/ +*:focus {outline: none;} +/* fade */ +.jbox-fade{background-color:#000000;} +/* drag */ +.jbox-drag{border:1px dashed #003870;} +/* jbox */ +div.jbox {padding:0px;border:none;font-size:12px;} +/* border */ +div.jbox .jbox-border{background: none repeat scroll 0 0 #000000;filter:alpha(opacity=20);-moz-opacity:0.2;opacity:0.2;} +/* container */ +div.jbox .jbox-container{background-color:#ffffff;border:1px solid #999999;} +/* title-panel */ +div.jbox .jbox-title-panel{background:#003870;border-bottom:1px solid #CCCCCC;} +div.jbox .jbox-title{font-weight:bold;color:#ffffff;} +div.jbox .jbox-title-icon{background:url(images/jbox-title-icon.gif) no-repeat scroll 3px 5px transparent;} +div.jbox .jbox-close,div.jbox .jbox-close-hover{background:url(images/jbox-close1.gif) no-repeat scroll 0px 0px transparent;} +div.jbox .jbox-close-hover{background-position:-16px 0;} +/* content */ +div.jbox .jbox-content{min-height:24px;line-height:18px;color:#444444;} +div.jbox .jbox-content-loading{background-color:#E6E6E6;} +div.jbox .jbox-content-loading-image{background:url(images/jbox-content-loading.gif) no-repeat bottom center;} +/* button-panel */ +div.jbox .jbox-button-panel{border-top:1px solid #CCCCCC;background-color: #EEEEEE;} +div.jbox .jbox-bottom-text{text-indent:10px;color:#444444;} +div.jbox .jbox-button{background:url(images/jbox-button2.png) repeat-x transparent;border:#AAAAAA 1px solid;color:#888888;border-radius:3px 3px 3px 3px;margin:1px 7px 0px 0px;height:22px;cursor:default;} +div.jbox .jbox-button-hover{background-position:0px -20px;color:#666666;} +div.jbox .jbox-button-active{background-position:0px -40px;} +div.jbox-warning .jbox .jbox-button-panel{background-color: #FFFFFF;} +/* tip-color */ +div.jbox .jbox-tip-color{background-color:#003870;border-color:#003870;border-radius:3px 3px 3px 3px;color:#ffffff;} +/* icons */ +div.jbox span.jbox-icon{background:url(images/jbox-icons.png) no-repeat scroll 0 0 transparent;_background:url(images/jbox-icons-ie6.gif) no-repeat scroll 0 0 transparent;} +div.jbox span.jbox-icon-info {background-position:0 0;} +div.jbox span.jbox-icon-question {background-position:-36px 0;} +div.jbox span.jbox-icon-success {background-position:-72px 0;} +div.jbox span.jbox-icon-warning {background-position:-108px 0;} +div.jbox span.jbox-icon-error {background-position:-144px 0;} +div.jbox span.jbox-icon-none {display: none; overflow:hidden;} +div.jbox span.jbox-icon-loading {background:url(images/jbox-loading1.gif) no-repeat scroll 0 0 transparent;} \ No newline at end of file diff --git a/apps/static/jbox/Skins/ShareBrown/Desktop.ini b/apps/static/jbox/Skins/ShareBrown/Desktop.ini new file mode 100644 index 000000000..09485b11b --- /dev/null +++ b/apps/static/jbox/Skins/ShareBrown/Desktop.ini @@ -0,0 +1,3 @@ +[.ShellClassInfo] +IconFile=%SystemRoot%\system32\SHELL32.dll +IconIndex=161 diff --git a/apps/static/jbox/Skins/ShareBrown/images/Thumbs.db b/apps/static/jbox/Skins/ShareBrown/images/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..37d2c8e06c99e32ff48c54ba42aaf5a9f6c2ff34 GIT binary patch literal 19456 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 z z2s^t+4{EMo6fPw-%sxT!!ZIo}5dG+W=&Xn6!j||DWj;J^j-44@d4+^dO|Mu=8PVZ} zwbjCwpx|<}plwPVY!iK5nlSek^w?Rab(x_(nZ1Y6WBqD-4J*;36BMKi){YHRA;e(5 zF%ko}aVcyRH?ty&4lsScCi!<{=vV#sXZKJ2TL1j|{nQ`)GVEXde(Kl!_iO(9HUIsZ z|Nd9!zdzn{{QZ7oX6m%+uiNtN9_6p|=P&=$uiqd4;Sa0-XMTVD%m4I$!2k67-%QKrE-xibfFic*IJHO%471GxY1WxA-&^aGD<*p`V zrWv%-hyQK@1KuaWZu}7nA3B1~QMaNX+XENK3~k_KSVVpIU0A4UQa6)KgPInS-#pS; znr${AL3U6QExks+qa>=NSX5V-W#rTfbboa7$n@p}jsOw!o05y}`f5@nw!S2C4bGLs zywHv3a{#Ssl!9C!D)z}>`9H?ww+prJ$%xyK&n{bA#*X#m+QGBKU9B^gW`O3xNslvr zQ|8tIxEpF8o3rnVJdM;}FWK3i{kD=PG-Zq8P}&2+QCDA$*3`eEKmGWV`W5qkq6hv9 D1Ij5$ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareBrown/images/jbox-button1.png b/apps/static/jbox/Skins/ShareBrown/images/jbox-button1.png new file mode 100644 index 0000000000000000000000000000000000000000..7d8a6a4b21406876efb7462317f1d98ba2c83cdb GIT binary patch literal 338 zcmV-Y0j>UtP)@$vin z`{?NC&(F`?+}y^-#?#Z&{r&ym;NZi-6dkG1Tgy;Teq!|TN@q$hN^zs(J=OPZ`DSBcr?&2tR;wsJ}T5%FD z(TJOPh`$?KF%&CNi?t}lOpL``RAMOxq7YND5eqR9BhgoPGRHF`gEB26Bg2!Bm}Dg| ksfkX0J|bW89sUtu0DUGDT{S~8^Z)<=07*qoM6N<$f_p@~vyu7^c@9*vH?Yg?Uz`(%t z^z{Gpnd|H8*Vota@$t&a%K!S+|NZXI&(GZ4+~VTm=;-MB`uhL!mH+p-|Ni*X)6@U- zq5u5i|MV925@rDg03|gR(J#~^Qvd(} M07*qoM6N<$f^USX1^@s6 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareBrown/images/jbox-close1.gif b/apps/static/jbox/Skins/ShareBrown/images/jbox-close1.gif new file mode 100644 index 0000000000000000000000000000000000000000..a87057e8921fd316e5d6d690138ade8ec67c0f23 GIT binary patch literal 1221 zcmeH`SxggA6oyB^GA=D!hD$Lc$Q%Y2L|aN9iRe~ zpYoG_A1Lt>UXRz~_P9Q{BuN%UNf4q8!;++5l4XwP8J7Lc6QTmcGN2+9qG>u12>3~o zz%ZN5W|4tVj7Fov&`=~235UZx&vP8dvMj?eg98Kop->-92Lr$iib$W&M-ag5al75U zF4qUAvj@k!G0bkWSyA-8+1y3>eSVSvMSY;-U?3Qv$Y1T^-45{3ZnN5~miOi^5Q8E~ zS(4%%2m7~PE|;qZz;PTK8xV@3m6erXO=Ii&fBnk|s74aUL68Yr z7Kg_F1O$&l^VX(sdZNrLfZ5Cnyt-YzI7MCbQAJE^yEtodMPhBKx-Dl3((v$UM`3Hu znr6+uur#UR=Df#G(4AZnoOVQCuiU*MY39<6o!dqVu}e49Wf?D8>XiEW^=DF$bIzkv zFJ$OKn*H`pxZ_ciqsb8NH1#3n3HP@gcxh@`q%EsDsM+&)#`2*l`tBG$Cw0{!?Ji`bQRTQaCEXdxQ_P-whk{!lD4e3lv{$42G7fHjgJfyw zXYChn_UHL_x=+1pP_NtZePL0(ZrXx%Q_a<_?V`6rEKly`tXS#oY{QIR%6tR4{prL@ z?(UN3RO19qIk9Y8ij7EEf10k^o^K?|R%(CbzW!=0zPw`X_0Rg`x{~UKwBwl^K3msh z!Rwk3NTt>xP+nTr!e$g!zbcyfNvB-J;J>*$ro}!MYqYwZ7`4BRyeji6wRS J>gg%anx8VZ7x@4H literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareBrown/images/jbox-close2.gif b/apps/static/jbox/Skins/ShareBrown/images/jbox-close2.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd2dde9009dfd7adbd272044c03a6f57d1a34701 GIT binary patch literal 791 zcmb7>$xjn;6vwA6O9hlg8U+qOqksl&0we;0tU@)4;6cEIAP}@zV2p4e#zR455lny! z4P20TGDeLd?g}JwQ3*5io2}D!*3MSIC@1uS!=K>i<(=O9=6%0;wHIm%i`vqmcu0XE z8~|O{B}rm~!9c*zFbqi$q|rDa2@*q5fMKel(lj0L`$HiqBuPBaF^tdH<~WuBKoEpL zAi#4RO;MVr8-)X06ogPHq{xaWiX6)U3>A0*+XuyQAS<#ch>9WufGV=g_-JGUp=nCj zG?opb8;GuJ0AQjh5ClO}w5q8XiiPzsO_PQNLEwEfg(3(|k^7Drnj}fhz(}I$IF3^U z0Z`2FY6LQ3$+7|fPLjB)Dh33O1p`5rV_B9nzyV4bQ3+gAMPo^R_LaXod>(Y3w3(M?fQRIm|t2`)+ui792L zi>cnStUiC^ z5E9qUBv)QKQ8j4(IFxcV&ZI$Z>5*@kkGdj&9)|>WMhwp7?N5#Q0 zkm;(Y1-Lt6oRO$0V$5Ao-~Wy@MaHDU-36{G;kxC>!55w7?y40_e0+aKiF1eFK4eWO z*&68JJ%g#0N!GeM<<7^Jp~k1Xzl5*j$u93x&)xR5Q5!r7(LV+)o~)WeFT|&m&!_b) z6-YbJo4o+O$gfl^z8UhrozBT=5HEYU>XC@4#2Zx}`*Pyv@ztofzVvhLORm+Czw_nL F*?;R5w}Aiv literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareBrown/images/jbox-content-loading.gif b/apps/static/jbox/Skins/ShareBrown/images/jbox-content-loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..234a9f6d2cdfa8d01075306fdbd3f8cd28678202 GIT binary patch literal 10810 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareBrown/images/jbox-icons.png b/apps/static/jbox/Skins/ShareBrown/images/jbox-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..c35abcffc91f6cc505418870b6b0d8bf5a712cf6 GIT binary patch literal 6588 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
  • gTCn<{Nls)_0O<$R-M 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareBrown/images/jbox-loading2.gif b/apps/static/jbox/Skins/ShareBrown/images/jbox-loading2.gif new file mode 100644 index 0000000000000000000000000000000000000000..73745fb85908cb895fe31fd9da8b8c04974544a2 GIT binary patch literal 4167 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareBrown/images/jbox-loading3.gif b/apps/static/jbox/Skins/ShareBrown/images/jbox-loading3.gif new file mode 100644 index 0000000000000000000000000000000000000000..838bce9ee7fc96ecd13a7c12b98e2077fe1388b5 GIT binary patch literal 8778 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareBrown/images/jbox-title-icon.gif b/apps/static/jbox/Skins/ShareBrown/images/jbox-title-icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..b9c772fb5dd615a76731d4c119ff9fe5ea34ea5e GIT binary patch literal 73 zcmZ?wbhEHbBe?# S{fN*C-Grs4uTF_ESOWmk-xUJ@ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareBrown/jbox.css b/apps/static/jbox/Skins/ShareBrown/jbox.css new file mode 100644 index 000000000..43537cf60 --- /dev/null +++ b/apps/static/jbox/Skins/ShareBrown/jbox.css @@ -0,0 +1,43 @@ +@charset "utf-8"; +/* + ʾCSS ʽֻ޸ɫԣͼƬĵַͼƬСҪĬϵһ£border:dotted solid double dashed +*/ +*:focus {outline: none;} +/* fade */ +.jbox-fade{background-color:#000000;} +/* drag */ +.jbox-drag{border:1px dashed #60350B;} +/* jbox */ +div.jbox {padding:0px;border:none;font-size:12px;} +/* border */ +div.jbox .jbox-border{background: none repeat scroll 0 0 #000000;filter:alpha(opacity=20);-moz-opacity:0.2;opacity:0.2;} +/* container */ +div.jbox .jbox-container{background-color:#ffffff;border:1px solid #999999;} +/* title-panel */ +div.jbox .jbox-title-panel{background:#60350B;border-bottom:1px solid #CCCCCC;} +div.jbox .jbox-title{font-weight:bold;color:#ffffff;} +div.jbox .jbox-title-icon{background:url(images/jbox-title-icon.gif) no-repeat scroll 3px 5px transparent;} +div.jbox .jbox-close,div.jbox .jbox-close-hover{background:url(images/jbox-close1.gif) no-repeat scroll 0px 0px transparent;} +div.jbox .jbox-close-hover{background-position:-16px 0;} +/* content */ +div.jbox .jbox-content{min-height:24px;line-height:18px;color:#444444;} +div.jbox .jbox-content-loading{background-color:#E6E6E6;} +div.jbox .jbox-content-loading-image{background:url(images/jbox-content-loading.gif) no-repeat bottom center;} +/* button-panel */ +div.jbox .jbox-button-panel{border-top:1px solid #CCCCCC;background-color: #EEEEEE;} +div.jbox .jbox-bottom-text{text-indent:10px;color:#444444;} +div.jbox .jbox-button{background:url(images/jbox-button2.png) repeat-x transparent;border:#AAAAAA 1px solid;color:#888888;border-radius:3px 3px 3px 3px;margin:1px 7px 0px 0px;height:22px;cursor:default;} +div.jbox .jbox-button-hover{background-position:0px -20px;color:#666666;} +div.jbox .jbox-button-active{background-position:0px -40px;} +div.jbox-warning .jbox .jbox-button-panel{background-color: #FFFFFF;} +/* tip-color */ +div.jbox .jbox-tip-color{background-color:#60350B;border-color:#60350B;border-radius:3px 3px 3px 3px;color:#ffffff;} +/* icons */ +div.jbox span.jbox-icon{background:url(images/jbox-icons.png) no-repeat scroll 0 0 transparent;_background:url(images/jbox-icons-ie6.gif) no-repeat scroll 0 0 transparent;} +div.jbox span.jbox-icon-info {background-position:0 0;} +div.jbox span.jbox-icon-question {background-position:-36px 0;} +div.jbox span.jbox-icon-success {background-position:-72px 0;} +div.jbox span.jbox-icon-warning {background-position:-108px 0;} +div.jbox span.jbox-icon-error {background-position:-144px 0;} +div.jbox span.jbox-icon-none {display: none; overflow:hidden;} +div.jbox span.jbox-icon-loading {background:url(images/jbox-loading1.gif) no-repeat scroll 0 0 transparent;} \ No newline at end of file diff --git a/apps/static/jbox/Skins/ShareGreen/Desktop.ini b/apps/static/jbox/Skins/ShareGreen/Desktop.ini new file mode 100644 index 000000000..09485b11b --- /dev/null +++ b/apps/static/jbox/Skins/ShareGreen/Desktop.ini @@ -0,0 +1,3 @@ +[.ShellClassInfo] +IconFile=%SystemRoot%\system32\SHELL32.dll +IconIndex=161 diff --git a/apps/static/jbox/Skins/ShareGreen/images/Thumbs.db b/apps/static/jbox/Skins/ShareGreen/images/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..37d2c8e06c99e32ff48c54ba42aaf5a9f6c2ff34 GIT binary patch literal 19456 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 z z2s^t+4{EMo6fPw-%sxT!!ZIo}5dG+W=&Xn6!j||DWj;J^j-44@d4+^dO|Mu=8PVZ} zwbjCwpx|<}plwPVY!iK5nlSek^w?Rab(x_(nZ1Y6WBqD-4J*;36BMKi){YHRA;e(5 zF%ko}aVcyRH?ty&4lsScCi!<{=vV#sXZKJ2TL1j|{nQ`)GVEXde(Kl!_iO(9HUIsZ z|Nd9!zdzn{{QZ7oX6m%+uiNtN9_6p|=P&=$uiqd4;Sa0-XMTVD%m4I$!2k67-%QKrE-xibfFic*IJHO%471GxY1WxA-&^aGD<*p`V zrWv%-hyQK@1KuaWZu}7nA3B1~QMaNX+XENK3~k_KSVVpIU0A4UQa6)KgPInS-#pS; znr${AL3U6QExks+qa>=NSX5V-W#rTfbboa7$n@p}jsOw!o05y}`f5@nw!S2C4bGLs zywHv3a{#Ssl!9C!D)z}>`9H?ww+prJ$%xyK&n{bA#*X#m+QGBKU9B^gW`O3xNslvr zQ|8tIxEpF8o3rnVJdM;}FWK3i{kD=PG-Zq8P}&2+QCDA$*3`eEKmGWV`W5qkq6hv9 D1Ij5$ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareGreen/images/jbox-button1.png b/apps/static/jbox/Skins/ShareGreen/images/jbox-button1.png new file mode 100644 index 0000000000000000000000000000000000000000..7d8a6a4b21406876efb7462317f1d98ba2c83cdb GIT binary patch literal 338 zcmV-Y0j>UtP)@$vin z`{?NC&(F`?+}y^-#?#Z&{r&ym;NZi-6dkG1Tgy;Teq!|TN@q$hN^zs(J=OPZ`DSBcr?&2tR;wsJ}T5%FD z(TJOPh`$?KF%&CNi?t}lOpL``RAMOxq7YND5eqR9BhgoPGRHF`gEB26Bg2!Bm}Dg| ksfkX0J|bW89sUtu0DUGDT{S~8^Z)<=07*qoM6N<$f_p@~vyu7^c@9*vH?Yg?Uz`(%t z^z{Gpnd|H8*Vota@$t&a%K!S+|NZXI&(GZ4+~VTm=;-MB`uhL!mH+p-|Ni*X)6@U- zq5u5i|MV925@rDg03|gR(J#~^Qvd(} M07*qoM6N<$f^USX1^@s6 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareGreen/images/jbox-close1.gif b/apps/static/jbox/Skins/ShareGreen/images/jbox-close1.gif new file mode 100644 index 0000000000000000000000000000000000000000..a87057e8921fd316e5d6d690138ade8ec67c0f23 GIT binary patch literal 1221 zcmeH`SxggA6oyB^GA=D!hD$Lc$Q%Y2L|aN9iRe~ zpYoG_A1Lt>UXRz~_P9Q{BuN%UNf4q8!;++5l4XwP8J7Lc6QTmcGN2+9qG>u12>3~o zz%ZN5W|4tVj7Fov&`=~235UZx&vP8dvMj?eg98Kop->-92Lr$iib$W&M-ag5al75U zF4qUAvj@k!G0bkWSyA-8+1y3>eSVSvMSY;-U?3Qv$Y1T^-45{3ZnN5~miOi^5Q8E~ zS(4%%2m7~PE|;qZz;PTK8xV@3m6erXO=Ii&fBnk|s74aUL68Yr z7Kg_F1O$&l^VX(sdZNrLfZ5Cnyt-YzI7MCbQAJE^yEtodMPhBKx-Dl3((v$UM`3Hu znr6+uur#UR=Df#G(4AZnoOVQCuiU*MY39<6o!dqVu}e49Wf?D8>XiEW^=DF$bIzkv zFJ$OKn*H`pxZ_ciqsb8NH1#3n3HP@gcxh@`q%EsDsM+&)#`2*l`tBG$Cw0{!?Ji`bQRTQaCEXdxQ_P-whk{!lD4e3lv{$42G7fHjgJfyw zXYChn_UHL_x=+1pP_NtZePL0(ZrXx%Q_a<_?V`6rEKly`tXS#oY{QIR%6tR4{prL@ z?(UN3RO19qIk9Y8ij7EEf10k^o^K?|R%(CbzW!=0zPw`X_0Rg`x{~UKwBwl^K3msh z!Rwk3NTt>xP+nTr!e$g!zbcyfNvB-J;J>*$ro}!MYqYwZ7`4BRyeji6wRS J>gg%anx8VZ7x@4H literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareGreen/images/jbox-close2.gif b/apps/static/jbox/Skins/ShareGreen/images/jbox-close2.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd2dde9009dfd7adbd272044c03a6f57d1a34701 GIT binary patch literal 791 zcmb7>$xjn;6vwA6O9hlg8U+qOqksl&0we;0tU@)4;6cEIAP}@zV2p4e#zR455lny! z4P20TGDeLd?g}JwQ3*5io2}D!*3MSIC@1uS!=K>i<(=O9=6%0;wHIm%i`vqmcu0XE z8~|O{B}rm~!9c*zFbqi$q|rDa2@*q5fMKel(lj0L`$HiqBuPBaF^tdH<~WuBKoEpL zAi#4RO;MVr8-)X06ogPHq{xaWiX6)U3>A0*+XuyQAS<#ch>9WufGV=g_-JGUp=nCj zG?opb8;GuJ0AQjh5ClO}w5q8XiiPzsO_PQNLEwEfg(3(|k^7Drnj}fhz(}I$IF3^U z0Z`2FY6LQ3$+7|fPLjB)Dh33O1p`5rV_B9nzyV4bQ3+gAMPo^R_LaXod>(Y3w3(M?fQRIm|t2`)+ui792L zi>cnStUiC^ z5E9qUBv)QKQ8j4(IFxcV&ZI$Z>5*@kkGdj&9)|>WMhwp7?N5#Q0 zkm;(Y1-Lt6oRO$0V$5Ao-~Wy@MaHDU-36{G;kxC>!55w7?y40_e0+aKiF1eFK4eWO z*&68JJ%g#0N!GeM<<7^Jp~k1Xzl5*j$u93x&)xR5Q5!r7(LV+)o~)WeFT|&m&!_b) z6-YbJo4o+O$gfl^z8UhrozBT=5HEYU>XC@4#2Zx}`*Pyv@ztofzVvhLORm+Czw_nL F*?;R5w}Aiv literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareGreen/images/jbox-content-loading.gif b/apps/static/jbox/Skins/ShareGreen/images/jbox-content-loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..42d4dd98e06c9799185321d0e75dfcd85ab9ed78 GIT binary patch literal 10810 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

      IkvahtT6J2WH}}(lapGGhr*Awq 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareGreen/images/jbox-icons.png b/apps/static/jbox/Skins/ShareGreen/images/jbox-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..c35abcffc91f6cc505418870b6b0d8bf5a712cf6 GIT binary patch literal 6588 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
    1. gTCn<{Nls)_0O<$R-M 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareGreen/images/jbox-loading2.gif b/apps/static/jbox/Skins/ShareGreen/images/jbox-loading2.gif new file mode 100644 index 0000000000000000000000000000000000000000..edb3a218222a33a07d2740922651d2fe3783a4dc GIT binary patch literal 4167 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareGreen/images/jbox-title-icon.gif b/apps/static/jbox/Skins/ShareGreen/images/jbox-title-icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..b9c772fb5dd615a76731d4c119ff9fe5ea34ea5e GIT binary patch literal 73 zcmZ?wbhEHbBe?# S{fN*C-Grs4uTF_ESOWmk-xUJ@ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareGreen/jbox.css b/apps/static/jbox/Skins/ShareGreen/jbox.css new file mode 100644 index 000000000..1222470e4 --- /dev/null +++ b/apps/static/jbox/Skins/ShareGreen/jbox.css @@ -0,0 +1,43 @@ +@charset "utf-8"; +/* + ʾCSS ʽֻ޸ɫԣͼƬĵַͼƬСҪĬϵһ£border:dotted solid double dashed +*/ +*:focus {outline: none;} +/* fade */ +.jbox-fade{background-color:#000000;} +/* drag */ +.jbox-drag{border:1px dashed #4D5A14;} +/* jbox */ +div.jbox {padding:0px;border:none;font-size:12px;} +/* border */ +div.jbox .jbox-border{background: none repeat scroll 0 0 #000000;filter:alpha(opacity=20);-moz-opacity:0.2;opacity:0.2;} +/* container */ +div.jbox .jbox-container{background-color:#ffffff;border:1px solid #999999;} +/* title-panel */ +div.jbox .jbox-title-panel{background:#4D5A14;border-bottom:1px solid #CCCCCC;} +div.jbox .jbox-title{font-weight:bold;color:#ffffff;} +div.jbox .jbox-title-icon{background:url(images/jbox-title-icon.gif) no-repeat scroll 3px 5px transparent;} +div.jbox .jbox-close,div.jbox .jbox-close-hover{background:url(images/jbox-close1.gif) no-repeat scroll 0px 0px transparent;} +div.jbox .jbox-close-hover{background-position:-16px 0;} +/* content */ +div.jbox .jbox-content{min-height:24px;line-height:18px;color:#444444;} +div.jbox .jbox-content-loading{background-color:#E6E6E6;} +div.jbox .jbox-content-loading-image{background:url(images/jbox-content-loading.gif) no-repeat bottom center;} +/* button-panel */ +div.jbox .jbox-button-panel{border-top:1px solid #CCCCCC;background-color: #EEEEEE;} +div.jbox .jbox-bottom-text{text-indent:10px;color:#444444;} +div.jbox .jbox-button{background:url(images/jbox-button2.png) repeat-x transparent;border:#AAAAAA 1px solid;color:#888888;border-radius:3px 3px 3px 3px;margin:1px 7px 0px 0px;height:22px;cursor:default;} +div.jbox .jbox-button-hover{background-position:0px -20px;color:#666666;} +div.jbox .jbox-button-active{background-position:0px -40px;} +div.jbox-warning .jbox .jbox-button-panel{background-color: #FFFFFF;} +/* tip-color */ +div.jbox .jbox-tip-color{background-color:#4D5A14;border-color:#4D5A14;border-radius:3px 3px 3px 3px;color:#ffffff;} +/* icons */ +div.jbox span.jbox-icon{background:url(images/jbox-icons.png) no-repeat scroll 0 0 transparent;_background:url(images/jbox-icons-ie6.gif) no-repeat scroll 0 0 transparent;} +div.jbox span.jbox-icon-info {background-position:0 0;} +div.jbox span.jbox-icon-question {background-position:-36px 0;} +div.jbox span.jbox-icon-success {background-position:-72px 0;} +div.jbox span.jbox-icon-warning {background-position:-108px 0;} +div.jbox span.jbox-icon-error {background-position:-144px 0;} +div.jbox span.jbox-icon-none {display: none; overflow:hidden;} +div.jbox span.jbox-icon-loading {background:url(images/jbox-loading1.gif) no-repeat scroll 0 0 transparent;} \ No newline at end of file diff --git a/apps/static/jbox/Skins/SharePurple/Desktop.ini b/apps/static/jbox/Skins/SharePurple/Desktop.ini new file mode 100644 index 000000000..09485b11b --- /dev/null +++ b/apps/static/jbox/Skins/SharePurple/Desktop.ini @@ -0,0 +1,3 @@ +[.ShellClassInfo] +IconFile=%SystemRoot%\system32\SHELL32.dll +IconIndex=161 diff --git a/apps/static/jbox/Skins/SharePurple/images/Thumbs.db b/apps/static/jbox/Skins/SharePurple/images/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..37d2c8e06c99e32ff48c54ba42aaf5a9f6c2ff34 GIT binary patch literal 19456 zcmeI32|QI>-}tvV%9uGrWh#=8sc@1I4Wi6br4o`%nVr(06on)ek|YWl4n>^EkW3jO zWS%m`F`mO2-ruR)^W1v>_dY${&-=We`~F*e&)#S6HSe{5YyEz|b>7x<_9SKr_9EW} zO@t01QA3F^uU4{s$v4=@1KXU+sH z1DF98U^%b?U;_jJb^wL|!U=Ez+yHeP@W7E5-~;#p0bmtCy(a`mVL${B1y%!VfVF@a zAP!LD{R;oN9xz5+;m;GEg${BOj_!yrJcS<*yf9+E)|T#HBs(*9M2Ks54GlHk8TBub z<^M&Re|4K4p{4m+KK1yo;(xt=kvf1OXd{Q9)rXK1&}h+TY5jrlp=zpUIEB|5RB)l>y(s|5W)wl>z^+_n#^+ zs50P3-hT;*CkaRa>wxuuG#~?P0AzuUfE=(1ppGAEA1VTy0VO~gPytkdabOFu6`&3| z4L}n>0d2s2U^}1<>;QBCT|f`m3Frd`z%F1nK$TB>;b;i#1B?J;U_WpGFab;fGr%0M z04xD3z#6atYymsqAaDpc4A=ulfTO@MfI1ebWjVsp32+8Z04~5uz!f+JxB>2f2jB^K z0jB|PfSR8AHv0koKmZU31OaH^46p*AjsZV-pp^HN9)!a{S6>&QfkAbUT0u$&bPXLX zE%hG)J^V8)V_=}CXJBDsVqCU@WyOl+EX$X(vT<>+vT?F4U(UhH!MT!~hlghcJ0CwU zH$N9Q4>vUv8ahZr&%n&Uz|76MoR$0E4wRP&=Q3)g=xEj=w45|_oHUd&>O4Zj0JWu7 z__shq3w2~93o)g4W*%@qot>#)*505!hM9ElYwiEycXk1qeDz<-MAIbMkFp1 z+n!azW85$$u6Wozn3;u_k6%DgLQ-nodg;wd$||aATeNrR=<4m%H`sr`#MI2(!qWc8 z(PIwB9i2Qpy-s`k`1+kYf8k=trOTm_Q8%J*#@vd%eLv|z^23xzscG3cxtP5CXU_{t zUzL?tRKBiy)7aGfuBG*TTYGO`|G?nT@W+u+-1N-s-24Kbut;qe4MO*&S^sF+ckSYY zcG1$))6p|g+eJg`4bXAYGpvzk+b)mH8M?c3BH`(^6a?|IuScF923 zATc{voPFC)`u+??zZIUgjud1qR=6fd-OJi$uR$G)!VP1ycG=7!%Y~+4XNgZu^PBJ8 z@2$NbxaIM@12cP>#@gK{@mIJ=uA3Z5f zvyX!GCaR+-h-M?Yr)f6@87M$~e_=wsX@X!(NNEl-X&@EdM%T|#kTY`Roz~CLgav#~ zCXP^!bC_Rf`&4q#!T(D2TYwALcUlU@E1o zNUA)tT!<$9!L964@pxuaQ=^+EK1U+FX=Yr+x#&2SnO20{4#Y|iVG7L+!`1n`1|L0l zCLDG|N{;fH?VuZ_krEhr)}Na3L^ALe>DUdY1IAaA`7zb5my-(uH%je2-`9M|;n+g) zn}K$1`!X`r{pka{MQvxRHDd``?(q`13`WEG8%O9Uh^;cFFmDDmJxM_V(er5?%cIav zW@Yv5?$gb;+bM`6AxU~JdZUT+N31w1aMj2iSJX&18QM5;z~u!6NkK1-Q4ow-GC37R zpdipi6lA_qrKNS6j2`%1d=$|sR;4{s{n_~p-P8FRdL%{B8dEP-lcw`26M1HM^wL4| zWFj_!u+lXt(6^L)&+7#}uE6Z>e94j+ECIUxr_Yy1V5q%pxb z?9G5Uwfp*XclG7nHHU@IN+s4cMXJ^hr(rglsceos-MTl@+tTGz^`}{EN=V9v19#Uw z#*j}F+ulzm1-f-f;>y}Z^1W7Ao+e3G(hg1gmU5Mw1g|}_w~wEJpAhbc>>Lh2;|jV< z;>F&LbG_ch7Qvc3b9sna_GRolgEIMdCJREts$$`oWHUi^;yHinXTGK9B zgH+uENdi@lvIX-?@sAA^n-^L{p0?qD&*@QS|$3gh30DtznkOF?Uaz)u=&dI zj5+3wDaQwoM5f-~$>*F~+tYoSDaf{T88R`G zf^Z(_2`t`-yF@`A-Jp&MOOc~~xH@@@lTs^LSS_0GP>`xyqdg;i+!9Lj_8r;NV$*!& zvzBHgf*pD7wKeFEJjv+pXbRFNZK!Zfp#atLq_SWsfpC|CwD|;e2ZQWD{VvkFCDjej znsVP?I_O=_bYk>zQnLt0CNg)Tq13E$Zs*g#M7xkXf~K zr2d21lkmcmiye{$o!D@1PbNMzcPhAHd7(27Q$B9qw)uMMq42opl|_1K$8R6Ye^iM^ zA9C^XIcruMDIpP@H^^F9L+4IY$1ZmJPEArxigZqbilS?5C!u(WSAwCdi;EtYR8OrdDj&)yp z;n;&+TDFIRJTOygxOg|^YSQ|x`NnsGT;om}<``XlQe1;C5kn3ExX+8yM+-f;1b0;^)`bL0*5X+K!pJ31UupR)7a(`_w~l-B z!%X5uNGm;Tn|7mkn5_5iiLAxOqfD;4erC6h&-jd4hg~b9Aj?NJ`J0K_Y?u?912?0S zKN#%R6(W5|Lb~O9Pifk}tm=Dq4e#uF0X3_H9^3+gE^Ob_ty}H0$(d0wT1O6M@nnvt zzA^2pD)f6l@2Z^BS?$wZa*muZ3|%b~I{ggmjJmL2KP$jA5!;dVe4pln@^U|uxB(UN zrYVi`+=dSw)xH}dYL|!T?LT@-TZV0!*mXV2CRT%Fbz9*&*`Vq8u_c_?%JZ2Q&lh1- zR#jL%EYKY6P!{XcyY#Xr&a#_==*v34#VEY!e7w5DwGd9WAc2lcMiN^ylJErHK zdLFI|H@~oF^s)uR2_+7js5VovNs3xMa?>)a_J=-r(v#yCJ9n%R=OtirLrT zX}7{B-jLJTS*SXl*C$SPNcR9jZx?ZeIcL>Yg$e8a)%oq+j7Q`W1Nf^p1eG(3&!KQK zH;dQe2{-~-eOGUF^(1Ti@x{DY`snX^Hk*eaeKKrPq@GayvkFE)ooV?Dh!Y`ymxz)8s zNa-#h)^1`(TJx^>vZQ(&6{6Nxru$~(-}kw)6W5iJYW`7SOgYATUzb>ib%{vl({cgb z8R4BL$_$aKn}*fsJn{AAK9xk7YFK9pSWpn$n>mHigaePSUX;Ass-&;vjq^ zGfIw$TWKnw+mve2rAPZ-93*Nqvy;l6K*keVfqe-)T^5F}6oiFLQh(pB(cP}>Ai!Uz z-fmppduVS^ozf~t3R0a`gnenf3B%oV5``B+*YwQEEkAy{ysZG+FuODsb>`S}jJ{A0 zqPCg?EDuy0A*hP~fU1c_HdVgo1Y3_kq6K=n0w|F?Kquc0y16Xq*lKX524|b$>L$1= z3*S{BCiSiY=G>~E>O^G(XHu|2+tPqhYszK9^5n^TVGRQ;}`FL`@H zNmPrO>}T82A<*6(KbN%;%5(gz!+$B0YEeZxi4_9hlxhDtl?UYU`#MrB7*y*k(s-Kv z?KklcgJ$muf7DieTTf~lCTg1OO&h5_{?8uyXS-aDH#mG>FRFDH$^NSU7eKK;qyK+R zUjh&1XVU+t?FVcK+b{dUXS>MX-+rJMKXiQHV4}gfv*(X#&7Z>+>k($xiVEPcX?c7fy||`&90Kp&`qJ@vGa+}h z_#J10TKc5;A_lE(Eq?02jP$4T+!H5FJY(WAlR=4exb#B5x7tN{$t>D#PqQRPxlj## ziUz-&mnL@ayByqPUv4*BfZU2a7LmpA^Oy2y__=x_X|IDI)^FeuwE3e%Q8HYy7%XN+M z?Mv=9QC;nAcKfUA9UCwB1$; zk5Mg^a=sA1@A%uyBQjz{lBNx!-{ zc9??XiV4v!1SY)5^s0R`-jyyn=&E^@kd`LB#TET>T9galQQ6I7XH__rUMhPt=G2-c zhR5f;*A86UBxUnl7;7!~kt{^i!RehPdN}k@5Z=y??phC)ssaJ++!bb;*0*{#(Gk2D zpQWyCCDV+yFO86eozpF+tu38(cBihOAB;LC|Lm^2vq$g3dAVWg=^p z>;N|fv8U(ipn_AgXiC#|?(K2d7LErZ-(% z7{lHV#eZTW^GXp<45_)ULZ^k`(%D%k$m{i*xkkFH$OfU^J$Cm*|72zJb^VeD^WooN z{SF?$U+ee(BkOloT+No6+qETmQD)|$x=*jrtq#-Mdby2g(SN%t#_(NFBZqAFrJ>^J z>@uZ_wRU^&CXlho-1}&hE@rwu(B&E{^RP4UmS=Ul6w{Og?1@j_1>-?_OYLq6ft)oZOpM=u#x+vWZ~vKcRQ)Zce* z=*>Xt7j*RqeWB}Ul(w?kE_1nuDZp`0pDnOhutp5;y&j<;Eg2!D^92{;pF8s}E09*t@fJ*>%4?!p#uK-tp zFd!Vb23!XsfJh(;xB)~1H-Q-777z>E2JQfNfjA%@NC55ui2${XBse|*l7WXn3h)R> z1=4`Wz!M-H$N(~dr$82v4dej100zhd@_}c-bD#hy1YQ8tvWnq|1zrLrKq>GFCv z=m!RXL0||N20j8Kz$ie?hsp$;e*z|fDF6phum5cLD*xH({~q$69TEK{|Nn2u{|O>f z&(?&ie78q87Ksuif>9Vt^KLG?11GX>FvmU>qPZ*dsY;5*B1HQ>-a23-p3p-QGsFq` zCC_@#pBhzo<8kc8FQ&=?P-b`Vw^qH{*N3GO=%8IQF5=wTi53cyd3#Y3@n_KITI= z1FM%~)@#p;CaN}-!MZ`C*R}TP?doOcc1H7)xB5tvM;mJ~$2YoYHYh#V#r%Ai_l$_6 zT1nL5yZu7a7w8bPI_)T(`OHPK!}vQ=(WpLV+}9>={6$`O`sCn|7ks@Tua?(eTMW6} zpl-xRl-e$r_ujD}LUNDGbnTYQZBMhM&%9LjJ}Dk;a@ss-4gO^Rd=UOJZ(MKvsz9vW z(>xd3O$}J1k&p$}7iY=Y`nDOr_Ol zCr|8f-xMu7WLkPsU0z`6(i?5*r&&+NH04QY#S)HgddVZLwzAK%taP2%HNNfUH@a0X ze~jhmx=lOVH-)C%Lu6hr2yq`y$i*h0>lZ(e_(;izj~YKon%isliGoPK8<}!#StxY9 zS@ok6%UAg!$@uq>AFF?@AAj2y_xHE|ZU`Q2ICx1ZEr%XSkoE0Lm@kwg%-Ai>VoWQ+ zH2kK^{>g`mBVksD%NhAr3$3WwtNHLD`DFt6Tnu_)2>jMzEp@!7-R-Usgc=?VayN_i zl8+=fXT$yiB?^MwrPn@=9j--BHa4T*ucRPv-6zS!4sh@lpq|2F^WI=Li2$CuelPXM zgqVJ^jt6!C9YTl<%%~;@w311(qW{bZRKJ6Uuy3pyyEFrCw~CM7RHESxHZ}+~AT&w% zxe9o?XAVIdn6{Gj@aR~nueEOYM`wu6(^HUHp+aaB*o25DuZ=TPkdJEMdJF>JC%#kY za|5*MC`bfZbV&bey4c*WT785TIoqf%?&36H5 z?sjR$ezd^Cp0g{ioqTl4bkAjq1F_9QyPu~&+ z5ygW!g878#EPoRPnIxk7jU3VS*GMwN+6~x`>tVY{0`am+hnL(UFFdiSweaA>8|FKA zkuThVE?kxe4<5r#lz57MYY$Hr3#|=4)rXZE%&6ajEP*(#AvI$1iy%gA4 zhMpGxwzYcS=HHC^HV5>#)%~r0rPbu%1hW2LZm&);Ga3P%dEKt|yn$-OY5pI4C&Gp*Qz z+cK{IHflPaN$HgFkli!bfr726OS6V;b&jrjMCjD-^_Bl^|HuFD_HPx?AO1@C8UN2V zD6j(73)GY8HU11N}%wMG)z0`D#Cs;7{UwZ9llbf4Ka1i2K$5^CwyV z@U7qLem|V(w}^k^{o_kA;Qz1!Vb0AeS>bpvTi;ZT^;xGFtzIWnG5hd=bh5ZDUaq3v z+0`vjIig6n)<7fj%(f~qI_#s7J-FeslL3nTOM&~VB5l+%lHwkO?c&+@O8jiS)@{R; z$2|gega4!MH~+`hiiTj?GuuAU)H7mZvUuF;FjNP~`Y#TUyh5p?&Q>NfQEdVK{h4?@ zby?wAL?DCP_u#w~ksMu)Kav6tkXd{v@f-igiiDT*N=*Sfr*^d0pXtlP zHoVw+p>?#c}wWik~;$Bfua zmUJ_GIPRxZ(;8}jbDT3@gNA~j(mlN0ZGGsBnonR@dAy3)hU`5f#+i;3Y1Od{hz>{m zi4SDM?|dLdE`b{hn9iwd_ZhNwIOZ?rrnS2eyLKDxere#*5WGOYuu#9Z5GAT9vuA3o zbgC-lk$*=i@7lIi?#%TA>?78vBT`_uHrES##zZuCM9HdT5B# zWnZS@o#;J8gRQcjwnber>IE}p1?1oSAQSzg3x4NHBnrouRQENqac|UHwsow`USBqTOdF=(E)K z z2s^t+4{EMo6fPw-%sxT!!ZIo}5dG+W=&Xn6!j||DWj;J^j-44@d4+^dO|Mu=8PVZ} zwbjCwpx|<}plwPVY!iK5nlSek^w?Rab(x_(nZ1Y6WBqD-4J*;36BMKi){YHRA;e(5 zF%ko}aVcyRH?ty&4lsScCi!<{=vV#sXZKJ2TL1j|{nQ`)GVEXde(Kl!_iO(9HUIsZ z|Nd9!zdzn{{QZ7oX6m%+uiNtN9_6p|=P&=$uiqd4;Sa0-XMTVD%m4I$!2k67-%QKrE-xibfFic*IJHO%471GxY1WxA-&^aGD<*p`V zrWv%-hyQK@1KuaWZu}7nA3B1~QMaNX+XENK3~k_KSVVpIU0A4UQa6)KgPInS-#pS; znr${AL3U6QExks+qa>=NSX5V-W#rTfbboa7$n@p}jsOw!o05y}`f5@nw!S2C4bGLs zywHv3a{#Ssl!9C!D)z}>`9H?ww+prJ$%xyK&n{bA#*X#m+QGBKU9B^gW`O3xNslvr zQ|8tIxEpF8o3rnVJdM;}FWK3i{kD=PG-Zq8P}&2+QCDA$*3`eEKmGWV`W5qkq6hv9 D1Ij5$ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/SharePurple/images/jbox-button1.png b/apps/static/jbox/Skins/SharePurple/images/jbox-button1.png new file mode 100644 index 0000000000000000000000000000000000000000..7d8a6a4b21406876efb7462317f1d98ba2c83cdb GIT binary patch literal 338 zcmV-Y0j>UtP)@$vin z`{?NC&(F`?+}y^-#?#Z&{r&ym;NZi-6dkG1Tgy;Teq!|TN@q$hN^zs(J=OPZ`DSBcr?&2tR;wsJ}T5%FD z(TJOPh`$?KF%&CNi?t}lOpL``RAMOxq7YND5eqR9BhgoPGRHF`gEB26Bg2!Bm}Dg| ksfkX0J|bW89sUtu0DUGDT{S~8^Z)<=07*qoM6N<$f_p@~vyu7^c@9*vH?Yg?Uz`(%t z^z{Gpnd|H8*Vota@$t&a%K!S+|NZXI&(GZ4+~VTm=;-MB`uhL!mH+p-|Ni*X)6@U- zq5u5i|MV925@rDg03|gR(J#~^Qvd(} M07*qoM6N<$f^USX1^@s6 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/SharePurple/images/jbox-close1.gif b/apps/static/jbox/Skins/SharePurple/images/jbox-close1.gif new file mode 100644 index 0000000000000000000000000000000000000000..a87057e8921fd316e5d6d690138ade8ec67c0f23 GIT binary patch literal 1221 zcmeH`SxggA6oyB^GA=D!hD$Lc$Q%Y2L|aN9iRe~ zpYoG_A1Lt>UXRz~_P9Q{BuN%UNf4q8!;++5l4XwP8J7Lc6QTmcGN2+9qG>u12>3~o zz%ZN5W|4tVj7Fov&`=~235UZx&vP8dvMj?eg98Kop->-92Lr$iib$W&M-ag5al75U zF4qUAvj@k!G0bkWSyA-8+1y3>eSVSvMSY;-U?3Qv$Y1T^-45{3ZnN5~miOi^5Q8E~ zS(4%%2m7~PE|;qZz;PTK8xV@3m6erXO=Ii&fBnk|s74aUL68Yr z7Kg_F1O$&l^VX(sdZNrLfZ5Cnyt-YzI7MCbQAJE^yEtodMPhBKx-Dl3((v$UM`3Hu znr6+uur#UR=Df#G(4AZnoOVQCuiU*MY39<6o!dqVu}e49Wf?D8>XiEW^=DF$bIzkv zFJ$OKn*H`pxZ_ciqsb8NH1#3n3HP@gcxh@`q%EsDsM+&)#`2*l`tBG$Cw0{!?Ji`bQRTQaCEXdxQ_P-whk{!lD4e3lv{$42G7fHjgJfyw zXYChn_UHL_x=+1pP_NtZePL0(ZrXx%Q_a<_?V`6rEKly`tXS#oY{QIR%6tR4{prL@ z?(UN3RO19qIk9Y8ij7EEf10k^o^K?|R%(CbzW!=0zPw`X_0Rg`x{~UKwBwl^K3msh z!Rwk3NTt>xP+nTr!e$g!zbcyfNvB-J;J>*$ro}!MYqYwZ7`4BRyeji6wRS J>gg%anx8VZ7x@4H literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/SharePurple/images/jbox-close2.gif b/apps/static/jbox/Skins/SharePurple/images/jbox-close2.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd2dde9009dfd7adbd272044c03a6f57d1a34701 GIT binary patch literal 791 zcmb7>$xjn;6vwA6O9hlg8U+qOqksl&0we;0tU@)4;6cEIAP}@zV2p4e#zR455lny! z4P20TGDeLd?g}JwQ3*5io2}D!*3MSIC@1uS!=K>i<(=O9=6%0;wHIm%i`vqmcu0XE z8~|O{B}rm~!9c*zFbqi$q|rDa2@*q5fMKel(lj0L`$HiqBuPBaF^tdH<~WuBKoEpL zAi#4RO;MVr8-)X06ogPHq{xaWiX6)U3>A0*+XuyQAS<#ch>9WufGV=g_-JGUp=nCj zG?opb8;GuJ0AQjh5ClO}w5q8XiiPzsO_PQNLEwEfg(3(|k^7Drnj}fhz(}I$IF3^U z0Z`2FY6LQ3$+7|fPLjB)Dh33O1p`5rV_B9nzyV4bQ3+gAMPo^R_LaXod>(Y3w3(M?fQRIm|t2`)+ui792L zi>cnStUiC^ z5E9qUBv)QKQ8j4(IFxcV&ZI$Z>5*@kkGdj&9)|>WMhwp7?N5#Q0 zkm;(Y1-Lt6oRO$0V$5Ao-~Wy@MaHDU-36{G;kxC>!55w7?y40_e0+aKiF1eFK4eWO z*&68JJ%g#0N!GeM<<7^Jp~k1Xzl5*j$u93x&)xR5Q5!r7(LV+)o~)WeFT|&m&!_b) z6-YbJo4o+O$gfl^z8UhrozBT=5HEYU>XC@4#2Zx}`*Pyv@ztofzVvhLORm+Czw_nL F*?;R5w}Aiv literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/SharePurple/images/jbox-content-loading.gif b/apps/static/jbox/Skins/SharePurple/images/jbox-content-loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..77ba9e9cff5df692289c95e5bb7fb56a896afdfc GIT binary patch literal 10810 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/SharePurple/images/jbox-icons-ie6.gif b/apps/static/jbox/Skins/SharePurple/images/jbox-icons-ie6.gif new file mode 100644 index 0000000000000000000000000000000000000000..201b912e0db150b0111539e1ec35b2555b618b60 GIT binary patch literal 2767 zcmeH``8yQ)0>)>tj3vz^Mq`^{DEp8mq3)QmRW3q{W63g>q|Oiz33o=**y0Q!GaWUS ztb<6XEMs3P$=cXMLMj?@bkg^nbN`9^%YA=%pZB--c|Py++MTpDJLdZcf`x2D{t*Cx z*Q8j`qEsZnJZw`gZdWPkP%Z6LtLVX1_GvzPsr~r1PW_O6{g6T9h+)I9VdIF=^Ks*5 z;o;WFBh5n7w&|lCv&VWCEPED?_bi-vwL*TmOn$XOd9`Bw`lHRzXZztVCr39I*yC}E&S#*F8Vt-k8LUBVaE@;pL&xoMa8nmAR zU1vehFQC^83|s+2F<>Yb499_SCV0yNl`1E#rPCJ)T=z+54CR}9{j zfCWBSs053Z;C&5PdJNXO!S)C6A{b0$fhjJSEdaBHV7>w@)_`vd;M?Ng@c%o)|LuQ6 z0JkFsg+S;K{eSBJ`2++3AW$h4duLv<0z#g9sP|Dmg%Lbs|9jF>epe#u;3iV_d`!o&l_EACAOt#T~@4|PzY_-CZe{w-qr>US3O+au$C&-(AUR0^CF-y8T}-- z`#kd%F(mr_Mz~F1=H%%t&yDcF5-zdYzk%bW9QAp+S@@%VbjDO1OiCFOs_L9w*GPj@7Kx0XoZ-H%vb zLEbf@BJ-sp3n1^HO8iTxf)wxTT1A=hMdu_hrrXmIktrk$*C72p5)+e*`moPoZk0UbPk_2mohmb zjkCT?lZ74?hs*4zdT=3rnL;{54o!l}D5QG?qbc8gOBAnC6Z92H!I!>aF)t=SM?5n`^^jZa*G8`Qu)UjbiHlhe((WloK5MdG zE<`hE1D`$65qIY6Vaag)I|kPlc#?`CQ_)6p6!P>o3vYK2=6Cyy>Fj=kvvgCxu$xBMLRMp`A)$VdO?R8B?~SnSI*^(E z4MWLeJ6E6Z`$|-h6`&|O{iN&R%w*Z38b7<<(*-UWnA*0Ac*0FRg|9l!Sw#n~m=);l ztMR6k%A;0CJ1-`DJsW!grt_Owkzb%OE5~m?$Ax5n@q}ykR2c)!Ak^um7<)F2j2UX_ zkQw%a=c%Rg2V%3W{&inOjEl}z_3m<5sJny3k2r%LQGl_TE&6TlHk;UoXPSo{Cd)vi zb|U%=y2`4rzZNNAR+$nPZyDV{Jt;)@xH&C&X2o?{ylqpHcG>IN_K;d$KQBd=<@;21G!7nH*R7wMBz@IVr^^KK|TOJ0Y)=Rgz`cSr` ze8M?VA?=W|yc=rOP0XrojmiiR=KessWpZxg4&@57HHg}hbF%)hRQ=cU(qd{OUw4)mknu&INkJp&Z!IKhVsUCoQbC z3TD*kU{E2&bMGaVYw45nOLES-3@iLuAFqVa9_z`AqpS7w-qEW1{s&*o#l%B41iBdy z`K$MjHrvHz-H;-e73JA-{mXIO5ivONNT(CsWB|2FW#W!AoLS$$+^e-XC+4(D#v~yF z;6Co3i*#HQ6KJvd*WUdk;!hUiAaHHcycB`wp+7W4iN$M9ISh7LtiC}Swfo`T7kk@s zYit4wyb&CP7?SRs@~PgxYV$%7dGMW}Wc3q@jE0`(>4^@$ zFn*4>vqwANBW9bthYR5PIPDzU@Uzkl7*b?im*IbQWxFI#3+jlE=vQcPQWdnmjEdB!W$Aymo literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/SharePurple/images/jbox-icons.png b/apps/static/jbox/Skins/SharePurple/images/jbox-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..c35abcffc91f6cc505418870b6b0d8bf5a712cf6 GIT binary patch literal 6588 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
    2. gTCn<{Nls)_0O<$R-M zF5gAOuTD)}c{2w@IoNBbfR=@?_|ZCg{}Haf3j^QJA=y1S^4d4mHX?p7m+!*=esMg- znAh{DdTe^h5KpFF{qLMBhQMMHD>MuBzjH1_uOAxbu~^F4xwDJ4YoB24+9zmlKU&bd zD_3r1&z|4X+`L~Gk2oDaxmmzjFW|)I^XW<*BuQdoVuGHY9(sCun3$Nznt{ldN~lkf z69H%abo}JztU|Ni%}ADdM5{Wlnro00n}Xw2Wpq8D_P8HB184UyKuDH)X1&Gn7>Rq1s>V%)XYWE!tb=Dd{$84124bqHSHNj{y=RywWy(}EH}A_b zamu_FOWFLn_Vyz=O`ORiM&lXn4Fwc-^LImDv!5j zn={Z#JfyzSx^^~CEsEMxU42(Q{_wBrzX;Iw8m!utdBIh#ypg-AYiHHA;vu!|qIeAS zymenMTtx$Y zF04RNl$>wavfg|M0u2ofEL*lL{k~tj#-&S_&{|tDGcz+^Ce?OEda#y61Oy2sIH<{! zHVe@98r1GdyT8C0y8mt~;oPZ_+J>aQ6;l`CED=whv>`LRufn;5x_L77Dn9i69ka8u z1@+S6@%ww}=xFD`2an@$EX-bcJYVLkU;Q;DCDm9guC!~;pZ`9mPyd519ua5|uo4c3 zb%~QmByhXkw77njcDUVcUFnA)2x?ncL0yrQ84anm1cuD==PzWMR|dv-vt=to|6P!W z$b>q0DuyR>FqYH2FBLHFa<|^Xld?s8=#diZ!sNUOIT9(EuGC?O7(yG;gl7p%9PA?GP>h zlzndK2l~u=y)y}^sNJ326X(l$y|1LD4Sy;TjRyGWqyNm4T3+JHl`g||ioiHTb@`!$SHH@$0|d>{QnxTrZF3QMmUtjht79d9`>9>Xo*T zNR1wu$)(dvCr@+pezt6RG3RFv$7=TM>CHO_oR7x@3@JqFY&M&^w!ivmFeXXQfqYulYX9a2fDD&#! zS*(}dsj$Apj>T^*H(tATP1m)hrKOsB>EUT^-cNh`k&Lu6iYQtZ%^8=mb7xmF)#%m5 zBgW*=`PAUS;c(pW-q+!9%$p$9cE+^Td6J`W!P%&e3vvvFa!L@Z#8 z=k&v>DKn!;^XlO#Mz6lN&hXyPE7tgP3J^!_1I&rN4Os zKK$o0B3A($LPT%Cp$Ksp#)NN>|r`v~t0qmtfGV$s@YWj}64+&j&`EafF_R!;4-(p zJ|_>1DMWC)-B>J^B{#3dVo5$d5$5E9F_*dR_56wQn%4=9jG@S|Y$Moo^)%~PSO>gJ zv$V~v)~(3u=1Rw!>*q$hiet?5q7WbSIvt(O*0fB#WB zI@;;zXwTWJro!*<<=C+ey!F;svdo*0M+8W2eLoUU%wf0I(Ae0xq^X1`iZnJhVz<^1 zPs{-vDY)HU-D-Y>L{!}~*6_HVRKk%q3!(K@-SD_tcOnXKq~P{;BRuC08lU4e$g|4& zR2K;IdbNJ#3q~cGEA*kOWwjx_^ziuoy;-Kr6}b#vh(}y_inbmW1ff&HMY*#9kH?eO z#JSEFDx2CDC*eX6gie=v>tW5m#9n(CsiYILL)|mx*_+=qq7^bohym z9l`e6rR6bd-XeI?_407nmp+%bY`*o|`OI64UPgF~gcgtCO`VFOP*zrk-EL27C=?1Y zH8qtsZ+kN~brzZ{&id>oZ0a;Lmww%wI={UwoVc(^FE8E4f0;KAPHn;+9lgxO)4$Ii zAZ=K4U3wYe(KUe7!6O|ybZF6ta@){c;y2@S@zExWxN4QvYR6S>ng1b*lsKVKh+r_7 zc7(&>`CeF(B$h8WbP-=SHutlv+;P)*(t6z`;8FGZ?IOKOsJ^2L zbET8X;q=va(<2j%^nJ`o-^WZ{N}ud1yR(j(&o*ASUPgEdg%O@lf7s+U;JF-me%p-v z{wL^%O>Q2~r#~%qoA3l;KW`k1{QE&rJ`sA|ES^t)-0wEyxg2>ush9GJ(CbF?2%rAE u>g~zni@lQ6YfMA0>g3OvK6Xp;{Qm&Ty9t1djtSKO0000xzjCnw7}dhwiK1A!Wph)@ebg|ey;AVAn<6;O#$zzt*(2m)aVNsu*! zHJ~Jr7~+D63uv_nQVhc|Hpi&dj^J-=`QDGS%5&qAR3oUwa;-~*P8_D!A?!<5jTxq>8C4KA3NUGYth6$ zcQ%t%>z5%rlpgEuS7=v+56jLsP%g{)U*Vh0_#+`cNv=>+AvZR`Zop&8^B*B$tr=yH zfcbd-P_muNGmnge~b}X0KL?WB2ATo>VD@P!ot5kJ4xxn@lm${1uZH zCK);fIndv)3@_=C<9--*osmP>nePrp!KN&N5IR7E3Rmo6OQ=<}Jr&%fJaz#nb1!nI zl*Xy!B+0co8Wpz-qULs~yN-5CI?gr39cDLPV0_6vQ_Ik4L(7D%*huoV%c`qQyM=>T zido||a&A@ojj`l|!rRGm?t{|Vs9|+?(H!u+|7mLoDJDJ_4yvi`H$_UOZ3 zoOhl!9knDZB>#m$zKw%H{$mHOqaZ=Ns$La7a#|6wrb4kRurzPzraKdln{=EGqFtV* zvL{V##HLhcVBgYCe?r--z2b2n-N-iD8HkvMX(Fje5wv9|jYTfr(nB2m!GZv1p>8-q zC?w>wOJf)ms%#S*+>vdO3+;9%wX!HjLOMERb(C7Iuv4EWKXF`tuuI>0u0zf0H*dK} zyX4!QQsFSDU`u5piT3)Jv1gQc%aHTcobs>a6%^r-Ya3;l?5_KRW56uXGIHhN_fLTC z%Zz8vuOG*{cUR0~*ED43HXc^o8s&;SgZYeaB zGmeuZq+9bxS5*VzyIW>wb9rr58E3I)t#j*Bw(3|_w_oi0)#E-kJ2kfd-nt#*p9c+g zF6{n~66dF$PBr9AkPy8lKmlxNy^0Vs}v7AK9xt*&7R&mQE z@^=9}pAPsYpQwSsM2ryzg;s7$W0?<@*?akh#&3^YG`na+#AGHR+CB{?aaV?9dJ_}3 znrA?{7JIy{gPNLgq_u57r95+cQ=0}+shhP3zg@kirNC)Fg1PV}=llGh=>o-*5fd60gMzkN?ew0toLi6u|NT7PGCPhNjZ`gl*Q>oW#Dx zUIq%}<^TLV_N12jHo3TA_meQyK~X8@IFp54M%Tr@^QV;j32L9$NNmy{A5WkbchUD^T3QB%OpwnZkGrA`%as)9Jk(>25h7g7o7= zT~An%U=?}?pj=0Kc+uD$6dOa}@*uBi9KH@p{m;x{(3CXD<26RQ-pRHHpbWz`QsM+^dIQ0T!y__eVi0(MlZJbF z;KW1h3D!3({Q-UU_}jVR9PU3A&m*I(Mh|p#Aa%tMJwTiGkRaOe*!X zH)J2=ivlK1gQbuV$Z+iX~pWSO3Ha`#MYe6uG#b{IF`9^ zC;lZtFc^V|pf$BJp(C}n5v@~HRyUO&;fP%+;0F*0Li`8<*6TljAoU`o^9&yYhb}$r z1dxZ#;%MY$9*|zs2g4fhE)bow(&iRydiPs@7b)r1abRX+Du;NBgwIE8;640$?jA1q zj`5QAQ^LC|USFsNfZ}#1GJW!x_kuxq@;{k?jD9UL`B((TZ1UQrM18L!`F0;(qD&lU z+{KK zmDJtM$r2R+=le)9GoR$%-6y+AP5=eG1bm>dwY#ST1f4?N?IX$e!B{_E`Hag3ENGBL zo#9^pW{xwn`wehF$GHD`y#g4G?Zhg~{!>)H;}AyrpvkFwD% zs)1uq1wm226P-c6IMh^NdkM21B9@y4r7r8kE?gvv_DziNm&FW%u2@0BXHmA}drf|X wOnF_t$J?wLNI^*=boH@pv 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/SharePurple/images/jbox-loading3.gif b/apps/static/jbox/Skins/SharePurple/images/jbox-loading3.gif new file mode 100644 index 0000000000000000000000000000000000000000..294d05449fc0718bdeba7d4016645d5543dcca20 GIT binary patch literal 8778 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/SharePurple/images/jbox-title-icon.gif b/apps/static/jbox/Skins/SharePurple/images/jbox-title-icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..b9c772fb5dd615a76731d4c119ff9fe5ea34ea5e GIT binary patch literal 73 zcmZ?wbhEHbBe?# S{fN*C-Grs4uTF_ESOWmk-xUJ@ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/SharePurple/jbox.css b/apps/static/jbox/Skins/SharePurple/jbox.css new file mode 100644 index 000000000..f76a3a70b --- /dev/null +++ b/apps/static/jbox/Skins/SharePurple/jbox.css @@ -0,0 +1,43 @@ +@charset "utf-8"; +/* + ʾCSS ʽֻ޸ɫԣͼƬĵַͼƬСҪĬϵһ£border:dotted solid double dashed +*/ +*:focus {outline: none;} +/* fade */ +.jbox-fade{background-color:#000000;} +/* drag */ +.jbox-drag{border:1px dashed #511B55;} +/* jbox */ +div.jbox {padding:0px;border:none;font-size:12px;} +/* border */ +div.jbox .jbox-border{background: none repeat scroll 0 0 #000000;filter:alpha(opacity=20);-moz-opacity:0.2;opacity:0.2;} +/* container */ +div.jbox .jbox-container{background-color:#ffffff;border:1px solid #999999;} +/* title-panel */ +div.jbox .jbox-title-panel{background:#511B55;border-bottom:1px solid #CCCCCC;} +div.jbox .jbox-title{font-weight:bold;color:#ffffff;} +div.jbox .jbox-title-icon{background:url(images/jbox-title-icon.gif) no-repeat scroll 3px 5px transparent;} +div.jbox .jbox-close,div.jbox .jbox-close-hover{background:url(images/jbox-close1.gif) no-repeat scroll 0px 0px transparent;} +div.jbox .jbox-close-hover{background-position:-16px 0;} +/* content */ +div.jbox .jbox-content{min-height:24px;line-height:18px;color:#444444;} +div.jbox .jbox-content-loading{background-color:#E6E6E6;} +div.jbox .jbox-content-loading-image{background:url(images/jbox-content-loading.gif) no-repeat bottom center;} +/* button-panel */ +div.jbox .jbox-button-panel{border-top:1px solid #CCCCCC;background-color: #EEEEEE;} +div.jbox .jbox-bottom-text{text-indent:10px;color:#444444;} +div.jbox .jbox-button{background:url(images/jbox-button2.png) repeat-x transparent;border:#AAAAAA 1px solid;color:#888888;border-radius:3px 3px 3px 3px;margin:1px 7px 0px 0px;height:22px;cursor:default;} +div.jbox .jbox-button-hover{background-position:0px -20px;color:#666666;} +div.jbox .jbox-button-active{background-position:0px -40px;} +div.jbox-warning .jbox .jbox-button-panel{background-color: #FFFFFF;} +/* tip-color */ +div.jbox .jbox-tip-color{background-color:#511B55;border-color:#511B55;border-radius:3px 3px 3px 3px;color:#ffffff;} +/* icons */ +div.jbox span.jbox-icon{background:url(images/jbox-icons.png) no-repeat scroll 0 0 transparent;_background:url(images/jbox-icons-ie6.gif) no-repeat scroll 0 0 transparent;} +div.jbox span.jbox-icon-info {background-position:0 0;} +div.jbox span.jbox-icon-question {background-position:-36px 0;} +div.jbox span.jbox-icon-success {background-position:-72px 0;} +div.jbox span.jbox-icon-warning {background-position:-108px 0;} +div.jbox span.jbox-icon-error {background-position:-144px 0;} +div.jbox span.jbox-icon-none {display: none; overflow:hidden;} +div.jbox span.jbox-icon-loading {background:url(images/jbox-loading1.gif) no-repeat scroll 0 0 transparent;} \ No newline at end of file diff --git a/apps/static/jbox/Skins/ShareRed/Desktop.ini b/apps/static/jbox/Skins/ShareRed/Desktop.ini new file mode 100644 index 000000000..09485b11b --- /dev/null +++ b/apps/static/jbox/Skins/ShareRed/Desktop.ini @@ -0,0 +1,3 @@ +[.ShellClassInfo] +IconFile=%SystemRoot%\system32\SHELL32.dll +IconIndex=161 diff --git a/apps/static/jbox/Skins/ShareRed/images/Thumbs.db b/apps/static/jbox/Skins/ShareRed/images/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..37d2c8e06c99e32ff48c54ba42aaf5a9f6c2ff34 GIT binary patch literal 19456 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 z z2s^t+4{EMo6fPw-%sxT!!ZIo}5dG+W=&Xn6!j||DWj;J^j-44@d4+^dO|Mu=8PVZ} zwbjCwpx|<}plwPVY!iK5nlSek^w?Rab(x_(nZ1Y6WBqD-4J*;36BMKi){YHRA;e(5 zF%ko}aVcyRH?ty&4lsScCi!<{=vV#sXZKJ2TL1j|{nQ`)GVEXde(Kl!_iO(9HUIsZ z|Nd9!zdzn{{QZ7oX6m%+uiNtN9_6p|=P&=$uiqd4;Sa0-XMTVD%m4I$!2k67-%QKrE-xibfFic*IJHO%471GxY1WxA-&^aGD<*p`V zrWv%-hyQK@1KuaWZu}7nA3B1~QMaNX+XENK3~k_KSVVpIU0A4UQa6)KgPInS-#pS; znr${AL3U6QExks+qa>=NSX5V-W#rTfbboa7$n@p}jsOw!o05y}`f5@nw!S2C4bGLs zywHv3a{#Ssl!9C!D)z}>`9H?ww+prJ$%xyK&n{bA#*X#m+QGBKU9B^gW`O3xNslvr zQ|8tIxEpF8o3rnVJdM;}FWK3i{kD=PG-Zq8P}&2+QCDA$*3`eEKmGWV`W5qkq6hv9 D1Ij5$ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareRed/images/jbox-button1.png b/apps/static/jbox/Skins/ShareRed/images/jbox-button1.png new file mode 100644 index 0000000000000000000000000000000000000000..7d8a6a4b21406876efb7462317f1d98ba2c83cdb GIT binary patch literal 338 zcmV-Y0j>UtP)@$vin z`{?NC&(F`?+}y^-#?#Z&{r&ym;NZi-6dkG1Tgy;Teq!|TN@q$hN^zs(J=OPZ`DSBcr?&2tR;wsJ}T5%FD z(TJOPh`$?KF%&CNi?t}lOpL``RAMOxq7YND5eqR9BhgoPGRHF`gEB26Bg2!Bm}Dg| ksfkX0J|bW89sUtu0DUGDT{S~8^Z)<=07*qoM6N<$f_p@~vyu7^c@9*vH?Yg?Uz`(%t z^z{Gpnd|H8*Vota@$t&a%K!S+|NZXI&(GZ4+~VTm=;-MB`uhL!mH+p-|Ni*X)6@U- zq5u5i|MV925@rDg03|gR(J#~^Qvd(} M07*qoM6N<$f^USX1^@s6 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareRed/images/jbox-close1.gif b/apps/static/jbox/Skins/ShareRed/images/jbox-close1.gif new file mode 100644 index 0000000000000000000000000000000000000000..a87057e8921fd316e5d6d690138ade8ec67c0f23 GIT binary patch literal 1221 zcmeH`SxggA6oyB^GA=D!hD$Lc$Q%Y2L|aN9iRe~ zpYoG_A1Lt>UXRz~_P9Q{BuN%UNf4q8!;++5l4XwP8J7Lc6QTmcGN2+9qG>u12>3~o zz%ZN5W|4tVj7Fov&`=~235UZx&vP8dvMj?eg98Kop->-92Lr$iib$W&M-ag5al75U zF4qUAvj@k!G0bkWSyA-8+1y3>eSVSvMSY;-U?3Qv$Y1T^-45{3ZnN5~miOi^5Q8E~ zS(4%%2m7~PE|;qZz;PTK8xV@3m6erXO=Ii&fBnk|s74aUL68Yr z7Kg_F1O$&l^VX(sdZNrLfZ5Cnyt-YzI7MCbQAJE^yEtodMPhBKx-Dl3((v$UM`3Hu znr6+uur#UR=Df#G(4AZnoOVQCuiU*MY39<6o!dqVu}e49Wf?D8>XiEW^=DF$bIzkv zFJ$OKn*H`pxZ_ciqsb8NH1#3n3HP@gcxh@`q%EsDsM+&)#`2*l`tBG$Cw0{!?Ji`bQRTQaCEXdxQ_P-whk{!lD4e3lv{$42G7fHjgJfyw zXYChn_UHL_x=+1pP_NtZePL0(ZrXx%Q_a<_?V`6rEKly`tXS#oY{QIR%6tR4{prL@ z?(UN3RO19qIk9Y8ij7EEf10k^o^K?|R%(CbzW!=0zPw`X_0Rg`x{~UKwBwl^K3msh z!Rwk3NTt>xP+nTr!e$g!zbcyfNvB-J;J>*$ro}!MYqYwZ7`4BRyeji6wRS J>gg%anx8VZ7x@4H literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareRed/images/jbox-close2.gif b/apps/static/jbox/Skins/ShareRed/images/jbox-close2.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd2dde9009dfd7adbd272044c03a6f57d1a34701 GIT binary patch literal 791 zcmb7>$xjn;6vwA6O9hlg8U+qOqksl&0we;0tU@)4;6cEIAP}@zV2p4e#zR455lny! z4P20TGDeLd?g}JwQ3*5io2}D!*3MSIC@1uS!=K>i<(=O9=6%0;wHIm%i`vqmcu0XE z8~|O{B}rm~!9c*zFbqi$q|rDa2@*q5fMKel(lj0L`$HiqBuPBaF^tdH<~WuBKoEpL zAi#4RO;MVr8-)X06ogPHq{xaWiX6)U3>A0*+XuyQAS<#ch>9WufGV=g_-JGUp=nCj zG?opb8;GuJ0AQjh5ClO}w5q8XiiPzsO_PQNLEwEfg(3(|k^7Drnj}fhz(}I$IF3^U z0Z`2FY6LQ3$+7|fPLjB)Dh33O1p`5rV_B9nzyV4bQ3+gAMPo^R_LaXod>(Y3w3(M?fQRIm|t2`)+ui792L zi>cnStUiC^ z5E9qUBv)QKQ8j4(IFxcV&ZI$Z>5*@kkGdj&9)|>WMhwp7?N5#Q0 zkm;(Y1-Lt6oRO$0V$5Ao-~Wy@MaHDU-36{G;kxC>!55w7?y40_e0+aKiF1eFK4eWO z*&68JJ%g#0N!GeM<<7^Jp~k1Xzl5*j$u93x&)xR5Q5!r7(LV+)o~)WeFT|&m&!_b) z6-YbJo4o+O$gfl^z8UhrozBT=5HEYU>XC@4#2Zx}`*Pyv@ztofzVvhLORm+Czw_nL F*?;R5w}Aiv literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareRed/images/jbox-content-loading.gif b/apps/static/jbox/Skins/ShareRed/images/jbox-content-loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..71429da580702b6c8e7b1d8b918044973ff8b181 GIT binary patch literal 10810 zcmb`NXHb)C!>yB$1QJksCBsBE2e76$3~W z5b2%JtAN-5m3?sU_x;W{=kM8>$xQxalF2;xm20i_Xlmb9xokcS;0AmF0RH;>5qn2H z+uZP(gJpuAW{Up3aCK#}qEwW|Rq7>K;#sjknNxmJ$W(*-aXPnr#Q5;1xWjHJxeJ_d z<6{lEdfpWQi@bH2cKMu_5GUoLbhPHR4AaLhJj{8Rr^Prs(E~6H4gdf|j|6YITARCD zTZwqtx!a1E+neJZvF281?VN3}0MWl#bu}J6yrr(Ep?Fq-33&Vlx#K6`_m>1fjzmNv zt?V*wODY^Un{jgQ-JRy}6+3=Af6=pXT3{9^CEvB%@k-V}k^7x;qss9z&np}?Uu?e}4Y@eRq9x zEQ(l2V1o5r#h(*ZCj&UQeY*xS+eo|+-M9P$3%3IWKKq;SSI=wFgpRmPD8WR+72r0@ zq@hM!0s+G9y3wl;m+)R+#cO5jfV*fQXEk(I^$KzA{WHysLyF9!lD_Q6ao5`$he|#a z85O#YtS8t%Ns?tj835E*<&AI;4U_MVwURt>nC|kc-<{1~^X`9ZPxCtW^iAN2F%1)y zDs+d7&?!ljVU=l54bM!I_&!5kdx7mR#^ynUlsbs_@Qbxh0$2KEjm+cL zJLT8%6d}HxKwyaQB{`AHIr3Q+?fK>$RoUgHbzI@=35nU;6gIDeH6_W2?YSlaF#GLn zx&njl%_pYdSMRjY<%|4Lu4=xFhWIJp&`oE!&G#knVhVolSK7Z8JR|l^&hXn)7R(b4 zT-CR2Fc`^UOGBJcC&3Z1Qdo!deOz-_g6z|1wf)@%{#@BCH1Y8BD*XDLtW3K1r^UsT zB(Ia#{J(#FJ9QVk`K!s~ zEnL&aN?5m+kcx<(Fc0&ekjO~Cc{)y#ShH+9o#tmzd&(5I(C{?FNuIAT+kLxXCRfq3 zC^4f)z-I;;IV(-{E<8vgB%L8h+qkmPHIqTI(n%J@H%T_>o`RlwGGX6~OBQ^|kjvSS zQb86Ye3fT3%0o`@^Pi!j&wVn?I#0_w*u{RFbf_3Oy8L4c({TswKz(tRS_1Am`J?y` z^XqG3HJyH1%Mk^aF9XA`D{9Zj?@X#JU<9?)o>5`wsk&+v>5r9s=S zM>g%CFi>V_qrlg-;Kyp8&=)qOr6RYjdj+MW!M*R^4Z(}U1ZU-zAs>zMVi0FJ0D7A{ ze)7}#!&dE?@$mAC1-Y2T(w#}pqp@?fTqwZzCN{L(7foDT$@gM=ZrkbciEqDz=jSKn z_osc89uem)hRXNx-m6CQQ(^Cy!^X56=MPqevxCnbuH`@cput&GSaG;fR=0h)S=D*= z$5zc)z)hBa4;R7Ac6gRcwqFQ~IR43x>Z13a)}6rDsm7>%=0-W<$xtSCq`w^jhb2?} zLukZ^aNihv6xKPCJlMKf*>K8j%m3WS$4$AG~fIzhj=HH@JaOXU#9~K z!Vm8fgdZaVgmH(kvkVWzS^5T|`-VnF`jD8Z!PyZQ)ONtudU=@P?!PrVwmL~eE`4TM z4YfO1-dSU8>PKePU)+P|vhqb_E0e!32t?}vTL1_!ROJjBtU73)1N2e*7p(iawHB3}l2g~3N~Aan(zmc% z!(~Z^R205yWvD_FL*Vd&099cM_vr;dbvHL&IW6{A_sJg3u-v;@*Ui;Io9|5>>J*56 z-;X~C+25Su`*m}mj`>?=b1EoqukVRhq`&IdouBPvv!*+rJhB44438K>ehJl`Gp4MH z_3WhfVw?$(Lk}(N7-5P@27#tW)V-^ms&w#Ol<^iCDTQTDiQh50CG>Se(X66~u9{_- z)Pp>o$cwR<7WCNk_!#tbtV({wxt@B`YEXq!7ViL2ss=2aS{M5Cyh=Qk&P9+~gR*tirP}No2CtHzi~20* zQn&5qtf#dx527~Zqn~i=5U>);=Dt6zxDSDCS@o!P3Rj33ag=$CQ9K=(u}9ENJ9EkNVVf^*SjZAvj+lJd9b?&5@8op^(V|BpPNdbUeMRh3{koL1KXwKT&oj)M%h=v$sjkK@otZ6 zTG8=)ssccXL);b!Wkxp|ds9L3U#_PP9=Ht@`oj&L-POD-mB$7Cl?x3NkjeP)t6;yz z+xSAcaIxM~BZJoHX2X{~#gg**nL2gUn$bUB-1W@oD+hFFa@*Dex;gF}$S@JSx=X>% z(5;!aUp7g2Qj4Onyhe!f-Tm`z!rLolFjYtVh<4OnzROKrgzF6N*eStA5)wcAOgjy$ z+&B}N)vOZPqra;{dGAMji=Z=~`?>p;53BlHM1Jn|D)0RKJfL~**O%cZ*k51&RS^ls zDD3ip)7%fcT=-GA{p{=t_DSlisq^>qxd|{7$~(y0-y^`uH^`428DLMsyI`5vV?4vC zP=BJmmvee1F@On&&CQ64&MHh#Oiqc$`}ic46KdjdC~J0%oT(QU0`EKq%Q0DOLyo~R z!~!4c3yik=Fg(*|8xS)+GX_Pz4_sUtkDVGE9%b2@-=6sdTbZ4*@mNwHFY-Za=n z=if_K#9S{LcwPujSG1cnf$>O?Q+Z87jg1%WDTqxVfM*AGgW-3O~Ht ziP;zT?=zZ_2Wy_i%5??Jelv@QANjJpNA5Ard2nwX72L$G{vk34#&_59Ly~nuiGFCg~`OnbAC!xXWQsrp2QGgOV(&R0XONM zI2-Q|AvL|}?;I5h{19F13yQGmkmQu2;*>%#WbgY*VAs0giBz1$8BEl3fr1sV&*8XK zN(k3RZqAX!{wNctyR<1YTl)CKMOBY%`;dA0LOvI{V*B}$XZlIGTF;HtWa9)+XU~=> z+OL*GjO0(M=S>M+7_X$8tvM+62$LON>D$Z~>EMJ4tSqpl%Ka2W*Wo~2{cSbkE9t3;-f*&dr(sGRB&6gE)F?GZg$ z4QA#Mc3c!~l_3^Q90;n6E1xqnTfF;07jZdYoLI4?lqY87#JD80%f0ep{bRjVwB?aJ z^xT6N>KlPD28319QS@)J{QT7QNO!O*3B;b}EKw^meUcY!_`l1R3b zssX#>;ztBeFE4LbdsqOB2}=&A1_y-Ue4u{rf!1V70(+oCC@PiWN}$EWrTRS!Nr~`^ zvLiT$`gs{P;aP^m^zP`~WXPALxuorNmhYMCVPnDl_3nKfq8kqhZA73Pi`;2X(H5rT zkYjJ6#~@ImL?ldx>#O4^V5y@UMviKVVq}o$!%(YSKnf?ao-nzxM7#3QK(MR%{|ei6$_fr2=FAD4-sTPSrnsh`El zCvHvE2QSH+m~vnedlGD zG_i^>)RiwQ&x6i&n%!^dgbmCoo-^zF^63qC{m$33qLF5Re+i?@=r6jr)quct@M$vH)#z&B5jB5Jc_Z$E+#oarIDO~V| zZ3+en^p=3}Lfb5iirHdvU^ql6a$U+P0bK2O+}HOXt!hQn9U&FFq>`mq`NxP~Uw!;XNymb(1ffo~#vHo+u_4QvWJPB9A$8 z^=(ju&uh`Ev$%ed*Sh1EvE*BSt*CAh?5&^_U#uGv77_|0`}sg=A#oA-Xi5ybM|fh8 zA5&^tLbBhM3JuIVR z136)^?y=d4;<%aF(SiBm;icsdVfNkdje#bQ;oYU_oFe4-foN~kckUgCBh(1l35AD|2PWsZ%2_T!H@Up0PEJyISdu^C zy7(^nG%&=``}4A9s`y>RHP|DGyGc6M+xaPU$^JZT4WnPu9;*Z8f8LUuJRs2jK=Yq3 z;;llHrs}x2irVOi?Wu%suSQ-Xm5KD%xC>n`3$qo_^{$*eW(ABY;}#g>JbA2MelB5j z@A?ZA{|n`|bk4g5iH5hVn_VQ%TylE<3EWarXQ8%3+v6 zfxq(SW{;e%2wDz(-RC*=L;j0Hql9=?ReIISb*%4=a}_O9F2iH2##e7lW6g$|22_)*SI`_8j(~R4)=WbDJ)FXhe`ne*TzV;t|jnl%7A$TR7qEy`i1%6E-iU9+pWG zG_0CPIkYQEiAc@Dc3ethycj8%{F;7_&#kj z(zrHF-Q)J9dZH1mDmt4+ksMpYG@jR6$>K)i2<_p;IvIZQclE~! z756x5>=0a`Zi#uFfk=D7)Zs^ZE|iO&a_yCu8F*un#Z0C&s4;gN~rlIhFy>?Df^P?og-Y zk5kT}BcGvRMc-Ek4!^B5tEY)a%+=vG$G^Iv3kg8jar>%Zy>(L<2K!$?;YneTI*vmR zFhbnURqW0&P|zkJpO)Sw^K+N=jx!{BEw5lww+{Bi?q$gPcd*@g(5jbp>RjX!?D2}O zDmyLLN>609r%;&{HINcacngHeSr~-E}@dNK&BX`njXs&1Fw*tYR&7mv&~*5nF` z1Dvbw7c2jL3y2^W_vkz27DWh)_=V9;72~Bo*8}0(;f6rl2GRvhT|b}7{*m$HgcXr< z69Th&!ogpqo^RpKyI_>8FiooU$!UG;pE z$*=n9Gk3Cbo4#3t+4>vNw7|KallCVjm!0b}4Lv-+FBsOQS~V1_9se?qjsO$ZAfApf z(?Vg327zj&m^RW7xi?hxpCf+BtnY0#%7cYbrlu^ zqy~+EIY8YylZpv~lw~ESnV4gVP}yWjb<^pzt&s9mX4#USBcEWp-`isQ6w}U3OiNkl zFR2X}vu99?DG0E>WO=RxIT>vxX|vQcra=`AuN%}dixFUJnxS6WPRncjt9E>YUR&Xi z6?}QJr!@N6%$P#h)*V_Et_?0Z{~ElB+_sd7bZ7-|vEbAo_+{g@=9KeL(}FyWCO|=} zwGV*GBx&T9&sF9r5rBEHIz@e_VbaoGk%hK>4lksrRTP#+hFg7kdSrl zmwjX7{I&1g{C#FDE@&RJg#R&)4m_v%HS0IzaLx|7LX(L~3IQ;83;~8>;M@lx@CTzJ?dy-hVq0eQE!iClXIWq5SLv ziC!chs-@jY4;U#NM-7OM4aeIATL#2>Q=(Hs$-cn>&{Xe;lB`nCurS}MY<4UN#%}$a zAuuTV<9|!AV85w11ZS-az9vf+mcRKcxi3F#mvDP@}MfTabffw(0 zb~hK|*GIpHkq$p?fsStN>P)2(ec=4jzZ(;CF6w-Y+MlhzHynGDU4~janCIMay!oWA z0TVfrpuN@N0x`u&$woSMpO2$ZNv#ly{cpdbGqARWG&VF{Km_Y z^N)%|ayH>0W>4(^2d7&QR&D}oCzKu7PDdcb&zzn2+I`uR@V$Xcw}l+@5<2IgT_e_${#>r#L?{*3`=aK3wggd3X*Dw+RmdGMMgHC$+yWKI z))KtHDTB+!BUJd&q`IAN39!Al=>RZn3TWs ze-cq3by1oJ%J{G*iXG#!akdxpsU2^eIw&%1P}*CwEZ!Ksn-lcxW3qmjV~nw!;jS(K z2P%(QGi-@&VX66_f1ubW+OXr0&Exw%;_hHhP#O zXq#nkR{Yg)O8wB)(ki9fHQ~u~8=G6Q1mc69=fZj!r5{O!rsI_lPFR7M^>&53dXqb< z=iH>Fa9vzqX6$inj<|XT7snB{Ladh0`&|UHRz+eAyI?xx#yATKy%1Y!jgOf~sIZy6 zmbRgsp9h-F1iYy^=1KkPKU(seC;wBO{EwFW%RJHBWkcE4w9HF8&hCnJp1*$;8bt}n zVhndeiFl+h#XpcpVyA`&SbBPe!KiTo#OUM1!$eEM`%#dQ(a@A27{-C%P~ey75c14B zE-11()WrwFWc4>rKwRu6Q?bWDVG-=>Lqc9k_>NM<`d3Yq-o~*&ag}iwaM++6sh?pCdow%-?m%1)b*w3_)rwZZY(g z{`a)0SJ+h}4KNv=vA{PSj3Ho2KcKOU1L`^6SC_oK_75Z z8j(f(U%?GrTO?idLHRT*uZ$K)6NyfQc=48&Dzx1Ew19a2`rU2SN(d_}m)w1|Y5eTk zQ0Xb<$PDM#E1h$<&;1hG{k+}Et2Gc{>a)@azgXtQHsk+uFEXz(66M|OQ9s^3#s~U* zS-Axt`|0;4%w<~zg!WGdtAiq6CjuPaRn@BFeG(8)t&oCep8WB1M9CZ)89|#@lnTX* zhV=cxa~dt?(-{szda7AkoZ3@bH0M){Gq*t=VN9T^tws8vGtDE!NG*#s%b-64iU=fW zh2-GaQ5HJE8-cD72%M<@`V@V_24R`9a*q&m!D?_N-38k!AYg`}rr1!@Q|zYQoEtG1 zOyEYt1i|&RSGtzMB{CstN`8`|cr)<;mHpljjJamxgGh@OL?4r-+aRBAwefg&DGoc* zDVSTbvH#R-smcpgzH>f_uavDmI0D40$HG_HyvMs$apjwgiA`^L;|91V6%nJ+f5i2p z#A5jI533q?`CFzg{laUqWmDxnPET_))d0d==m9?3J>kS;FToDv74@s(6u z-|gH#n^pm%|CSVpY_x6Z`{SM1yO+_O(_iTtdZF~nxnAjl&UF)DNVtIKI#`XhOD=!Z z)TqYh)4@-v;R`P=eN8H_74+~yy89GEEZJG4T?reGWB$s)AHSi$EB%&~532G(w;SQ7 zOd$($&MgiWf2aq5=V(rlU?xOH)0t8)0Oa<`%$?bY`}B=Pv-|Jr>9;$+8sWNPAD&fN zt?W_0yx{O>kI4!l_j)!s?uNYC!qPRyyP4zh_`h|@@Al+>#hiaeo`17FIo6cjGwdpn zHKHGPc`ohluk=><3WvN3h`hA_7ZV{X;l}eSQ4X$Im;q(hdcw}vX@vW1TffZK@QU;`Y#rwXpOhmgv`jR?x#hrov%YOA z5X7>PNX54D{46Y;RqA*${xaYg1etS~abH|=N$Pw#TkE3Cpma|?t}+xl++F0ZdQ+NF zb>-Xsi#J&g*Dfs|PPMO&{?-&A6Q|ly718qJO9{H0zqNiQnWJY6ae=2*bBc6O{frJ3 zFz67yAWSL}eadQ)&E~*vWRqhfakC!n8{yBtU?z~iKc*-NrR5s;?($nO3w0$d`o;Te z88CB_ZlmGQ)3%%;x#zP{E)Pkg*#Lbm8&2P&;-P0zS$2l^Kt3VL>db}}MZHi<=(uFE zpg5iGKK!yF9Ex);T!|kqenG(FH$n)Co`=#&8mUgywQT&^Bx@yFhxC&aLDdivk(DJe z#SZpJP25jNVK-Ol^nq4>aes`Fy}NKg@NChinPmh%uLAB6QP-g%>mKhf1&nEE?r|_i za2n@Vlm;P6p1*zGqfc%8@R65rN#_*oop(d?gu)0{Lx6vmX~) ztW0me&=pD{1>>&bQdX(Z(`_22CQtj*#$4ajvKd$p$%h(}(@$uc-rVUy%w{ob*`7@b zeO{JoM>5n#C2D5fzSyn9WFj$qsWixHu%|ny1*nhh7=WWG;OCZ%6NR#a6HZr6-mvxZ z7ijV1Ck@%RcJ$3myNh`dW`+&<_-8h>IKEc~RMurGxRf5qK#4@p%~^-e@8A8pU}x(> zzo_dLK?)>tj3vz^Mq`^{DEp8mq3)QmRW3q{W63g>q|Oiz33o=**y0Q!GaWUS ztb<6XEMs3P$=cXMLMj?@bkg^nbN`9^%YA=%pZB--c|Py++MTpDJLdZcf`x2D{t*Cx z*Q8j`qEsZnJZw`gZdWPkP%Z6LtLVX1_GvzPsr~r1PW_O6{g6T9h+)I9VdIF=^Ks*5 z;o;WFBh5n7w&|lCv&VWCEPED?_bi-vwL*TmOn$XOd9`Bw`lHRzXZztVCr39I*yC}E&S#*F8Vt-k8LUBVaE@;pL&xoMa8nmAR zU1vehFQC^83|s+2F<>Yb499_SCV0yNl`1E#rPCJ)T=z+54CR}9{j zfCWBSs053Z;C&5PdJNXO!S)C6A{b0$fhjJSEdaBHV7>w@)_`vd;M?Ng@c%o)|LuQ6 z0JkFsg+S;K{eSBJ`2++3AW$h4duLv<0z#g9sP|Dmg%Lbs|9jF>epe#u;3iV_d`!o&l_EACAOt#T~@4|PzY_-CZe{w-qr>US3O+au$C&-(AUR0^CF-y8T}-- z`#kd%F(mr_Mz~F1=H%%t&yDcF5-zdYzk%bW9QAp+S@@%VbjDO1OiCFOs_L9w*GPj@7Kx0XoZ-H%vb zLEbf@BJ-sp3n1^HO8iTxf)wxTT1A=hMdu_hrrXmIktrk$*C72p5)+e*`moPoZk0UbPk_2mohmb zjkCT?lZ74?hs*4zdT=3rnL;{54o!l}D5QG?qbc8gOBAnC6Z92H!I!>aF)t=SM?5n`^^jZa*G8`Qu)UjbiHlhe((WloK5MdG zE<`hE1D`$65qIY6Vaag)I|kPlc#?`CQ_)6p6!P>o3vYK2=6Cyy>Fj=kvvgCxu$xBMLRMp`A)$VdO?R8B?~SnSI*^(E z4MWLeJ6E6Z`$|-h6`&|O{iN&R%w*Z38b7<<(*-UWnA*0Ac*0FRg|9l!Sw#n~m=);l ztMR6k%A;0CJ1-`DJsW!grt_Owkzb%OE5~m?$Ax5n@q}ykR2c)!Ak^um7<)F2j2UX_ zkQw%a=c%Rg2V%3W{&inOjEl}z_3m<5sJny3k2r%LQGl_TE&6TlHk;UoXPSo{Cd)vi zb|U%=y2`4rzZNNAR+$nPZyDV{Jt;)@xH&C&X2o?{ylqpHcG>IN_K;d$KQBd=<@;21G!7nH*R7wMBz@IVr^^KK|TOJ0Y)=Rgz`cSr` ze8M?VA?=W|yc=rOP0XrojmiiR=KessWpZxg4&@57HHg}hbF%)hRQ=cU(qd{OUw4)mknu&INkJp&Z!IKhVsUCoQbC z3TD*kU{E2&bMGaVYw45nOLES-3@iLuAFqVa9_z`AqpS7w-qEW1{s&*o#l%B41iBdy z`K$MjHrvHz-H;-e73JA-{mXIO5ivONNT(CsWB|2FW#W!AoLS$$+^e-XC+4(D#v~yF z;6Co3i*#HQ6KJvd*WUdk;!hUiAaHHcycB`wp+7W4iN$M9ISh7LtiC}Swfo`T7kk@s zYit4wyb&CP7?SRs@~PgxYV$%7dGMW}Wc3q@jE0`(>4^@$ zFn*4>vqwANBW9bthYR5PIPDzU@Uzkl7*b?im*IbQWxFI#3+jlE=vQcPQWdnmjEdB!W$Aymo literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareRed/images/jbox-icons.png b/apps/static/jbox/Skins/ShareRed/images/jbox-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..c35abcffc91f6cc505418870b6b0d8bf5a712cf6 GIT binary patch literal 6588 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
    3. gTCn<{Nls)_0O<$R-M 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareRed/images/jbox-loading2.gif b/apps/static/jbox/Skins/ShareRed/images/jbox-loading2.gif new file mode 100644 index 0000000000000000000000000000000000000000..22f8dd7e1a152cdda3cf1127ad37dc94edc02fe0 GIT binary patch literal 4167 zcmb`~dsI_bz6bD=larj2-&dzt(A>#p1T&+N7K z{%`;D`>gM8?_YkQK5KcE2oM230>E$oxf(IbYcfG=mb@i%$u0qB3!A)+M>}B1pXlwr zf8~SOvC-4}b~%?NZI57d<}Lrzxii1~{PVXD=3Y;ZeN~JPZLA7Zz1S2PHoAAm({CQm z-JJH9>8vSYyHa|g&H2T($@%;DzPUU5_DgFo?sxzA?CIaX{Nm7tijUqs)*Kst=Ji*f z%zgR%AK$-Kx%#_@588-eKEMCIZI3TM=g(Jz3*SDu*LQCBl;oY*_R43$OOEu!ftt#$!j)|+GrT!VZyq0d{Ke<*Hg7%OYQ5au ze%AH+&p-ayT|~UO&N%L|A8*`v^{s=G{r+B4u}vYFK61EkO=-V*)dw9do)u|hj(xXI zjy(AI)_&cJy@}CVx$w?t)*fl(U+>-haNw;Q!-3tBh(G!}|Ep;Kl2iN>M56-$ApSKf zZ(CheQ(diS*T$xLQPrlZ=7ud*wTg|KU)}ELYP8?0D=FY%C!b zhhe4)ci{q-2c(I{u1C{+zy)VgvAzs(vv}g`XL+-&P_&dzbt4gRpJL)fe=Gj+9XAZ2 zDW9U+na9Ej4^_g5%2Y6%mgb6ifXb4aeD}X1$4n52s8-Zvy9$sW#iV`h7uj1d;H693 zEEAxMAanf}yG|KhiQy$r8VfAM1E^wCT?fvOkKUME*pJ!mx5m`Z0Z{={NEF($9t*(9&G6njY^GU{vw29CQ zT+&}I$$u#=?!S&o6F!T;EY^!h)WHAf{x2*CjGIhJu&bl9lf^ES$%<21`};b;W%?)# zi_){f{t*B#4i5yv3-O~aDigv%LSOPuKu?^u!^|)lYA)64FJjWme+0bFz zamtS4?fXGh^u_QDMEtfa(4 z6`Q`i<>3J{VhDYBH-63vpsdH=?YK#zabG_w%zC(|Zo(@uoMd6E$aUh(&4}zxqmzD@MHCAZWi_(Dl;-41@nSmoyRqww@N4S z2Zw9)?c~P#qGKRaqEERywc?SQ&SGY76_$P;P9?7^W@W2^8(3_&Y*;iW%@|-Bmjwaj zLdX%5;WzX`Rpg{_L-mrP0YLAJ>#;Z3j1Rv43(Rd{VvRaF_l{SX<>`KPDS%1_A&OmuWRmK<=Rd}K;HKVup zbBiuyqYGpzc4)9Qw^GQjFjxki9vQ^Xc+oK9_eB266*Lb_PIo6<;e~}}B`pwNmNit_ z6e3)GUMOq2%4q||METtMvq+v#v9>YgMq^ztQ7NFJXPW@KU8pDlhzDDMPPu*^Uqlap zw1}TG*8?I8-TlTnG#!)rR>h)}rzuYUyd#Cw%DMq$sma%z61v?NhS^-XfZk4kn*YLSgU}syTQG!F6Bi%d@-v}16+N@02eJeVGy-%*1Od^%xBcL z#A3o1A5_f;amCS;p$5OjM*nnlpEg8#I8#DOY6u7QTI(=ZUVzY&=5%C+m_mVFfl0?I zswu`3`sUxiC0J$yS^rywh6Ja&*NPf{m76WUC;87858xA8g5~XUu~bG5UB&P2hADa_ zrZnnc$MBm7>nNNXjh#}fKmZZwh<*>ujNoZ~a4JWNNzn};l}1O665Jy&=cF6i!}v;d zHG_vEd6n4%j5WU2yo^&hyuaZwywVVVW%?;>$v^1r*#oDLZ2 z3|ZW=dBZ3h6f%mGNhD2y;x*hI;v4Q5C=4`Hd!I1gv30jXrsgUaY$Ne4o54QIhZqB5 zb9Z0Z&bISpCH3q9Yw$R%O)-CV{(T3h`cz460m@!;}nRInNLNN-+?`;e}D7CJ*{z zI0xtoA4UuS)5sqP(mwh&-nx(3TW%v$3{Q<4!DHZ`TVi(dk>82wKXL6a>m~30R(`5x zH5c^t!W;BC>gD8KAIp${Nh`Im13uw{-*B*a=_7jR1k6p<;_tet8`ct|pzdW6%EJK| zDq?V!5?5Rxtx{AdbRf*t?8`t>!59{;;k)@^;TR+Lu8T`wjQx^zH(L=oCx?C>tEe}4 zDG_zxDf9gIY7U5$XWk8JfO`XEL}@Nrum*7hXl5L&6aw+rF7%key7+F{?-l zkl2HbkGjx=_vxCKmvJID1$%am7}RX11))dAsypJXgNH8*6R8{no8-M>AO_8KpdCIB zZW!t;5kqb!e5!BC2L(l_%$t8&`V66uOX$E^lmps?Z|qd)j^do8_% zj4NL`Y%F z21B=s7p#-Ox*;t2Nv73qvjL*A6QcMcf2?p#P9s2kIs%tjgT7Ic*G7GGeP90oe+Xkdv z(AZXyj^cDYK5h=y<@uM)Rq~^T0)g6N~ zt_Et~*qW5S>M5-UTW?~Y z4jp;sWQ~Qr+FWh-+@kQ(r$v_o6j-7t3IgeI3Ne&7*x1L81O4LoCLgb=D#%TewVMMz zYk{(B?=;FsWzZh!^l3c7mQh*dHJ-ruH`iDSu57M0bpzi&}?)gmb_50eMH zpdgq09+<=(vx9kP0!l-?R9>Zg%8it*$D$)ndRV0^w6{Dkh0ckG-gEQu&%MY&=!pvk z5fGlg_~RpH?wSo;P$Sr_go+`NY-e-u{Nikal1PXMt8+m#srF&$lj%dQm|XSnXz1&~ z8;F)4N4M*yy5uoz^!eQ6L!BbV6qT*4ozSJNL{0UU$q|TM8kZSw(dN_G8lh?&8*mo# z>AW*VX>oKf%KUDJy1WKNBhit9S4_5oH<(||H6JqAbS_FPC0SP2^l`{RrqhNP+4R#eBRwX+0qg@iLnPQ7A8RzI>s*Q14c<|MSjPrU zYiLiu`o{xMI83XUHY~*Tgh}k{ef9@=;V9B#x;7rne@Y-(%Fu*%@^ONM7xY=;X4+tZ zsX=+V%5yL8+@RK?wv$Qy2^Y*tYryJ~^4N`sHsb6c5zf3nqHT!y0dSE3k%2_%kjDjG lUBTJBT~ci@PX+4CK}_8^VWn`L^+@X4_3Z94=OX%w{{YV##CHGy literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareRed/images/jbox-loading3.gif b/apps/static/jbox/Skins/ShareRed/images/jbox-loading3.gif new file mode 100644 index 0000000000000000000000000000000000000000..767589d9ac70b1775627e87c4ecc92753ab6b945 GIT binary patch literal 8778 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 S{fN*C-Grs4uTF_ESOWmk-xUJ@ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/ShareRed/jbox.css b/apps/static/jbox/Skins/ShareRed/jbox.css new file mode 100644 index 000000000..7b4a439dc --- /dev/null +++ b/apps/static/jbox/Skins/ShareRed/jbox.css @@ -0,0 +1,43 @@ +@charset "utf-8"; +/* + ʾCSS ʽֻ޸ɫԣͼƬĵַͼƬСҪĬϵһ£border:dotted solid double dashed +*/ +*:focus {outline: none;} +/* fade */ +.jbox-fade{background-color:#000000;} +/* drag */ +.jbox-drag{border:1px dashed #6D0D00;} +/* jbox */ +div.jbox {padding:0px;border:none;font-size:12px;} +/* border */ +div.jbox .jbox-border{background: none repeat scroll 0 0 #000000;filter:alpha(opacity=20);-moz-opacity:0.2;opacity:0.2;} +/* container */ +div.jbox .jbox-container{background-color:#ffffff;border:1px solid #999999;} +/* title-panel */ +div.jbox .jbox-title-panel{background:#6D0D00;border-bottom:1px solid #CCCCCC;} +div.jbox .jbox-title{font-weight:bold;color:#ffffff;} +div.jbox .jbox-title-icon{background:url(images/jbox-title-icon.gif) no-repeat scroll 3px 5px transparent;} +div.jbox .jbox-close,div.jbox .jbox-close-hover{background:url(images/jbox-close1.gif) no-repeat scroll 0px 0px transparent;} +div.jbox .jbox-close-hover{background-position:-16px 0;} +/* content */ +div.jbox .jbox-content{min-height:24px;line-height:18px;color:#444444;} +div.jbox .jbox-content-loading{background-color:#E6E6E6;} +div.jbox .jbox-content-loading-image{background:url(images/jbox-content-loading.gif) no-repeat bottom center;} +/* button-panel */ +div.jbox .jbox-button-panel{border-top:1px solid #CCCCCC;background-color: #EEEEEE;} +div.jbox .jbox-bottom-text{text-indent:10px;color:#444444;} +div.jbox .jbox-button{background:url(images/jbox-button2.png) repeat-x transparent;border:#AAAAAA 1px solid;color:#888888;border-radius:3px 3px 3px 3px;margin:1px 7px 0px 0px;height:22px;cursor:default;} +div.jbox .jbox-button-hover{background-position:0px -20px;color:#666666;} +div.jbox .jbox-button-active{background-position:0px -40px;} +div.jbox-warning .jbox .jbox-button-panel{background-color: #FFFFFF;} +/* tip-color */ +div.jbox .jbox-tip-color{background-color:#6D0D00;border-color:#6D0D00;border-radius:3px 3px 3px 3px;color:#ffffff;} +/* icons */ +div.jbox span.jbox-icon{background:url(images/jbox-icons.png) no-repeat scroll 0 0 transparent;_background:url(images/jbox-icons-ie6.gif) no-repeat scroll 0 0 transparent;} +div.jbox span.jbox-icon-info {background-position:0 0;} +div.jbox span.jbox-icon-question {background-position:-36px 0;} +div.jbox span.jbox-icon-success {background-position:-72px 0;} +div.jbox span.jbox-icon-warning {background-position:-108px 0;} +div.jbox span.jbox-icon-error {background-position:-144px 0;} +div.jbox span.jbox-icon-none {display: none; overflow:hidden;} +div.jbox span.jbox-icon-loading {background:url(images/jbox-loading1.gif) no-repeat scroll 0 0 transparent;} \ No newline at end of file diff --git a/apps/static/jbox/Skins/jumpserver/Desktop.ini b/apps/static/jbox/Skins/jumpserver/Desktop.ini new file mode 100644 index 000000000..09485b11b --- /dev/null +++ b/apps/static/jbox/Skins/jumpserver/Desktop.ini @@ -0,0 +1,3 @@ +[.ShellClassInfo] +IconFile=%SystemRoot%\system32\SHELL32.dll +IconIndex=161 diff --git a/apps/static/jbox/Skins/jumpserver/images/Thumbs.db b/apps/static/jbox/Skins/jumpserver/images/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..37d2c8e06c99e32ff48c54ba42aaf5a9f6c2ff34 GIT binary patch literal 19456 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 z z2s^t+4{EMo6fPw-%sxT!!ZIo}5dG+W=&Xn6!j||DWj;J^j-44@d4+^dO|Mu=8PVZ} zwbjCwpx|<}plwPVY!iK5nlSek^w?Rab(x_(nZ1Y6WBqD-4J*;36BMKi){YHRA;e(5 zF%ko}aVcyRH?ty&4lsScCi!<{=vV#sXZKJ2TL1j|{nQ`)GVEXde(Kl!_iO(9HUIsZ z|Nd9!zdzn{{QZ7oX6m%+uiNtN9_6p|=P&=$uiqd4;Sa0-XMTVD%m4I$!2k67-%QKrE-xibfFic*IJHO%471GxY1WxA-&^aGD<*p`V zrWv%-hyQK@1KuaWZu}7nA3B1~QMaNX+XENK3~k_KSVVpIU0A4UQa6)KgPInS-#pS; znr${AL3U6QExks+qa>=NSX5V-W#rTfbboa7$n@p}jsOw!o05y}`f5@nw!S2C4bGLs zywHv3a{#Ssl!9C!D)z}>`9H?ww+prJ$%xyK&n{bA#*X#m+QGBKU9B^gW`O3xNslvr zQ|8tIxEpF8o3rnVJdM;}FWK3i{kD=PG-Zq8P}&2+QCDA$*3`eEKmGWV`W5qkq6hv9 D1Ij5$ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/jumpserver/images/jbox-button1.png b/apps/static/jbox/Skins/jumpserver/images/jbox-button1.png new file mode 100644 index 0000000000000000000000000000000000000000..7d8a6a4b21406876efb7462317f1d98ba2c83cdb GIT binary patch literal 338 zcmV-Y0j>UtP)@$vin z`{?NC&(F`?+}y^-#?#Z&{r&ym;NZi-6dkG1Tgy;Teq!|TN@q$hN^zs(J=OPZ`DSBcr?&2tR;wsJ}T5%FD z(TJOPh`$?KF%&CNi?t}lOpL``RAMOxq7YND5eqR9BhgoPGRHF`gEB26Bg2!Bm}Dg| ksfkX0J|bW89sUtu0DUGDT{S~8^Z)<=07*qoM6N<$f_p@~vyu7^c@9*vH?Yg?Uz`(%t z^z{Gpnd|H8*Vota@$t&a%K!S+|NZXI&(GZ4+~VTm=;-MB`uhL!mH+p-|Ni*X)6@U- zq5u5i|MV925@rDg03|gR(J#~^Qvd(} M07*qoM6N<$f^USX1^@s6 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/jumpserver/images/jbox-close1.gif b/apps/static/jbox/Skins/jumpserver/images/jbox-close1.gif new file mode 100644 index 0000000000000000000000000000000000000000..a87057e8921fd316e5d6d690138ade8ec67c0f23 GIT binary patch literal 1221 zcmeH`SxggA6oyB^GA=D!hD$Lc$Q%Y2L|aN9iRe~ zpYoG_A1Lt>UXRz~_P9Q{BuN%UNf4q8!;++5l4XwP8J7Lc6QTmcGN2+9qG>u12>3~o zz%ZN5W|4tVj7Fov&`=~235UZx&vP8dvMj?eg98Kop->-92Lr$iib$W&M-ag5al75U zF4qUAvj@k!G0bkWSyA-8+1y3>eSVSvMSY;-U?3Qv$Y1T^-45{3ZnN5~miOi^5Q8E~ zS(4%%2m7~PE|;qZz;PTK8xV@3m6erXO=Ii&fBnk|s74aUL68Yr z7Kg_F1O$&l^VX(sdZNrLfZ5Cnyt-YzI7MCbQAJE^yEtodMPhBKx-Dl3((v$UM`3Hu znr6+uur#UR=Df#G(4AZnoOVQCuiU*MY39<6o!dqVu}e49Wf?D8>XiEW^=DF$bIzkv zFJ$OKn*H`pxZ_ciqsb8NH1#3n3HP@gcxh@`q%EsDsM+&)#`2*l`tBG$Cw0{!?Ji`bQRTQaCEXdxQ_P-whk{!lD4e3lv{$42G7fHjgJfyw zXYChn_UHL_x=+1pP_NtZePL0(ZrXx%Q_a<_?V`6rEKly`tXS#oY{QIR%6tR4{prL@ z?(UN3RO19qIk9Y8ij7EEf10k^o^K?|R%(CbzW!=0zPw`X_0Rg`x{~UKwBwl^K3msh z!Rwk3NTt>xP+nTr!e$g!zbcyfNvB-J;J>*$ro}!MYqYwZ7`4BRyeji6wRS J>gg%anx8VZ7x@4H literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/jumpserver/images/jbox-close2.gif b/apps/static/jbox/Skins/jumpserver/images/jbox-close2.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd2dde9009dfd7adbd272044c03a6f57d1a34701 GIT binary patch literal 791 zcmb7>$xjn;6vwA6O9hlg8U+qOqksl&0we;0tU@)4;6cEIAP}@zV2p4e#zR455lny! z4P20TGDeLd?g}JwQ3*5io2}D!*3MSIC@1uS!=K>i<(=O9=6%0;wHIm%i`vqmcu0XE z8~|O{B}rm~!9c*zFbqi$q|rDa2@*q5fMKel(lj0L`$HiqBuPBaF^tdH<~WuBKoEpL zAi#4RO;MVr8-)X06ogPHq{xaWiX6)U3>A0*+XuyQAS<#ch>9WufGV=g_-JGUp=nCj zG?opb8;GuJ0AQjh5ClO}w5q8XiiPzsO_PQNLEwEfg(3(|k^7Drnj}fhz(}I$IF3^U z0Z`2FY6LQ3$+7|fPLjB)Dh33O1p`5rV_B9nzyV4bQ3+gAMPo^R_LaXod>(Y3w3(M?fQRIm|t2`)+ui792L zi>cnStUiC^ z5E9qUBv)QKQ8j4(IFxcV&ZI$Z>5*@kkGdj&9)|>WMhwp7?N5#Q0 zkm;(Y1-Lt6oRO$0V$5Ao-~Wy@MaHDU-36{G;kxC>!55w7?y40_e0+aKiF1eFK4eWO z*&68JJ%g#0N!GeM<<7^Jp~k1Xzl5*j$u93x&)xR5Q5!r7(LV+)o~)WeFT|&m&!_b) z6-YbJo4o+O$gfl^z8UhrozBT=5HEYU>XC@4#2Zx}`*Pyv@ztofzVvhLORm+Czw_nL F*?;R5w}Aiv literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/jumpserver/images/jbox-content-loading.gif b/apps/static/jbox/Skins/jumpserver/images/jbox-content-loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..f3e1650093810c2c0ce153f9f1b84efc9b685615 GIT binary patch literal 10810 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

      ugLTFm2Ar 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/jumpserver/images/jbox-icons.png b/apps/static/jbox/Skins/jumpserver/images/jbox-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..c35abcffc91f6cc505418870b6b0d8bf5a712cf6 GIT binary patch literal 6588 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

    4. gTCn<{Nls)_0O<$R-M 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/jumpserver/images/jbox-loading2.gif b/apps/static/jbox/Skins/jumpserver/images/jbox-loading2.gif new file mode 100644 index 0000000000000000000000000000000000000000..60f0070361aa5afddb2bab70a4918a141a850d90 GIT binary patch literal 4167 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/jumpserver/images/jbox-title-icon.gif b/apps/static/jbox/Skins/jumpserver/images/jbox-title-icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..b9c772fb5dd615a76731d4c119ff9fe5ea34ea5e GIT binary patch literal 73 zcmZ?wbhEHbBe?# S{fN*C-Grs4uTF_ESOWmk-xUJ@ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins/jumpserver/jbox.css b/apps/static/jbox/Skins/jumpserver/jbox.css new file mode 100644 index 000000000..e34a7b3d8 --- /dev/null +++ b/apps/static/jbox/Skins/jumpserver/jbox.css @@ -0,0 +1,43 @@ +@charset "utf-8"; +/* + ʾCSS ʽֻ޸ɫԣͼƬĵַͼƬСҪĬϵһ£border:dotted solid double dashed +*/ +*:focus {outline: none;} +/* fade */ +.jbox-fade{background-color:#000000;} +/* drag */ +.jbox-drag{border:1px dashed #003870;} +/* jbox */ +div.jbox {padding:0px;border:none;font-size:12px;} +/* border */ +div.jbox .jbox-border{background: none repeat scroll 0 0 #000000;filter:alpha(opacity=20);-moz-opacity:0.2;opacity:0.2;} +/* container */ +div.jbox .jbox-container{background-color:#ffffff;border:1px solid #999999;} +/* title-panel */ +div.jbox .jbox-title-panel{background:#2f4050;border-bottom:1px solid #CCCCCC;} +div.jbox .jbox-title{font-weight:bold;color:#ffffff;} +div.jbox .jbox-title-icon{background:url(images/jbox-title-icon.gif) no-repeat scroll 3px 5px transparent;} +div.jbox .jbox-close,div.jbox .jbox-close-hover{background:url(images/jbox-close1.gif) no-repeat scroll 0px 0px transparent;} +div.jbox .jbox-close-hover{background-position:-16px 0;} +/* content */ +div.jbox .jbox-content{min-height:24px;line-height:18px;color:#444444;} +div.jbox .jbox-content-loading{background-color:#E6E6E6;} +div.jbox .jbox-content-loading-image{background:url(images/jbox-content-loading.gif) no-repeat bottom center;} +/* button-panel */ +div.jbox .jbox-button-panel{border-top:1px solid #CCCCCC;background-color: #EEEEEE;} +div.jbox .jbox-bottom-text{text-indent:10px;color:#444444;} +div.jbox .jbox-button{background:url(images/jbox-button2.png) repeat-x transparent;border:#AAAAAA 1px solid;color:#888888;border-radius:3px 3px 3px 3px;margin:1px 7px 0px 0px;height:22px;cursor:default;} +div.jbox .jbox-button-hover{background-position:0px -20px;color:#666666;} +div.jbox .jbox-button-active{background-position:0px -40px;} +div.jbox-warning .jbox .jbox-button-panel{background-color: #FFFFFF;} +/* tip-color */ +div.jbox .jbox-tip-color{background-color:#003870;border-color:#003870;border-radius:3px 3px 3px 3px;color:#ffffff;} +/* icons */ +div.jbox span.jbox-icon{background:url(images/jbox-icons.png) no-repeat scroll 0 0 transparent;_background:url(images/jbox-icons-ie6.gif) no-repeat scroll 0 0 transparent;} +div.jbox span.jbox-icon-info {background-position:0 0;} +div.jbox span.jbox-icon-question {background-position:-36px 0;} +div.jbox span.jbox-icon-success {background-position:-72px 0;} +div.jbox span.jbox-icon-warning {background-position:-108px 0;} +div.jbox span.jbox-icon-error {background-position:-144px 0;} +div.jbox span.jbox-icon-none {display: none; overflow:hidden;} +div.jbox span.jbox-icon-loading {background:url(images/jbox-loading1.gif) no-repeat scroll 0 0 transparent;} \ No newline at end of file diff --git a/apps/static/jbox/Skins/样式说明(以Default皮肤为例).css b/apps/static/jbox/Skins/样式说明(以Default皮肤为例).css new file mode 100644 index 000000000..0bcb597fb --- /dev/null +++ b/apps/static/jbox/Skins/样式说明(以Default皮肤为例).css @@ -0,0 +1,44 @@ +@charset "utf-8"; +/* + ʾCSS ʽֻ޸ɫԣͼƬĵַͼƬСҪĬϵһ£border:dotted solid double dashed +*/ +*:focus {outline: none;} +/* fade */ +.jbox-fade{background-color:#000000;} /* */ +/* drag */ +.jbox-drag{border:1px dashed #89C01D;} /* ϶߿ */ +/* jbox */ +div.jbox {padding:0px;border:none;font-size:12px;} /* ڻʽҪ */ +/* border */ +div.jbox .jbox-border{background: none repeat scroll 0 0 #000000;filter:alpha(opacity=20);-moz-opacity:0.2;opacity:0.2;} /* ߿ʽ */ +/* container */ +div.jbox .jbox-container{background-color:#ffffff;border:1px solid #999999;} /* ڱ߿ڴ */ +/* title-panel */ +div.jbox .jbox-title-panel{background:#89C01D;border-bottom:1px solid #CCCCCC;} /* 壬Ҫױ߿Ϊ0 */ +div.jbox .jbox-title{font-weight:bold;color:#ffffff;} /* */ +div.jbox .jbox-title-icon{background:url(images/jbox-title-icon.gif) no-repeat scroll 3px 5px transparent;} /* ͼ */ +div.jbox .jbox-close,div.jbox .jbox-close-hover{background:url(images/jbox-close1.gif) no-repeat scroll 0px 0px transparent;} /* رհť */ +div.jbox .jbox-close-hover{background-position:-16px 0;} +/* content */ +div.jbox .jbox-content{min-height:24px;line-height:18px;color:#444444;} /* */ +div.jbox .jbox-content-loading{background-color:#E6E6E6;} /* ajaxiframeʱloading */ +div.jbox .jbox-content-loading-image{background:url(images/jbox-content-loading.gif) no-repeat bottom center;} /* ajaxiframeʱloadingмĶ̬ͼƬ */ +/* button-panel */ +div.jbox-warning .jbox .jbox-button-panel{background-color: #FFFFFF;} /* δرմʱʱťıɫ */ +div.jbox .jbox-button-panel{border-top:1px solid #CCCCCC;background-color: #EEEEEE;} /* ť壬Ҫ߿Ϊ0 */ +div.jbox .jbox-bottom-text{text-indent:10px;color:#444444;} /* ť */ + /* °ťʽ */ +div.jbox .jbox-button{background:url(images/jbox-button2.png) repeat-x transparent;border:#AAAAAA 1px solid;color:#888888;border-radius:3px 3px 3px 3px;margin:1px 7px 0px 0px;padding:0px 10px 0px 10px;height:22px;cursor:default;} +div.jbox .jbox-button-hover{background-position:0px -20px;color:#666666;} +div.jbox .jbox-button-active{background-position:0px -40px;} +/* tip-color */ +div.jbox .jbox-tip-color{background-color:#89C01D;border-color:#89C01D;border-radius:3px 3px 3px 3px;color:#ffffff;} /* ʾɫ */ +/* icons */ +div.jbox span.jbox-icon{background:url(images/jbox-icons.png) no-repeat scroll 0 0 transparent;_background:url(images/jbox-icons-ie6.gif) no-repeat scroll 0 0 transparent;} /* ͼʽ */ +div.jbox span.jbox-icon-info {background-position:0 0;} +div.jbox span.jbox-icon-question {background-position:-36px 0;} +div.jbox span.jbox-icon-success {background-position:-72px 0;} +div.jbox span.jbox-icon-warning {background-position:-108px 0;} +div.jbox span.jbox-icon-error {background-position:-144px 0;} +div.jbox span.jbox-icon-none {display: none; overflow:hidden;} +div.jbox span.jbox-icon-loading {background:url(images/jbox-loading1.gif) no-repeat scroll 0 0 transparent;} diff --git a/apps/static/jbox/Skins2/Blue/Desktop.ini b/apps/static/jbox/Skins2/Blue/Desktop.ini new file mode 100644 index 000000000..09485b11b --- /dev/null +++ b/apps/static/jbox/Skins2/Blue/Desktop.ini @@ -0,0 +1,3 @@ +[.ShellClassInfo] +IconFile=%SystemRoot%\system32\SHELL32.dll +IconIndex=161 diff --git a/apps/static/jbox/Skins2/Blue/images/Thumbs.db b/apps/static/jbox/Skins2/Blue/images/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..c9e4ec7f9b83549292374f18f89d40f5000418c4 GIT binary patch literal 33792 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Blue/images/jbox-close1.gif b/apps/static/jbox/Skins2/Blue/images/jbox-close1.gif new file mode 100644 index 0000000000000000000000000000000000000000..a87057e8921fd316e5d6d690138ade8ec67c0f23 GIT binary patch literal 1221 zcmeH`SxggA6oyB^GA=D!hD$Lc$Q%Y2L|aN9iRe~ zpYoG_A1Lt>UXRz~_P9Q{BuN%UNf4q8!;++5l4XwP8J7Lc6QTmcGN2+9qG>u12>3~o zz%ZN5W|4tVj7Fov&`=~235UZx&vP8dvMj?eg98Kop->-92Lr$iib$W&M-ag5al75U zF4qUAvj@k!G0bkWSyA-8+1y3>eSVSvMSY;-U?3Qv$Y1T^-45{3ZnN5~miOi^5Q8E~ zS(4%%2m7~PE|;qZz;PTK8xV@3m6erXO=Ii&fBnk|s74aUL68Yr z7Kg_F1O$&l^VX(sdZNrLfZ5Cnyt-YzI7MCbQAJE^yEtodMPhBKx-Dl3((v$UM`3Hu znr6+uur#UR=Df#G(4AZnoOVQCuiU*MY39<6o!dqVu}e49Wf?D8>XiEW^=DF$bIzkv zFJ$OKn*H`pxZ_ciqsb8NH1#3n3HP@gcxh@`q%EsDsM+&)#`2*l`tBG$Cw0{!?Ji`bQRTQaCEXdxQ_P-whk{!lD4e3lv{$42G7fHjgJfyw zXYChn_UHL_x=+1pP_NtZePL0(ZrXx%Q_a<_?V`6rEKly`tXS#oY{QIR%6tR4{prL@ z?(UN3RO19qIk9Y8ij7EEf10k^o^K?|R%(CbzW!=0zPw`X_0Rg`x{~UKwBwl^K3msh z!Rwk3NTt>xP+nTr!e$g!zbcyfNvB-J;J>*$ro}!MYqYwZ7`4BRyeji6wRS J>gg%anx8VZ7x@4H literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Blue/images/jbox-close2.gif b/apps/static/jbox/Skins2/Blue/images/jbox-close2.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd2dde9009dfd7adbd272044c03a6f57d1a34701 GIT binary patch literal 791 zcmb7>$xjn;6vwA6O9hlg8U+qOqksl&0we;0tU@)4;6cEIAP}@zV2p4e#zR455lny! z4P20TGDeLd?g}JwQ3*5io2}D!*3MSIC@1uS!=K>i<(=O9=6%0;wHIm%i`vqmcu0XE z8~|O{B}rm~!9c*zFbqi$q|rDa2@*q5fMKel(lj0L`$HiqBuPBaF^tdH<~WuBKoEpL zAi#4RO;MVr8-)X06ogPHq{xaWiX6)U3>A0*+XuyQAS<#ch>9WufGV=g_-JGUp=nCj zG?opb8;GuJ0AQjh5ClO}w5q8XiiPzsO_PQNLEwEfg(3(|k^7Drnj}fhz(}I$IF3^U z0Z`2FY6LQ3$+7|fPLjB)Dh33O1p`5rV_B9nzyV4bQ3+gAMPo^R_LaXod>(Y3w3(M?fQRIm|t2`)+ui792L zi>cnStUiC^ z5E9qUBv)QKQ8j4(IFxcV&ZI$Z>5*@kkGdj&9)|>WMhwp7?N5#Q0 zkm;(Y1-Lt6oRO$0V$5Ao-~Wy@MaHDU-36{G;kxC>!55w7?y40_e0+aKiF1eFK4eWO z*&68JJ%g#0N!GeM<<7^Jp~k1Xzl5*j$u93x&)xR5Q5!r7(LV+)o~)WeFT|&m&!_b) z6-YbJo4o+O$gfl^z8UhrozBT=5HEYU>XC@4#2Zx}`*Pyv@ztofzVvhLORm+Czw_nL F*?;R5w}Aiv literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Blue/images/jbox-content-loading.gif b/apps/static/jbox/Skins2/Blue/images/jbox-content-loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..f04301a940be9f0640ea619683d240c67a0cc2fa GIT binary patch literal 10810 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 A%>V!Z literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Blue/images/jbox-icons-ie6.gif b/apps/static/jbox/Skins2/Blue/images/jbox-icons-ie6.gif new file mode 100644 index 0000000000000000000000000000000000000000..201b912e0db150b0111539e1ec35b2555b618b60 GIT binary patch literal 2767 zcmeH``8yQ)0>)>tj3vz^Mq`^{DEp8mq3)QmRW3q{W63g>q|Oiz33o=**y0Q!GaWUS ztb<6XEMs3P$=cXMLMj?@bkg^nbN`9^%YA=%pZB--c|Py++MTpDJLdZcf`x2D{t*Cx z*Q8j`qEsZnJZw`gZdWPkP%Z6LtLVX1_GvzPsr~r1PW_O6{g6T9h+)I9VdIF=^Ks*5 z;o;WFBh5n7w&|lCv&VWCEPED?_bi-vwL*TmOn$XOd9`Bw`lHRzXZztVCr39I*yC}E&S#*F8Vt-k8LUBVaE@;pL&xoMa8nmAR zU1vehFQC^83|s+2F<>Yb499_SCV0yNl`1E#rPCJ)T=z+54CR}9{j zfCWBSs053Z;C&5PdJNXO!S)C6A{b0$fhjJSEdaBHV7>w@)_`vd;M?Ng@c%o)|LuQ6 z0JkFsg+S;K{eSBJ`2++3AW$h4duLv<0z#g9sP|Dmg%Lbs|9jF>epe#u;3iV_d`!o&l_EACAOt#T~@4|PzY_-CZe{w-qr>US3O+au$C&-(AUR0^CF-y8T}-- z`#kd%F(mr_Mz~F1=H%%t&yDcF5-zdYzk%bW9QAp+S@@%VbjDO1OiCFOs_L9w*GPj@7Kx0XoZ-H%vb zLEbf@BJ-sp3n1^HO8iTxf)wxTT1A=hMdu_hrrXmIktrk$*C72p5)+e*`moPoZk0UbPk_2mohmb zjkCT?lZ74?hs*4zdT=3rnL;{54o!l}D5QG?qbc8gOBAnC6Z92H!I!>aF)t=SM?5n`^^jZa*G8`Qu)UjbiHlhe((WloK5MdG zE<`hE1D`$65qIY6Vaag)I|kPlc#?`CQ_)6p6!P>o3vYK2=6Cyy>Fj=kvvgCxu$xBMLRMp`A)$VdO?R8B?~SnSI*^(E z4MWLeJ6E6Z`$|-h6`&|O{iN&R%w*Z38b7<<(*-UWnA*0Ac*0FRg|9l!Sw#n~m=);l ztMR6k%A;0CJ1-`DJsW!grt_Owkzb%OE5~m?$Ax5n@q}ykR2c)!Ak^um7<)F2j2UX_ zkQw%a=c%Rg2V%3W{&inOjEl}z_3m<5sJny3k2r%LQGl_TE&6TlHk;UoXPSo{Cd)vi zb|U%=y2`4rzZNNAR+$nPZyDV{Jt;)@xH&C&X2o?{ylqpHcG>IN_K;d$KQBd=<@;21G!7nH*R7wMBz@IVr^^KK|TOJ0Y)=Rgz`cSr` ze8M?VA?=W|yc=rOP0XrojmiiR=KessWpZxg4&@57HHg}hbF%)hRQ=cU(qd{OUw4)mknu&INkJp&Z!IKhVsUCoQbC z3TD*kU{E2&bMGaVYw45nOLES-3@iLuAFqVa9_z`AqpS7w-qEW1{s&*o#l%B41iBdy z`K$MjHrvHz-H;-e73JA-{mXIO5ivONNT(CsWB|2FW#W!AoLS$$+^e-XC+4(D#v~yF z;6Co3i*#HQ6KJvd*WUdk;!hUiAaHHcycB`wp+7W4iN$M9ISh7LtiC}Swfo`T7kk@s zYit4wyb&CP7?SRs@~PgxYV$%7dGMW}Wc3q@jE0`(>4^@$ zFn*4>vqwANBW9bthYR5PIPDzU@Uzkl7*b?im*IbQWxFI#3+jlE=vQcPQWdnmjEdB!W$Aymo literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Blue/images/jbox-icons.png b/apps/static/jbox/Skins2/Blue/images/jbox-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..f72f2924021bf6a23d2df61a42f109d7e49bcef3 GIT binary patch literal 6663 zcmV+i8u;ajP)KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(`>RI+y?e7jKeZ#YO-C z4>U)jHMAm=l~QXgyjTgv14Fy0yr29wM&9`s~l%b zfnx1HOp0v9+4T`S>myru_M;rErlT_aS z2gRdLuazgOq$j_YJVHJLUkW{Zk5B%13$WQ@a?~h<)DtlQrbMj>3Xw#)m2kx04IFYx zOAjuzzIJRzuSD0c?_ucN7GN_)b7~kL0VM{40mKAPJaWCvJR3&)yMaTLG#;e(p<9}# zaJ`g-UaxCR~g}x(9&$b=Dv5Etj@^F|8}%J29Ut|Fa!v!B$(rm=_Ed7!QDGfRG2|pjub5 zfz<`^7?|x43&X5(2zCts`6wl1*r6ly){KdPhMGQeeK-> zN4YhOUfo4Bv=M`(j%2bQ`cH%RBFeRXgcKe{Q4mV!KzTjPSq73r9R*`D7_F@oRlP#( zL$?G^KD~O6_h&qB?ziXM5WQ|DPnv-*h92DPmoGjw+f?I@5+oQJq^r}9r+6U@?^DGT)`j;Y5xYmB*C0TP_q(>=7G5wf?aLcYM*7nj;}ROF1@a` zeW|I9Qul2$rq|8pNiy)o(1UA6<5zwLxCN{X`ujN7;bkloN$MaPjZ;x+W8oj&rhel- z|B`{eV3LUeW?4-%E-9zXQAr~AX)6-v{kY!x=DQlrvWD^DpAnC^5l!Ix3@-c@hEpzt z(G0GI$z^f~hWa2ne!Z;tHdu5oIB!?;Qqk0gx%kH{*fFy_T4S0#+4SOIDghlJeE8{ z3j#RHiul`a_av3Sal9Je;3%mXiD(dLSX|D$xz!l4F&6J>EivA?bD?$j7kSJwpRjK? z7UxFBhoSEToI9E{${~ud<|$b6^i&T}oha)0=-QptZ@+XZt!~LOCk>0sm^ZgZ zmtJ~!^h7?M$syAxf4DuaurW%IL4RLH^G@6j8=A_~${U)>iN(|F$72fT&w3g3_YoyX zTw$Y6{&0I<@?h6?q9N5RzRxn4MS!hu!ICF?QqFV$%M!=;SoW_yY1)3&|)@71Ve+I zY4>C_Z=n&7DV%Bd5DX1sHb?+1i9WMWO+gC=NzF0Oyq!MMExs2jH(i=Cs$`357VT_h z{_At{R|5!`m~E=5NX!jpAwIVS zTWtk`0S0~#pMLP51{!2q_}io{%Q;XHa{ z-9M{G0X(UC6%Y;)L;iO&NqT)UEuQu3cd>r`uAKdqm)FwLa)9#kTFpG-Rr&dP$z<6a z!NaH=pr?B%_gB|!WS}p|uTIwRzR%73J~zKQS;IhI5VP5s^W2{9Ax7l@5j;pH%jT={ z^Yt0uXi1LEjCs|msjjy4h9oN#FA4yQC(DK}R&)Fn=sgRc{73pZbN(X3$l9j%G3Euy zv6;Si3gaonyh|Qek99xQ#gnR6`@zeF5SUG3ao$Sp2QR1S^_*@VNwU(?a)6a9UuNaX zm-)_jp3Q3B9Xn33V8K>)?(C$wd95ZM(HD7dg@Cn2z)IiMVNI!n(J0b;Wtd|}E_3Y2 zWqPj+r_DfQOC|cQ4kKViz*^&rytg8)QsDdwj8Y8-i#o5G=^;rTgJ0O~9JoUragYBE z9R928x#+4V($D$eN11Qk{ioFz5Jstn!1=;>^u+oXRO3#>lAl~3i8b)}A}5mc(h&s> z)yaCD(9N@LTPq6|Y@PgnxBJO76Hl1eVkw&}d*Fd18BLtZBZeb>w?YUxc8x*Lh^9Yk zVh(uf5sk(*ojd3mQQyW8A{_C%)6MC3Gd`le(ehl#(u$%^ll7iekJJCD{uco@ya)>) zPV1Jgk1{vqxuEtnKBD$r5RZKraCk7O%&tmo}<0}XkH#;VqpbJT*>%`E$z*R0F6t^am}$MU-$kXmo9uszO_Mt zKo}*ifB`1@PQK?jmJkbrXh0eAq`lF~L8h8_(ax!bT>syV$d5IS)Pb4yC0{*Ka&a9>L}M z7B*WQ7K=0KoD(Php2LS<(ZnMHbpj?vN5}J;cVZf?a;}}booz`+d>M~TRLr~We=rYTnJ(g=)mzBBG%zNO#x~%5S#3KSOFlkN!^v)}0OFciNEmviL2KgnR;7t+kD znMbEyiI`QWf%EF6fk&1@?Ay07&BUqZ&6GCe;t{zOV)=vVWuN_{HuFw*CSf8LJ(@le zXUlmzUPwwC{!l`eLwxknOBp}AcI`af-M`n}rU-Z-qG=Xkrb6v2g4%cbV+`?#x&%@4 z^T_x_%5Xh>2>G<1FWJDQK`*@~sSdTHTlZeGg+4;)EOJ7ZxChU?l{EM@H2af&^AmgDtyY2q=; zk#L7(vaA+F0lVEoa9F;f2DaNR2#KYIawOc5VcMz#lWjFI8KJ}l0k4L~6G!U9+ozZv zt2I4~mn0UN8zr@GJv{F`3hVsoBW;1^)xwjimzIgN)BpAPv^2}5mlmE(<_(7j*|TRk zb#+VGwCTTfnRqIX(PDD60Z0ZbWv**C+`wh7*+_;`71m^J%P?)#hEY-Bl`l~u))i_~vKhz5bms$vvED1^G5rd21?hvE)Sf-ic^$Kgxjv>yqmE{bvYd7`#$>#472Di*h7<$b^d`$xd}m$qh4b zbxjFHk{uH+tEESbicKZ8*Iaj0=5|YJ8WtF~_`t6a1 zrgFacZT8Dlc2~J(z4Gz2w;yF-U^#(+H_en&!|Uzh)mNJc1O_$phyaPL@B7DNGB#@& zP0g+uO(jHwKvS~|o3)Jbm<+H#=XQH_tNDInvbtxiX_J;zVs_FjM7~>f(6u-=e$r ziUO@hY?L`FX;@sI)x;U*6*HDin73iEy06KI4N;)gDc!X<|NKquUX0dO%*E=SvBtI8 zO(RN>`l?hgW;aXYTD47cvAQGJRy(sidd*t^PqJQfxa*iNt|&O1){L73{k~ArJo3%h)R}9pIPJ5Wu&Gn?-1Q9bTnzp7n$dXA6utU6wx>O7 z9z3xL_wpqlmk+0>57Xb&shvmDgp39r!!yr3Gv$f$FFS+Lqn?p*Z@tA(UO8))grm$r zEFLEmilD?*aYlmU4Ee{Bj?icXgFzjI4MveUb8R#>xhO5JP&ea6d~J49-Lv)9HxFz6 z3mnTj8Sd~f=B>x-szfRQ$2>rW&=AC9In6TpnMs1GCRlVI*z47iZp_<;)%7e3cHA_c zq)~SUc$}s!ox$k4o{@1+LN7DbOYIoTCBFQ8D5>tX%fnngHNfRl16;e5yfnDfeH*pQ z%BQWD9-dsGhv%CgHn|0OE`=UhGZg*!EA+!AH;?C=pO(5sc)ard`JJKHwuADO(CcRL zeDmXew;0c*&?5=Gl&^$dH=0NI=I2#!O`far3kkh^dGvB7e$MoXuO-j_4*(u?1IkYq Rj`9Ei002ovPDHLkV1new3K;+Z literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Blue/images/jbox-loading1.gif b/apps/static/jbox/Skins2/Blue/images/jbox-loading1.gif new file mode 100644 index 0000000000000000000000000000000000000000..5e0834f1d5ae6acf111e40689c95b6dc88b0018e GIT binary patch literal 3199 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Blue/images/jbox-loading2.gif b/apps/static/jbox/Skins2/Blue/images/jbox-loading2.gif new file mode 100644 index 0000000000000000000000000000000000000000..209124ab6675551f79f03b15132cdc04b10c7810 GIT binary patch literal 4167 zcmb`~YgAL$wgBLrot^BRWRu4xJA_9<5(oq(A*fJ9!0eEOHzpXBijD?^4zwJL79Z92 zG*3tZ*nrUjtu`Pa_9a?WtdAQIDWcWr^?}w}RN8`7OIvES56|VCd+)D1ZttJF##r;; zT0iDD=3HxL<>*otmWluo@B{$<@vlW`y(ZXqQ-0v~+@3EvdvB0iuF>ATp4B(r{O^xG zyZ>|V*FSCfd@`=*OUAp`7k+Z*@c2)^{rP-0M0Vc9ePgAkCtf^pKj^*dn?9eMnE7pF z>WTK#adGD@Y4y{qBckk!lUikQ{$tSFGvB^C^xe0= z{QlbTcR5GKFMj`P=Hahj8T|I-#7yk|FH26|Uwr86q>sOv|It^Sx2A7RKihEjJM;Mm z4S|Pmou7L0`=7+2uMPe8tQQ`v9sG9p)kof|kMfS(jq19!ckG9Pqj#4ayIXtl`@|1# zzd1V9{pIw92Tv9qyc6DW6K=c4+H)hceeCMvr|;c(>>K+b#5cC%^27g3+W$)wKZ9s= z006|#!!kEkl-5*~i?*z-sT7s2E8SZ4YH7J*?fREr1;qbg6l#r2GYP$Ro zk#n)Wm`EIknQ6EK7qDC)P1H9WPV)fA?Qwa!Ld419iHDEyuGB%{QaaU%gh*~+;#hAT ze(ACkhS2yMsAlwmaKJ^4VuU3t7>~(KTY7EYnPcFU6#l+IDM?)q0^%^%M~Kkml&vjb(b0Er%AT zVQjwY+xK|`>9YpE?D83~e~WG%zjfY`fDM|TQ9N0#dJkQrOG8q}+jB_goshA|!?Jjy z`f@d~&_89BV{DoKbo?9 z?naZ^BcWJd1=dsIcDbz0OE8ntJf452J{Fb8vd!&lqEJdLo2K?%U%b<o3b>wC`uv zB<6C=q}V;n*4??_;sK*#2%WeZJ#Ge2)`Q2J&XZ`|xAqHDCbm}$xT6e*5utYwbaAAS z%k-YYL5{3YAn3iaPtzEK@9S+dN53|7)RfiY@mJ)=peY)q<&cOtK&IG{xWG|cGm>|D z-7rTxik||~vJ($U=(rkR*P3d!fQ7wj+sqFJ)*L=37O5=!veRoE5#rbMf`(JsP0wav z82sPC8~|MFa=Tz$yP9Ct@2rKHd5k1o6z<&%aF@)*FsVx3472#iUKW``M!*bJekYb1 zN#<*KDX~njo?l2Wp{L>URsCHCD7Hir6HZTf$<@b@N>fo<0q3G(NeD;Uub>-U)S%S< zn1#fgtj>5&VQ9=nj1j@cbDJQlA}AC!_L}Sibqaj<&}&EA&-SX3!fKb;LPKJmOxX}H zPV#Q=F9v?xa7a(V8QU}?i7G<~H+kaCNgqNuV&t_(b|rEKk4jfp^%I@D#1LPNJ$lja zVhg$5^g)%%=>g^G;+C$D&+TTl{$_LZzCWkBGPeh0M(N_O4lSBe(OJyY4Z?z3!Bq0fJXWd-IEO_x%eqA4 z(xi5#VSyh&jt6WJNnU*mR7#Eu)|buAZ3lFA$xdsP#c=QbS1`AhiB)Uq+{_uv&$Re1N$3 zDzHPYTgeyEeIPC5x8zlT$V7L(a}=G2Nj*yIuRu zjtoH#)HQw?fSV393MVSp(y2DFjoqo7cJgV!e(_cyc^Th-Bgoa?bn;fh( z1Baf*Z*GPuIwhtwXklB|y9jGPoDq&4RHcCcBG3|TE|?j@(|F(njuexkt3fJ_jvAtH zm!LR(o`KzkFIJT?csP<-lG@H#?y1X6I+)J;4v*j!1o(^R9mM9&57fe%Ggx@xd%-ny zvn3+y@$s$m00W&NlPs9j_p(7DBUc$mQfDjvjynT<{bfCcfhKFl2*YJda~)*dTIzr; zB)(}q*lPM5V?b=~w&Sm{tvp$NCA;11KLBgui*FwL)W#`0m|vbvGQ9&PiWI09YXAIH znJ%@)(W|mD@N=uSU>i0a)Ntom)1nUynB0LqKSoRukt(`Yi$~GsH<>L(7BWRYZCDHTfM3=|Y~~|>QKtXI zwZg2I+;7+M6Vyw&pr-|1txH!eB)522`WQ@FqJeGj2Ojtx8;duuTL*mra}zZ9$4=_% z6+|zneOZL^Z~%sK8JzjVX$MFv5#6cCr)hlQ*8PJU1@#>lwp;L>Nye(uWi zb%>mkPCte%tJJ$GAr;`k;>n*>91tl=zUo&4*W1a6vN(Un?8k-7u-eg~2LraoD2^D} z_{|W5Y-gH!%pxg3Vs}(eHK8$|($z07;DoO8@7&z2SF!CTgdQ5HYK%5_>^&unrE>Ia zlKZrt=qRoLt?)5$b?1(JG2~?OM>y>X9kLl@*@P|1_Q~4(4fq3ztXY_?S<%qsE)DemHoAn-F z&a&%_Hvh{F<@8!Iu6$*$X=1PuZ!6V^eUmD8ZOU7(>~3n;?utr{(e!&HUO<>soM*P2 z9qy`cx;^jwvd6WJJ#XB?MqCD7Dk1e!xoKE9akQglgJ{ zC<58??EkBDXPYpH3*z90omNUHorilH5MFqgjNSaMYmY?ASg;S^bGfVrerc}_%F*fD ztT?ZTUKr=5u2`AIw;@~#KAXAKs8XTReBp$2S#-k9iV|a3QX1kS&*5Z~-Iq{Bj6wTh zEy#=@uDhs((MyKwVdz5MjCl}P*@?}0m~6IMEP$x+15tFYH&VDfy&52Hbi;*azo(bv zwh-janzfQdg9B9z?sBRt^zPtANS~&B98RGryj#ncwMQHvCv?oPEgfeQGf7**wgGpu zn8Hj7%{RVg2nS`6zIdBG(VhlPJVcW=C}^TLOB; z(KQ}kX{nzZCu=D7d5|;Hp$ohF+YVW0YI%rBr3!&G!%QmPslP~0i|<{rzKE^NRx!Fv z1HAC7K0mus9_@T{MRmYpa6^CfY5K2`1b|G8IDjZ7R#wzH_L z#Hb#7*Uu$cLOr;VLXVJ7gb3wIWn-a={M6%6W{l{i!6O=?kL|BCbqDeIq zfomgs91$6+uHL}?j&q2HFQHqtLrwAsHu`jYa6+qyFovZn%LlZHi&0~xX|Nk&7f6z$ zO`0qkTP;lM$J*^Vd^+!NZlZ+lMwyQ{sfyNsXeip9{fg0&{SNc)_|`poi`GGjq|A|3 z)LaVK=#;`Y#xM$OIpu(ilfD-?))2!EuX#Y5SGQKPSvE2qWS~c6Re`PGjsOWRj*c|w zRTYld)GBwcUaVz<#^to>yFcFpg8qfCov!)3oMHv{- z3_gg7;`u!$$!I++FjgrKmAbBH9_`SWR8}&nE#`Q!((E%kq&#-@p0zmJPXsf^x;0fH yzW@#rAkvd4jdF?K(d569xkak+XQqMLVn3#;9xzk5_DUpS#VU4lp?wy8(SHE;%J;7T literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Blue/images/jbox-loading3.gif b/apps/static/jbox/Skins2/Blue/images/jbox-loading3.gif new file mode 100644 index 0000000000000000000000000000000000000000..770540141dc1dd61708274fa044523cc4c02fef2 GIT binary patch literal 8778 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Blue/images/jbox-title-icon.gif b/apps/static/jbox/Skins2/Blue/images/jbox-title-icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..b9c772fb5dd615a76731d4c119ff9fe5ea34ea5e GIT binary patch literal 73 zcmZ?wbhEHbBe?# S{fN*C-Grs4uTF_ESOWmk-xUJ@ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Blue/jbox.css b/apps/static/jbox/Skins2/Blue/jbox.css new file mode 100644 index 000000000..ba84fd256 --- /dev/null +++ b/apps/static/jbox/Skins2/Blue/jbox.css @@ -0,0 +1,41 @@ +@charset "utf-8"; + +*:focus {outline: none;} +/* fade */ +.jbox-fade{background-color:#000000;} +/* drag */ +.jbox-drag{border:1px dashed #0097d4;} +/* jbox */ +div.jbox {padding:0px;border:none;font-size:12px;} +/* border */ +div.jbox .jbox-border{background: none repeat scroll 0 0 #000000;filter:alpha(opacity=20);-moz-opacity:0.2;opacity:0.2;} +/* container */ +div.jbox .jbox-container{background-color:#ffffff;border:1px solid #999999;} +/* title-panel */ +div.jbox .jbox-title-panel{background: #0097d4;background: -webkit-gradient(linear, left top, left bottom, from(#1aa2d8), to(#0079aa));background: -moz-linear-gradient(top, #1aa2d8, #0079aa);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#1aa2d8', endColorstr='#0079aa');border-bottom:1px solid #999999;} +div.jbox .jbox-title{font-weight:bold;color:#ffffff;} +div.jbox .jbox-title-icon{background:url(images/jbox-title-icon.gif) no-repeat scroll 3px 5px transparent;} +div.jbox .jbox-close,div.jbox .jbox-close-hover{background:url(images/jbox-close1.gif) no-repeat scroll 0px 0px transparent;} +div.jbox .jbox-close-hover{background-position:-16px 0;} +/* content */ +div.jbox .jbox-content{min-height:24px;line-height:18px;color:#444444;} +div.jbox .jbox-content-loading{background-color:#E6E6E6;} +div.jbox .jbox-content-loading-image{background:url(images/jbox-content-loading.gif) no-repeat bottom center;} +/* button-panel */ +div.jbox .jbox-button-panel{border-top:1px solid #CCCCCC;background-color: #EEEEEE;} +div.jbox .jbox-bottom-text{text-indent:10px;color:#444444;} +div.jbox .jbox-button{background: #0097d4;background: -webkit-gradient(linear, left top, left bottom, from(#1aa2d8), to(#0079aa));background: -moz-linear-gradient(top, #1aa2d8, #0079aa);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#1aa2d8', endColorstr='#0079aa');border:#004b6a 1px solid;color:#fff;border-radius:3px 3px 3px 3px;margin:1px 7px 0px 0px;height:22px;cursor:default;} +div.jbox .jbox-button-hover{background: #0097d4;background: -webkit-gradient(linear, left top, left bottom, from(#0097d4), to(#005b7f));background: -moz-linear-gradient(top, #0097d4, #005b7f);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0097d4', endColorstr='#005b7f');} +div.jbox .jbox-button-active{background: -webkit-gradient(linear, left top, left bottom, from(#005b7f), to(#0097d4));background: -moz-linear-gradient(top, #005b7f, #0097d4);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#005b7f', endColorstr='#0097d4');} +div.jbox-warning .jbox .jbox-button-panel{background-color: #FFFFFF;} +/* tip-color */ +div.jbox .jbox-tip-color{background: #0097d4;background: -webkit-gradient(linear, left top, left bottom, from(#0097d4), to(#005b7f));background: -moz-linear-gradient(top, #0097d4, #005b7f);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0097d4', endColorstr='#005b7f');border-color:#004b6a;border-radius:3px 3px 3px 3px;color:#fff;} +/* icons */ +div.jbox span.jbox-icon{background:url(images/jbox-icons.png) no-repeat scroll 0 0 transparent;_background:url(images/jbox-icons-ie6.gif) no-repeat scroll 0 0 transparent;} +div.jbox span.jbox-icon-info {background-position:0 0;} +div.jbox span.jbox-icon-question {background-position:-36px 0;} +div.jbox span.jbox-icon-success {background-position:-72px 0;} +div.jbox span.jbox-icon-warning {background-position:-108px 0;} +div.jbox span.jbox-icon-error {background-position:-144px 0;} +div.jbox span.jbox-icon-none {display: none; overflow:hidden;} +div.jbox span.jbox-icon-loading {background:url(images/jbox-loading1.gif) no-repeat scroll 0 0 transparent;} \ No newline at end of file diff --git a/apps/static/jbox/Skins2/Gray/Desktop.ini b/apps/static/jbox/Skins2/Gray/Desktop.ini new file mode 100644 index 000000000..09485b11b --- /dev/null +++ b/apps/static/jbox/Skins2/Gray/Desktop.ini @@ -0,0 +1,3 @@ +[.ShellClassInfo] +IconFile=%SystemRoot%\system32\SHELL32.dll +IconIndex=161 diff --git a/apps/static/jbox/Skins2/Gray/images/Thumbs.db b/apps/static/jbox/Skins2/Gray/images/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..c9e4ec7f9b83549292374f18f89d40f5000418c4 GIT binary patch literal 33792 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Gray/images/jbox-close1.gif b/apps/static/jbox/Skins2/Gray/images/jbox-close1.gif new file mode 100644 index 0000000000000000000000000000000000000000..a87057e8921fd316e5d6d690138ade8ec67c0f23 GIT binary patch literal 1221 zcmeH`SxggA6oyB^GA=D!hD$Lc$Q%Y2L|aN9iRe~ zpYoG_A1Lt>UXRz~_P9Q{BuN%UNf4q8!;++5l4XwP8J7Lc6QTmcGN2+9qG>u12>3~o zz%ZN5W|4tVj7Fov&`=~235UZx&vP8dvMj?eg98Kop->-92Lr$iib$W&M-ag5al75U zF4qUAvj@k!G0bkWSyA-8+1y3>eSVSvMSY;-U?3Qv$Y1T^-45{3ZnN5~miOi^5Q8E~ zS(4%%2m7~PE|;qZz;PTK8xV@3m6erXO=Ii&fBnk|s74aUL68Yr z7Kg_F1O$&l^VX(sdZNrLfZ5Cnyt-YzI7MCbQAJE^yEtodMPhBKx-Dl3((v$UM`3Hu znr6+uur#UR=Df#G(4AZnoOVQCuiU*MY39<6o!dqVu}e49Wf?D8>XiEW^=DF$bIzkv zFJ$OKn*H`pxZ_ciqsb8NH1#3n3HP@gcxh@`q%EsDsM+&)#`2*l`tBG$Cw0{!?Ji`bQRTQaCEXdxQ_P-whk{!lD4e3lv{$42G7fHjgJfyw zXYChn_UHL_x=+1pP_NtZePL0(ZrXx%Q_a<_?V`6rEKly`tXS#oY{QIR%6tR4{prL@ z?(UN3RO19qIk9Y8ij7EEf10k^o^K?|R%(CbzW!=0zPw`X_0Rg`x{~UKwBwl^K3msh z!Rwk3NTt>xP+nTr!e$g!zbcyfNvB-J;J>*$ro}!MYqYwZ7`4BRyeji6wRS J>gg%anx8VZ7x@4H literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Gray/images/jbox-close2.gif b/apps/static/jbox/Skins2/Gray/images/jbox-close2.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd2dde9009dfd7adbd272044c03a6f57d1a34701 GIT binary patch literal 791 zcmb7>$xjn;6vwA6O9hlg8U+qOqksl&0we;0tU@)4;6cEIAP}@zV2p4e#zR455lny! z4P20TGDeLd?g}JwQ3*5io2}D!*3MSIC@1uS!=K>i<(=O9=6%0;wHIm%i`vqmcu0XE z8~|O{B}rm~!9c*zFbqi$q|rDa2@*q5fMKel(lj0L`$HiqBuPBaF^tdH<~WuBKoEpL zAi#4RO;MVr8-)X06ogPHq{xaWiX6)U3>A0*+XuyQAS<#ch>9WufGV=g_-JGUp=nCj zG?opb8;GuJ0AQjh5ClO}w5q8XiiPzsO_PQNLEwEfg(3(|k^7Drnj}fhz(}I$IF3^U z0Z`2FY6LQ3$+7|fPLjB)Dh33O1p`5rV_B9nzyV4bQ3+gAMPo^R_LaXod>(Y3w3(M?fQRIm|t2`)+ui792L zi>cnStUiC^ z5E9qUBv)QKQ8j4(IFxcV&ZI$Z>5*@kkGdj&9)|>WMhwp7?N5#Q0 zkm;(Y1-Lt6oRO$0V$5Ao-~Wy@MaHDU-36{G;kxC>!55w7?y40_e0+aKiF1eFK4eWO z*&68JJ%g#0N!GeM<<7^Jp~k1Xzl5*j$u93x&)xR5Q5!r7(LV+)o~)WeFT|&m&!_b) z6-YbJo4o+O$gfl^z8UhrozBT=5HEYU>XC@4#2Zx}`*Pyv@ztofzVvhLORm+Czw_nL F*?;R5w}Aiv literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Gray/images/jbox-content-loading.gif b/apps/static/jbox/Skins2/Gray/images/jbox-content-loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..f817345557835d2524ee7f4e75ce00cc63dcb580 GIT binary patch literal 10810 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Gray/images/jbox-icons-ie6.gif b/apps/static/jbox/Skins2/Gray/images/jbox-icons-ie6.gif new file mode 100644 index 0000000000000000000000000000000000000000..201b912e0db150b0111539e1ec35b2555b618b60 GIT binary patch literal 2767 zcmeH``8yQ)0>)>tj3vz^Mq`^{DEp8mq3)QmRW3q{W63g>q|Oiz33o=**y0Q!GaWUS ztb<6XEMs3P$=cXMLMj?@bkg^nbN`9^%YA=%pZB--c|Py++MTpDJLdZcf`x2D{t*Cx z*Q8j`qEsZnJZw`gZdWPkP%Z6LtLVX1_GvzPsr~r1PW_O6{g6T9h+)I9VdIF=^Ks*5 z;o;WFBh5n7w&|lCv&VWCEPED?_bi-vwL*TmOn$XOd9`Bw`lHRzXZztVCr39I*yC}E&S#*F8Vt-k8LUBVaE@;pL&xoMa8nmAR zU1vehFQC^83|s+2F<>Yb499_SCV0yNl`1E#rPCJ)T=z+54CR}9{j zfCWBSs053Z;C&5PdJNXO!S)C6A{b0$fhjJSEdaBHV7>w@)_`vd;M?Ng@c%o)|LuQ6 z0JkFsg+S;K{eSBJ`2++3AW$h4duLv<0z#g9sP|Dmg%Lbs|9jF>epe#u;3iV_d`!o&l_EACAOt#T~@4|PzY_-CZe{w-qr>US3O+au$C&-(AUR0^CF-y8T}-- z`#kd%F(mr_Mz~F1=H%%t&yDcF5-zdYzk%bW9QAp+S@@%VbjDO1OiCFOs_L9w*GPj@7Kx0XoZ-H%vb zLEbf@BJ-sp3n1^HO8iTxf)wxTT1A=hMdu_hrrXmIktrk$*C72p5)+e*`moPoZk0UbPk_2mohmb zjkCT?lZ74?hs*4zdT=3rnL;{54o!l}D5QG?qbc8gOBAnC6Z92H!I!>aF)t=SM?5n`^^jZa*G8`Qu)UjbiHlhe((WloK5MdG zE<`hE1D`$65qIY6Vaag)I|kPlc#?`CQ_)6p6!P>o3vYK2=6Cyy>Fj=kvvgCxu$xBMLRMp`A)$VdO?R8B?~SnSI*^(E z4MWLeJ6E6Z`$|-h6`&|O{iN&R%w*Z38b7<<(*-UWnA*0Ac*0FRg|9l!Sw#n~m=);l ztMR6k%A;0CJ1-`DJsW!grt_Owkzb%OE5~m?$Ax5n@q}ykR2c)!Ak^um7<)F2j2UX_ zkQw%a=c%Rg2V%3W{&inOjEl}z_3m<5sJny3k2r%LQGl_TE&6TlHk;UoXPSo{Cd)vi zb|U%=y2`4rzZNNAR+$nPZyDV{Jt;)@xH&C&X2o?{ylqpHcG>IN_K;d$KQBd=<@;21G!7nH*R7wMBz@IVr^^KK|TOJ0Y)=Rgz`cSr` ze8M?VA?=W|yc=rOP0XrojmiiR=KessWpZxg4&@57HHg}hbF%)hRQ=cU(qd{OUw4)mknu&INkJp&Z!IKhVsUCoQbC z3TD*kU{E2&bMGaVYw45nOLES-3@iLuAFqVa9_z`AqpS7w-qEW1{s&*o#l%B41iBdy z`K$MjHrvHz-H;-e73JA-{mXIO5ivONNT(CsWB|2FW#W!AoLS$$+^e-XC+4(D#v~yF z;6Co3i*#HQ6KJvd*WUdk;!hUiAaHHcycB`wp+7W4iN$M9ISh7LtiC}Swfo`T7kk@s zYit4wyb&CP7?SRs@~PgxYV$%7dGMW}Wc3q@jE0`(>4^@$ zFn*4>vqwANBW9bthYR5PIPDzU@Uzkl7*b?im*IbQWxFI#3+jlE=vQcPQWdnmjEdB!W$Aymo literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Gray/images/jbox-icons.png b/apps/static/jbox/Skins2/Gray/images/jbox-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..f72f2924021bf6a23d2df61a42f109d7e49bcef3 GIT binary patch literal 6663 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 Rj`9Ei002ovPDHLkV1new3K;+Z literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Gray/images/jbox-loading1.gif b/apps/static/jbox/Skins2/Gray/images/jbox-loading1.gif new file mode 100644 index 0000000000000000000000000000000000000000..974895441a27b5e6dcdb282f227a594db159003a GIT binary patch literal 3199 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Gray/images/jbox-loading2.gif b/apps/static/jbox/Skins2/Gray/images/jbox-loading2.gif new file mode 100644 index 0000000000000000000000000000000000000000..70a4a9cd9467f73e0c71132df70d84714ad9fc8b GIT binary patch literal 4167 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 IheTiWpW9m)-v9sr literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Gray/images/jbox-loading3.gif b/apps/static/jbox/Skins2/Gray/images/jbox-loading3.gif new file mode 100644 index 0000000000000000000000000000000000000000..1f1ff2ac848f00e0b5281532c690acd6c098f720 GIT binary patch literal 8778 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Gray/images/jbox-title-icon.gif b/apps/static/jbox/Skins2/Gray/images/jbox-title-icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..b9c772fb5dd615a76731d4c119ff9fe5ea34ea5e GIT binary patch literal 73 zcmZ?wbhEHbBe?# S{fN*C-Grs4uTF_ESOWmk-xUJ@ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Gray/jbox.css b/apps/static/jbox/Skins2/Gray/jbox.css new file mode 100644 index 000000000..62fc4ba7a --- /dev/null +++ b/apps/static/jbox/Skins2/Gray/jbox.css @@ -0,0 +1,41 @@ +@charset "utf-8"; + +*:focus {outline: none;} +/* fade */ +.jbox-fade{background-color:#000000;} +/* drag */ +.jbox-drag{border:1px dashed #ADADAD;} +/* jbox */ +div.jbox {padding:0px;border:none;font-size:12px;} +/* border */ +div.jbox .jbox-border{background: none repeat scroll 0 0 #000000;filter:alpha(opacity=20);-moz-opacity:0.2;opacity:0.2;} +/* container */ +div.jbox .jbox-container{background-color:#ffffff;border:1px solid #999999;} +/* title-panel */ +div.jbox .jbox-title-panel{background: #ADADAD;background: -webkit-gradient(linear, left top, left bottom, from(#B5B5B5), to(#8C8C8C));background: -moz-linear-gradient(top, #B5B5B5, #8C8C8C);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#B5B5B5', endColorstr='#8C8C8C');border-bottom:1px solid #999999;} +div.jbox .jbox-title{font-weight:bold;color:#ffffff;} +div.jbox .jbox-title-icon{background:url(images/jbox-title-icon.gif) no-repeat scroll 3px 5px transparent;} +div.jbox .jbox-close,div.jbox .jbox-close-hover{background:url(images/jbox-close1.gif) no-repeat scroll 0px 0px transparent;} +div.jbox .jbox-close-hover{background-position:-16px 0;} +/* content */ +div.jbox .jbox-content{min-height:24px;line-height:18px;color:#444444;} +div.jbox .jbox-content-loading{background-color:#E6E6E6;} +div.jbox .jbox-content-loading-image{background:url(images/jbox-content-loading.gif) no-repeat bottom center;} +/* button-panel */ +div.jbox .jbox-button-panel{border-top:1px solid #CCCCCC;background-color: #EEEEEE;} +div.jbox .jbox-bottom-text{text-indent:10px;color:#444444;} +div.jbox .jbox-button{background: #ADADAD;background: -webkit-gradient(linear, left top, left bottom, from(#B5B5B5), to(#8C8C8C));background: -moz-linear-gradient(top, #B5B5B5, #8C8C8C);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#B5B5B5', endColorstr='#8C8C8C');border:#575757 1px solid;color:#fff;border-radius:3px 3px 3px 3px;margin:1px 7px 0px 0px;height:22px;cursor:default;} +div.jbox .jbox-button-hover{background: #ADADAD;background: -webkit-gradient(linear, left top, left bottom, from(#ADADAD), to(#696969));background: -moz-linear-gradient(top, #ADADAD, #696969);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ADADAD', endColorstr='#696969');} +div.jbox .jbox-button-active{background: -webkit-gradient(linear, left top, left bottom, from(#696969), to(#ADADAD));background: -moz-linear-gradient(top, #696969, #ADADAD);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#696969', endColorstr='#ADADAD');} +div.jbox-warning .jbox .jbox-button-panel{background-color: #FFFFFF;} +/* tip-color */ +div.jbox .jbox-tip-color{background: #ADADAD;background: -webkit-gradient(linear, left top, left bottom, from(#ADADAD), to(#696969));background: -moz-linear-gradient(top, #ADADAD, #696969);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ADADAD', endColorstr='#696969');border-color:#575757;border-radius:3px 3px 3px 3px;color:#fff;} +/* icons */ +div.jbox span.jbox-icon{background:url(images/jbox-icons.png) no-repeat scroll 0 0 transparent;_background:url(images/jbox-icons-ie6.gif) no-repeat scroll 0 0 transparent;} +div.jbox span.jbox-icon-info {background-position:0 0;} +div.jbox span.jbox-icon-question {background-position:-36px 0;} +div.jbox span.jbox-icon-success {background-position:-72px 0;} +div.jbox span.jbox-icon-warning {background-position:-108px 0;} +div.jbox span.jbox-icon-error {background-position:-144px 0;} +div.jbox span.jbox-icon-none {display: none; overflow:hidden;} +div.jbox span.jbox-icon-loading {background:url(images/jbox-loading1.gif) no-repeat scroll 0 0 transparent;} \ No newline at end of file diff --git a/apps/static/jbox/Skins2/Green/Desktop.ini b/apps/static/jbox/Skins2/Green/Desktop.ini new file mode 100644 index 000000000..09485b11b --- /dev/null +++ b/apps/static/jbox/Skins2/Green/Desktop.ini @@ -0,0 +1,3 @@ +[.ShellClassInfo] +IconFile=%SystemRoot%\system32\SHELL32.dll +IconIndex=161 diff --git a/apps/static/jbox/Skins2/Green/images/Thumbs.db b/apps/static/jbox/Skins2/Green/images/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..c9e4ec7f9b83549292374f18f89d40f5000418c4 GIT binary patch literal 33792 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Green/images/jbox-close1.gif b/apps/static/jbox/Skins2/Green/images/jbox-close1.gif new file mode 100644 index 0000000000000000000000000000000000000000..a87057e8921fd316e5d6d690138ade8ec67c0f23 GIT binary patch literal 1221 zcmeH`SxggA6oyB^GA=D!hD$Lc$Q%Y2L|aN9iRe~ zpYoG_A1Lt>UXRz~_P9Q{BuN%UNf4q8!;++5l4XwP8J7Lc6QTmcGN2+9qG>u12>3~o zz%ZN5W|4tVj7Fov&`=~235UZx&vP8dvMj?eg98Kop->-92Lr$iib$W&M-ag5al75U zF4qUAvj@k!G0bkWSyA-8+1y3>eSVSvMSY;-U?3Qv$Y1T^-45{3ZnN5~miOi^5Q8E~ zS(4%%2m7~PE|;qZz;PTK8xV@3m6erXO=Ii&fBnk|s74aUL68Yr z7Kg_F1O$&l^VX(sdZNrLfZ5Cnyt-YzI7MCbQAJE^yEtodMPhBKx-Dl3((v$UM`3Hu znr6+uur#UR=Df#G(4AZnoOVQCuiU*MY39<6o!dqVu}e49Wf?D8>XiEW^=DF$bIzkv zFJ$OKn*H`pxZ_ciqsb8NH1#3n3HP@gcxh@`q%EsDsM+&)#`2*l`tBG$Cw0{!?Ji`bQRTQaCEXdxQ_P-whk{!lD4e3lv{$42G7fHjgJfyw zXYChn_UHL_x=+1pP_NtZePL0(ZrXx%Q_a<_?V`6rEKly`tXS#oY{QIR%6tR4{prL@ z?(UN3RO19qIk9Y8ij7EEf10k^o^K?|R%(CbzW!=0zPw`X_0Rg`x{~UKwBwl^K3msh z!Rwk3NTt>xP+nTr!e$g!zbcyfNvB-J;J>*$ro}!MYqYwZ7`4BRyeji6wRS J>gg%anx8VZ7x@4H literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Green/images/jbox-close2.gif b/apps/static/jbox/Skins2/Green/images/jbox-close2.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd2dde9009dfd7adbd272044c03a6f57d1a34701 GIT binary patch literal 791 zcmb7>$xjn;6vwA6O9hlg8U+qOqksl&0we;0tU@)4;6cEIAP}@zV2p4e#zR455lny! z4P20TGDeLd?g}JwQ3*5io2}D!*3MSIC@1uS!=K>i<(=O9=6%0;wHIm%i`vqmcu0XE z8~|O{B}rm~!9c*zFbqi$q|rDa2@*q5fMKel(lj0L`$HiqBuPBaF^tdH<~WuBKoEpL zAi#4RO;MVr8-)X06ogPHq{xaWiX6)U3>A0*+XuyQAS<#ch>9WufGV=g_-JGUp=nCj zG?opb8;GuJ0AQjh5ClO}w5q8XiiPzsO_PQNLEwEfg(3(|k^7Drnj}fhz(}I$IF3^U z0Z`2FY6LQ3$+7|fPLjB)Dh33O1p`5rV_B9nzyV4bQ3+gAMPo^R_LaXod>(Y3w3(M?fQRIm|t2`)+ui792L zi>cnStUiC^ z5E9qUBv)QKQ8j4(IFxcV&ZI$Z>5*@kkGdj&9)|>WMhwp7?N5#Q0 zkm;(Y1-Lt6oRO$0V$5Ao-~Wy@MaHDU-36{G;kxC>!55w7?y40_e0+aKiF1eFK4eWO z*&68JJ%g#0N!GeM<<7^Jp~k1Xzl5*j$u93x&)xR5Q5!r7(LV+)o~)WeFT|&m&!_b) z6-YbJo4o+O$gfl^z8UhrozBT=5HEYU>XC@4#2Zx}`*Pyv@ztofzVvhLORm+Czw_nL F*?;R5w}Aiv literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Green/images/jbox-content-loading.gif b/apps/static/jbox/Skins2/Green/images/jbox-content-loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..94d46c129f6bba02f2f0b230d9f4d2c7a48e1412 GIT binary patch literal 6610 zcmbW5S2!H(x`u}_hB11{5DYU2LV}PeAqax#(TQlmNR(*NjUK)C-Y239QKR?Xd+)tO z|A{SYueJBS);ik%*?agM+}Hhl&+|$~ieJEB7C;VY1pqobI~y7rva_>GN=ga~3x|e= zrl+Up=H}Md*GEQ1nwy*3+uN(Ft1Buh8XFt?`}>cMj&^r<4-O9M>gsxXdlM28#>dAo z7|hbrQfq7L*49>PYHDFMe1?JeUifr6y!o0norl01*NfLH(kfbkLsga?2F zIPPx1pJxC-w~G%#jZvv)`9&Xhep+)3*jX$%79F@A+%~3LOJB?3#AMraeH2U^#MsFe zY8OuyIIzcmX9>YFXk_&U#g#hG5>_pAoFw)sO&$ z+up;;HY@_m(+e1k4owL6jk41>A=G>L))+uR3<6~qkz-}!ms3?x5gA)smQ_|ls%z@% ze>7S**EiJELR%`jx;uWh)%3M?m-hAzG)=Y4w9j>plr$56rNZW*1VTW#U>F`QA;H%( z05$Xo@A~@J>G|Q-&cp#a4-Lfc7IJ*dDCP|y-FN96Ol|R^1Szz_2A8EgsDHWX!b+E< zztBiV3gd)46Y<4tQxMvdVB$!xZRxuRkQ)cHTJ?_QE)1~WDS=by8CZVu$UO1bi3 zSIzHBSBny9s~O23!f5B&jBUl3Ys5Wd=iow%Zg6T_zp;;h{lnYS!P>N|Q0UxJub$%K ztS#yD<97`ngcFjw{3ZJBpXlH$v|1%^yT4P6_$F%|8}_0(7bL%l?_m*=2p)3CK13@J zmk1a9p4qnFo$`3w@skdH$}v~_{ydk^_1S)1o6}!Kbh;PEt0iGAzWd2ldz&q`?=>wi;As-93#^Z~HHBg#jy8iC$>0V!2Sh2gi^UuS%pdXLZs(xSJtU0`UyW!}M?MPzX z9ynuCLI=>sf;umzTahYsYWor!N;3lbWa1h9`?NHp{qA|elE1u&;Li-G)iPVeUt|PC zS&j0kjl3bXi#G_FVv8}d75Z(a8^*uwxS}e~{>mtFk`6^4HCEc56-6x9)g8owr$m5# zF?g|nt%r*ljWZb6U~$)%mB~#sv>eOTw9=#8&@j7-?uY2>4?Dg+}{3H z($2n9@O|8Tr|^N#|DSgbny}8*&_>2^Y^A0g2?jixfz4=Mm~MGskNW5-PorV}X>v?{ z!yfmPu8PlE+9O@#2HS5ga3Tkkho={orQb)Sk0ToRQ}(t4OoH_|ePUdQk{uF1Llk{Y#&-F|vFOXL*tS zT?@6Y5W{1;Z@c7^`M{_*m|avm^CcMgnvuogl9yfDT>cx6T1^c5Xc2FNY#;mC_GpQ^ zzrmVdY-SLY>!BxfDm?#Hb<1YEFN~pizS`|}o$%u`z zwmiS*zi~OVrv13SZc&dY_HhxgD>u%&hw0Z9I^Qvm`TW^(uGaCetGoj}Xz)wFA@E_x z#>WJ~^))_tXIeqp@9Xo^QyjR*Urtg99ykayeLIiGye9y$YW!!3K6%O~=@z_i`DZO* zCb>&KRN|9SR&e#sB|qxGFXX#(&Jr|-wM9&a40C4u+<7VjSrnXHf) zsI(_$Q3XMQLx@3g6%v&&`!0(!6aIwmO$rKTjTt}IoZ)NOT03)N3Z2t zJEJ{yo#5*C?&EO3xu?Z+2cx1kAu67VDA_eB4M~-e6`ab9f#mz;6n-@*OE0b{_)(%< zllMI(7g1DK*-+I~-kEJ0jY9~;{TGhYP}s;AbkcQZ4mk>LhEG$^&Tkm3>}_uEt}Ptw ztRmJIrw&i|Zw}jPUn!>5qd_lr3GQ_+5WFTN3lA4nhGM|v*&*q$re)5M`^=8dagTu= z5iO8gV-96fbXnwsx9-MlDlAD?g-(`Vh2YuFSSDRr;9fT+3W&omWO9`gi5LXfz8Mb*IyXe)x&Atn zD>*OHZ}uJPKK-Ea>0ONn@JTF`x@4&$@kxHQZkscH2op_h3m(yMDwnC0XAHKF z*k7fo@tJ?l(h}&dLWaD(VV%PkF2YR-pCzR>R+aquCHtv7eb;Ivzd}yye}ah0C1w13 zPRv#;K}BPeH?>KS@XLgvqs{r)L`H_w|EeRY3f_43oJMs-vqN33yOJ^iL7Eq5c06|3*t{BM@6Q`NLoD>lSPmj;cPRWHNBg4LaLlh?FXOtDg zOVeUmpg5HrP;x>r^B)s3-=#XNwOy~LkEt!QySIOAXmW631Uz-e;q378!s<-d^!(x) zVzl#9GY zqg$i0di(P;C7<+R=^87jh09sB;CKVv5=tiI7hH9?+!aSD(*NAX)~GL<*?WC=*^8AJ z9ISFYt9okCf_ZD|o05o9ohq=JaR^9qILKD?RHXblZN1e%-@KhuJ8NYd?KBYk{*jv% zmd8knM&6@mLMPyX7ffOEbAk@8k1&BAB#J9t5xX*^ z6-$;k-Th+8J6+l1y6Y8CX;nEhSYc5ZB&JNMU~lk&TDGdu?}z;b&6m0W$2ou4x);Kq zJ(5+=oP~V_;lo`7GYr~f%UB70ezv(1CW_0p8ZJSFT8)rq`Mbi)K4_lhy%Qc<=1zD6 z5k^9sghj!T;zM`dGb|em_RFu|C~=T`-?Onc^dscm&I-!j!xdrYj&S)5*THgv%V}{# zp};^mK0a2AC1LDc_9oe;FsDH>eG^mDF+uq`1*mMM+(PBM*e&~(S6fn_Tvu8Ay;O8H6 zJ$@k71Lpz^caCf%uUO!92~VC(9MUv4(2P;)8RW4L`pVZX6AL64B@(ht!QPsS%+rf8 zr(ESLQZ0A5xvVgsOwz75loYCbKXnhnD)A9E+9VUsxHW&`cy6kffOS=Qt)s!k((D3! z2_?ZQF^~(Udu*xeSY})o@z7|zX9W1J2TVS_dmX#`Bv@oFm0nBRet0}wW5Fi{W#>=y zowAc9Aj{F&&mfn&pg~KpPUw&lm-=w&^cpm_1Akh6j2p8 zRL-_&SSf$S^6GJa^1vP7?0(bFfADOe;ZAs$7i~Fdrh%tVb z%13a@Z$>m%IetlkSbvkopI*w;!2cy9*f0R;hZp^c)%+sEdp$;j(#>3qYens8pd?a@ zV6}5R)biBPDCFhwW|lpOM$0(-)%+Q4_z?bAWT>nv>OYg0ofP|T1@G#<3PSfOp^84c zeq^%OrgT$1Nuq*O*Am97+{pJ*Q1tcK_)t2hyUTz*>Ag_J;xz;JPY7E}9oLV3aAR^0 zZf$>{69S(KE7FQE3QiRpACZ(ol;#|lk%~%W&dd(V{f0@%gA~5WXDawwUQt|CnqE@x z19+t5|4#&=cmKcPuAaW6Vd_z2FL+`EHa5pRIgOZ|pIV$5Us+h%T!U}yb#AZk4(;zO zUv3=?`ai936t(ukA|oTSIXZ1*5ch3$6>zOmT5cl6N2<~)r#DIjlRZ^Ac2t&-ib$5e zjYY!>R{f($1@g0DwyPa+9GoJfn!kV`2)348bY+=0v!(=`MhP7)K9nP$#`AttbxSot zMoc`1oiAUlSi3m1*L)Z=8EyQ@vTgc}88Zl9%zT%1#Avq6mKwJz=!w-_y%2Da4)yGC zG1_+xGTt-c4Q}wkdMKjH#y#KWfrOdV3D^c_bemOjB%WEAh3Am7S_eEiH6Iq1Z=vVZ zHnk|o>!~rB%V^o3s(h!vvvtupmC-5;1M4^lOcW2a@MyTyiB2z%6+awEofViV8cMSD z;FbSn+`l257xwWtkJ#z{P>275Mw81~%2Dwv4yT{)x7QUL%{T+zGI)tz#D@G!AE4UO8J6@mnv51m+y}E1i*BZ4ZucJnngUhpVN^k#U99vW z02wC2()hHz?wzX(g_5b0J{_oOPq&yXlHz@B- zfq^{AVa>``(oG-m)EC-zE?wfD_|!)>I$C~TFE+31^nmu3d*|ST1^Sa05@_hEM(+FA z!5--PM}Xm<2qUPdAhBTyNhyfHG@=Z*nC#pv=EUR=@dfF{U&~8#DwqoMF_kz^taJhY z3tlsIYkOxz-vF`$Jls5r7@ur`4Nf%mFN_T>Ps3+7R%h0Gr*^mY?dKQY9ITx6ynloZ zEVyeMckorLv zqBW93v1S)jX515u!_Bi}8sybVlw^o?m@tCI&X9OaBY9=Z)|??9CL(V>%qEYK%+brC z8QJc{(Tp*_p{d-SjDBC6D$j2e+3j_YuI%ROX`Zf+{R(b;5>IhgE$>Y`j@&a*oLZM7 z8mZoiJ;VBt2g1LT_zzc`VhCDtXfMTdWZP_VV`!aMJ8Vg+s1#-kp;C=wPr``Xvk;<$Lk zW!$zdkY!r;yKe0yUbw;Z#X`Nw)%o6eeXy>H%js#osHgbPdeud>#y#&vJx>gGe3Cbl zm}Znuv2r|vLbJgn9*BUIKgH3o>(w|mi7_)mn<hSR%p+)EA1 zE|cdR=q4PTRzvdUOiHc`8wOtJeROvO0{@4gbS; zo!!&pZ|BEmmmyP#nKwf#i)*_h3tLNvoAB-Rvy0Q?^Ks9|EYBUsdjRd+N=vpP}bvZ5AFulRsPIG+E%E-}Ib&gNf}4k?vbw=pvv< zy^R{$DQi73`AO0oNBK+t0kqH$TEdzW)c9A)a%j+Wr1^A-MUTQ3b!E^4R!RNc4 zrCcvwh!BmJg4f$pUjFEI7C6T4PJ1^X;$~~V*H_q(&rxl?+_Jus`A#?W=CbQErO=Oy z^cz>u=|Wyu!*6%@(?jM53q~iLyf1BvgaL#WR+Mb~Nw!2hUuL{>CC${l2=uCw{OXl2 z68)(nE0;`oo}=ITwO>-EpgL~A)7T_RYnfArzzSqA z&r>zyAXyev4B5X6?@#5G`kMr17nhR8<0VP4agpk#V*AN_s*c5-+Ut0Y{UPt|u2Z&k z@R-g+T6y|}6(4~BoqKcVM5uQLE-FAC0MzLX;Rhr>k$-R~f(jDp8x4<*{}{rOtdqu^ z5tSa7nV6H1mx55u$K+<06=VnUfIvWMW`G6kANArVHMEJT1=^18Y6d4Z4E7A`bao?q zC&y-5=cW<8{U4`>MmEN`=2s><_TaPJpy7I^8gksbl3|fed~);)yf`Z2erribJM@@Q z#1oHzop$q(RDz6*UA=}iGo#g?fZBYv^~n2`H^sqi6Bo%L1&ExEquK{0+9c=BXJyzc zv%{>AB#gpt12=B;XM_bp#=62EC}+t>sH)WtRtad=)FOx&Qpu1(swJBH%>n+iK}&9-O%ac zGFE>8H^}$j+c~cDJa_2bq!l=E?ae!PE1GrwTt6kRaz2w>ceWj)+o_JOZt=EBx~xB# z{p5}cK4a_gC#Es^eQ|O0Io<=?eQe(2X75#+tPGx|_)Dw?OzgDcro}M<4#k4EUR+(IR=sOj+?E7@ULV3Z^4lKyLg2)QRvFzH0O#z zG*gt=va<2?WxPH0b<}iI^|_r!g-tu&KhdU8@0de5UJ5~WrfjS}AS`U{9MGOlsz^Dk zClthRpe{Kf`JLW~qTk2eg(^CYDG`$CgO!cU#lY3?8f;7{ygb#rGUI#okF5IIs`R`% zW@11E2QHZE&!9K-Pt^?sjEqfG4^ht|$H7yB!=o$n?VEFJyGvV$)rGz7$;0Je^V2?O ze;xF<*=iIA)e*zEm|$ppzlukP&_7cO7Fq>FFBi`5Wr!2h4*AHTe1vF^pnHAmCy_w5 zDiex$USrHmW+I3G@a{;U0NUzu)kE@f@(uEsquF9Tk9M6Pro+l%orr?@=5V7FhxAX)~mg(e3A z`24qrhkXqJMAeu?l-2+@bcR|9rzc@cG;8yAAuh5rB(fcy|+MWi)ZNh*fL9KR=V&mrDB7 z@px^_Yi^#d{_<>LDX3vT)y)w`AmLDWonX7!cI!z+jRrzG;htcc$w^0(EG)`&50H3# zx=${5sfulfE`PFOH)@j6pY1&!!s_OGrGfc_#0$p2hxstWfD7M~c{jm6=>!K7N9HbP zftm`V5P}o_`MV9fGba3mR7)>h>UfeVT$;u|C2~!2swrC5_}?}?)Ov#1pL!wmUtSV{ AkpKVy literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Green/images/jbox-icons-ie6.gif b/apps/static/jbox/Skins2/Green/images/jbox-icons-ie6.gif new file mode 100644 index 0000000000000000000000000000000000000000..201b912e0db150b0111539e1ec35b2555b618b60 GIT binary patch literal 2767 zcmeH``8yQ)0>)>tj3vz^Mq`^{DEp8mq3)QmRW3q{W63g>q|Oiz33o=**y0Q!GaWUS ztb<6XEMs3P$=cXMLMj?@bkg^nbN`9^%YA=%pZB--c|Py++MTpDJLdZcf`x2D{t*Cx z*Q8j`qEsZnJZw`gZdWPkP%Z6LtLVX1_GvzPsr~r1PW_O6{g6T9h+)I9VdIF=^Ks*5 z;o;WFBh5n7w&|lCv&VWCEPED?_bi-vwL*TmOn$XOd9`Bw`lHRzXZztVCr39I*yC}E&S#*F8Vt-k8LUBVaE@;pL&xoMa8nmAR zU1vehFQC^83|s+2F<>Yb499_SCV0yNl`1E#rPCJ)T=z+54CR}9{j zfCWBSs053Z;C&5PdJNXO!S)C6A{b0$fhjJSEdaBHV7>w@)_`vd;M?Ng@c%o)|LuQ6 z0JkFsg+S;K{eSBJ`2++3AW$h4duLv<0z#g9sP|Dmg%Lbs|9jF>epe#u;3iV_d`!o&l_EACAOt#T~@4|PzY_-CZe{w-qr>US3O+au$C&-(AUR0^CF-y8T}-- z`#kd%F(mr_Mz~F1=H%%t&yDcF5-zdYzk%bW9QAp+S@@%VbjDO1OiCFOs_L9w*GPj@7Kx0XoZ-H%vb zLEbf@BJ-sp3n1^HO8iTxf)wxTT1A=hMdu_hrrXmIktrk$*C72p5)+e*`moPoZk0UbPk_2mohmb zjkCT?lZ74?hs*4zdT=3rnL;{54o!l}D5QG?qbc8gOBAnC6Z92H!I!>aF)t=SM?5n`^^jZa*G8`Qu)UjbiHlhe((WloK5MdG zE<`hE1D`$65qIY6Vaag)I|kPlc#?`CQ_)6p6!P>o3vYK2=6Cyy>Fj=kvvgCxu$xBMLRMp`A)$VdO?R8B?~SnSI*^(E z4MWLeJ6E6Z`$|-h6`&|O{iN&R%w*Z38b7<<(*-UWnA*0Ac*0FRg|9l!Sw#n~m=);l ztMR6k%A;0CJ1-`DJsW!grt_Owkzb%OE5~m?$Ax5n@q}ykR2c)!Ak^um7<)F2j2UX_ zkQw%a=c%Rg2V%3W{&inOjEl}z_3m<5sJny3k2r%LQGl_TE&6TlHk;UoXPSo{Cd)vi zb|U%=y2`4rzZNNAR+$nPZyDV{Jt;)@xH&C&X2o?{ylqpHcG>IN_K;d$KQBd=<@;21G!7nH*R7wMBz@IVr^^KK|TOJ0Y)=Rgz`cSr` ze8M?VA?=W|yc=rOP0XrojmiiR=KessWpZxg4&@57HHg}hbF%)hRQ=cU(qd{OUw4)mknu&INkJp&Z!IKhVsUCoQbC z3TD*kU{E2&bMGaVYw45nOLES-3@iLuAFqVa9_z`AqpS7w-qEW1{s&*o#l%B41iBdy z`K$MjHrvHz-H;-e73JA-{mXIO5ivONNT(CsWB|2FW#W!AoLS$$+^e-XC+4(D#v~yF z;6Co3i*#HQ6KJvd*WUdk;!hUiAaHHcycB`wp+7W4iN$M9ISh7LtiC}Swfo`T7kk@s zYit4wyb&CP7?SRs@~PgxYV$%7dGMW}Wc3q@jE0`(>4^@$ zFn*4>vqwANBW9bthYR5PIPDzU@Uzkl7*b?im*IbQWxFI#3+jlE=vQcPQWdnmjEdB!W$Aymo literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Green/images/jbox-icons.png b/apps/static/jbox/Skins2/Green/images/jbox-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..f72f2924021bf6a23d2df61a42f109d7e49bcef3 GIT binary patch literal 6663 zcmV+i8u;ajP)KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(`>RI+y?e7jKeZ#YO-C z4>U)jHMAm=l~QXgyjTgv14Fy0yr29wM&9`s~l%b zfnx1HOp0v9+4T`S>myru_M;rErlT_aS z2gRdLuazgOq$j_YJVHJLUkW{Zk5B%13$WQ@a?~h<)DtlQrbMj>3Xw#)m2kx04IFYx zOAjuzzIJRzuSD0c?_ucN7GN_)b7~kL0VM{40mKAPJaWCvJR3&)yMaTLG#;e(p<9}# zaJ`g-UaxCR~g}x(9&$b=Dv5Etj@^F|8}%J29Ut|Fa!v!B$(rm=_Ed7!QDGfRG2|pjub5 zfz<`^7?|x43&X5(2zCts`6wl1*r6ly){KdPhMGQeeK-> zN4YhOUfo4Bv=M`(j%2bQ`cH%RBFeRXgcKe{Q4mV!KzTjPSq73r9R*`D7_F@oRlP#( zL$?G^KD~O6_h&qB?ziXM5WQ|DPnv-*h92DPmoGjw+f?I@5+oQJq^r}9r+6U@?^DGT)`j;Y5xYmB*C0TP_q(>=7G5wf?aLcYM*7nj;}ROF1@a` zeW|I9Qul2$rq|8pNiy)o(1UA6<5zwLxCN{X`ujN7;bkloN$MaPjZ;x+W8oj&rhel- z|B`{eV3LUeW?4-%E-9zXQAr~AX)6-v{kY!x=DQlrvWD^DpAnC^5l!Ix3@-c@hEpzt z(G0GI$z^f~hWa2ne!Z;tHdu5oIB!?;Qqk0gx%kH{*fFy_T4S0#+4SOIDghlJeE8{ z3j#RHiul`a_av3Sal9Je;3%mXiD(dLSX|D$xz!l4F&6J>EivA?bD?$j7kSJwpRjK? z7UxFBhoSEToI9E{${~ud<|$b6^i&T}oha)0=-QptZ@+XZt!~LOCk>0sm^ZgZ zmtJ~!^h7?M$syAxf4DuaurW%IL4RLH^G@6j8=A_~${U)>iN(|F$72fT&w3g3_YoyX zTw$Y6{&0I<@?h6?q9N5RzRxn4MS!hu!ICF?QqFV$%M!=;SoW_yY1)3&|)@71Ve+I zY4>C_Z=n&7DV%Bd5DX1sHb?+1i9WMWO+gC=NzF0Oyq!MMExs2jH(i=Cs$`357VT_h z{_At{R|5!`m~E=5NX!jpAwIVS zTWtk`0S0~#pMLP51{!2q_}io{%Q;XHa{ z-9M{G0X(UC6%Y;)L;iO&NqT)UEuQu3cd>r`uAKdqm)FwLa)9#kTFpG-Rr&dP$z<6a z!NaH=pr?B%_gB|!WS}p|uTIwRzR%73J~zKQS;IhI5VP5s^W2{9Ax7l@5j;pH%jT={ z^Yt0uXi1LEjCs|msjjy4h9oN#FA4yQC(DK}R&)Fn=sgRc{73pZbN(X3$l9j%G3Euy zv6;Si3gaonyh|Qek99xQ#gnR6`@zeF5SUG3ao$Sp2QR1S^_*@VNwU(?a)6a9UuNaX zm-)_jp3Q3B9Xn33V8K>)?(C$wd95ZM(HD7dg@Cn2z)IiMVNI!n(J0b;Wtd|}E_3Y2 zWqPj+r_DfQOC|cQ4kKViz*^&rytg8)QsDdwj8Y8-i#o5G=^;rTgJ0O~9JoUragYBE z9R928x#+4V($D$eN11Qk{ioFz5Jstn!1=;>^u+oXRO3#>lAl~3i8b)}A}5mc(h&s> z)yaCD(9N@LTPq6|Y@PgnxBJO76Hl1eVkw&}d*Fd18BLtZBZeb>w?YUxc8x*Lh^9Yk zVh(uf5sk(*ojd3mQQyW8A{_C%)6MC3Gd`le(ehl#(u$%^ll7iekJJCD{uco@ya)>) zPV1Jgk1{vqxuEtnKBD$r5RZKraCk7O%&tmo}<0}XkH#;VqpbJT*>%`E$z*R0F6t^am}$MU-$kXmo9uszO_Mt zKo}*ifB`1@PQK?jmJkbrXh0eAq`lF~L8h8_(ax!bT>syV$d5IS)Pb4yC0{*Ka&a9>L}M z7B*WQ7K=0KoD(Php2LS<(ZnMHbpj?vN5}J;cVZf?a;}}booz`+d>M~TRLr~We=rYTnJ(g=)mzBBG%zNO#x~%5S#3KSOFlkN!^v)}0OFciNEmviL2KgnR;7t+kD znMbEyiI`QWf%EF6fk&1@?Ay07&BUqZ&6GCe;t{zOV)=vVWuN_{HuFw*CSf8LJ(@le zXUlmzUPwwC{!l`eLwxknOBp}AcI`af-M`n}rU-Z-qG=Xkrb6v2g4%cbV+`?#x&%@4 z^T_x_%5Xh>2>G<1FWJDQK`*@~sSdTHTlZeGg+4;)EOJ7ZxChU?l{EM@H2af&^AmgDtyY2q=; zk#L7(vaA+F0lVEoa9F;f2DaNR2#KYIawOc5VcMz#lWjFI8KJ}l0k4L~6G!U9+ozZv zt2I4~mn0UN8zr@GJv{F`3hVsoBW;1^)xwjimzIgN)BpAPv^2}5mlmE(<_(7j*|TRk zb#+VGwCTTfnRqIX(PDD60Z0ZbWv**C+`wh7*+_;`71m^J%P?)#hEY-Bl`l~u))i_~vKhz5bms$vvED1^G5rd21?hvE)Sf-ic^$Kgxjv>yqmE{bvYd7`#$>#472Di*h7<$b^d`$xd}m$qh4b zbxjFHk{uH+tEESbicKZ8*Iaj0=5|YJ8WtF~_`t6a1 zrgFacZT8Dlc2~J(z4Gz2w;yF-U^#(+H_en&!|Uzh)mNJc1O_$phyaPL@B7DNGB#@& zP0g+uO(jHwKvS~|o3)Jbm<+H#=XQH_tNDInvbtxiX_J;zVs_FjM7~>f(6u-=e$r ziUO@hY?L`FX;@sI)x;U*6*HDin73iEy06KI4N;)gDc!X<|NKquUX0dO%*E=SvBtI8 zO(RN>`l?hgW;aXYTD47cvAQGJRy(sidd*t^PqJQfxa*iNt|&O1){L73{k~ArJo3%h)R}9pIPJ5Wu&Gn?-1Q9bTnzp7n$dXA6utU6wx>O7 z9z3xL_wpqlmk+0>57Xb&shvmDgp39r!!yr3Gv$f$FFS+Lqn?p*Z@tA(UO8))grm$r zEFLEmilD?*aYlmU4Ee{Bj?icXgFzjI4MveUb8R#>xhO5JP&ea6d~J49-Lv)9HxFz6 z3mnTj8Sd~f=B>x-szfRQ$2>rW&=AC9In6TpnMs1GCRlVI*z47iZp_<;)%7e3cHA_c zq)~SUc$}s!ox$k4o{@1+LN7DbOYIoTCBFQ8D5>tX%fnngHNfRl16;e5yfnDfeH*pQ z%BQWD9-dsGhv%CgHn|0OE`=UhGZg*!EA+!AH;?C=pO(5sc)ard`JJKHwuADO(CcRL zeDmXew;0c*&?5=Gl&^$dH=0NI=I2#!O`far3kkh^dGvB7e$MoXuO-j_4*(u?1IkYq Rj`9Ei002ovPDHLkV1new3K;+Z literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Green/images/jbox-loading1.gif b/apps/static/jbox/Skins2/Green/images/jbox-loading1.gif new file mode 100644 index 0000000000000000000000000000000000000000..cec9604a545dbd330309cfea855b3a0cb25d2790 GIT binary patch literal 3199 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 vK>|d25~W2h@jKf5lQ~g+e_?o=!^dYY4z*; literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Green/images/jbox-loading3.gif b/apps/static/jbox/Skins2/Green/images/jbox-loading3.gif new file mode 100644 index 0000000000000000000000000000000000000000..f98e7a399430dd228dbee7b37c4bdd2bd7bb0177 GIT binary patch literal 8778 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Green/images/jbox-title-icon.gif b/apps/static/jbox/Skins2/Green/images/jbox-title-icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..02b4d54aa2ba0716516389393f2b2d12b6a5a42b GIT binary patch literal 92 zcmZ?wbhEHb+|z`(+w1LA>(;w$HX$(gJ|}}U09w%=8~^|S literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Green/jbox.css b/apps/static/jbox/Skins2/Green/jbox.css new file mode 100644 index 000000000..eafbe4922 --- /dev/null +++ b/apps/static/jbox/Skins2/Green/jbox.css @@ -0,0 +1,41 @@ +@charset "utf-8"; + +*:focus {outline: none;} +/* fade */ +.jbox-fade{background-color:#000000;} +/* drag */ +.jbox-drag{border:1px dashed #86ae00;} +/* jbox */ +div.jbox {padding:0px;border:none;font-size:12px;} +/* border */ +div.jbox .jbox-border{background: none repeat scroll 0 0 #000000;filter:alpha(opacity=20);-moz-opacity:0.2;opacity:0.2;} +/* container */ +div.jbox .jbox-container{background-color:#ffffff;border:1px solid #999999;} +/* title-panel */ +div.jbox .jbox-title-panel{background: #86ae00;background: -webkit-gradient(linear, left top, left bottom, from(#92b61a), to(#6b8b00));background: -moz-linear-gradient(top, #92b61a, #6b8b00);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#92b61a', endColorstr='#6b8b00');border-bottom:1px solid #999999;} +div.jbox .jbox-title{font-weight:bold;color:#ffffff;} +div.jbox .jbox-title-icon{background:url(images/jbox-title-icon.gif) no-repeat scroll 3px 5px transparent;} +div.jbox .jbox-close,div.jbox .jbox-close-hover{background:url(images/jbox-close1.gif) no-repeat scroll 0px 0px transparent;} +div.jbox .jbox-close-hover{background-position:-16px 0;} +/* content */ +div.jbox .jbox-content{min-height:24px;line-height:18px;color:#444444;} +div.jbox .jbox-content-loading{background-color:#E6E6E6;} +div.jbox .jbox-content-loading-image{background:url(images/jbox-content-loading.gif) no-repeat bottom center;} +/* button-panel */ +div.jbox .jbox-button-panel{border-top:1px solid #CCCCCC;background-color: #EEEEEE;} +div.jbox .jbox-bottom-text{text-indent:10px;color:#444444;} +div.jbox .jbox-button{background: #86ae00;background: -webkit-gradient(linear, left top, left bottom, from(#92b61a), to(#6b8b00));background: -moz-linear-gradient(top, #92b61a, #6b8b00);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#92b61a', endColorstr='#6b8b00');border:#435700 1px solid;color:#fff;border-radius:3px 3px 3px 3px;margin:1px 7px 0px 0px;height:22px;cursor:default;} +div.jbox .jbox-button-hover{background: #86ae00;background: -webkit-gradient(linear, left top, left bottom, from(#86ae00), to(#506800));background: -moz-linear-gradient(top, #86ae00, #506800);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#86ae00', endColorstr='#506800');} +div.jbox .jbox-button-active{background: -webkit-gradient(linear, left top, left bottom, from(#506800), to(#86ae00));background: -moz-linear-gradient(top, #506800, #86ae00);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#506800', endColorstr='#86ae00');} +div.jbox-warning .jbox .jbox-button-panel{background-color: #FFFFFF;} +/* tip-color */ +div.jbox .jbox-tip-color{background: #86ae00;background: -webkit-gradient(linear, left top, left bottom, from(#86ae00), to(#506800));background: -moz-linear-gradient(top, #86ae00, #506800);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#86ae00', endColorstr='#506800');border-color:#435700;border-radius:3px 3px 3px 3px;color:#fff;} +/* icons */ +div.jbox span.jbox-icon{background:url(images/jbox-icons.png) no-repeat scroll 0 0 transparent;_background:url(images/jbox-icons-ie6.gif) no-repeat scroll 0 0 transparent;} +div.jbox span.jbox-icon-info {background-position:0 0;} +div.jbox span.jbox-icon-question {background-position:-36px 0;} +div.jbox span.jbox-icon-success {background-position:-72px 0;} +div.jbox span.jbox-icon-warning {background-position:-108px 0;} +div.jbox span.jbox-icon-error {background-position:-144px 0;} +div.jbox span.jbox-icon-none {display: none; overflow:hidden;} +div.jbox span.jbox-icon-loading {background:url(images/jbox-loading1.gif) no-repeat scroll 0 0 transparent;} \ No newline at end of file diff --git a/apps/static/jbox/Skins2/Pink/Desktop.ini b/apps/static/jbox/Skins2/Pink/Desktop.ini new file mode 100644 index 000000000..09485b11b --- /dev/null +++ b/apps/static/jbox/Skins2/Pink/Desktop.ini @@ -0,0 +1,3 @@ +[.ShellClassInfo] +IconFile=%SystemRoot%\system32\SHELL32.dll +IconIndex=161 diff --git a/apps/static/jbox/Skins2/Pink/images/Thumbs.db b/apps/static/jbox/Skins2/Pink/images/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..c9e4ec7f9b83549292374f18f89d40f5000418c4 GIT binary patch literal 33792 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Pink/images/jbox-close1.gif b/apps/static/jbox/Skins2/Pink/images/jbox-close1.gif new file mode 100644 index 0000000000000000000000000000000000000000..a87057e8921fd316e5d6d690138ade8ec67c0f23 GIT binary patch literal 1221 zcmeH`SxggA6oyB^GA=D!hD$Lc$Q%Y2L|aN9iRe~ zpYoG_A1Lt>UXRz~_P9Q{BuN%UNf4q8!;++5l4XwP8J7Lc6QTmcGN2+9qG>u12>3~o zz%ZN5W|4tVj7Fov&`=~235UZx&vP8dvMj?eg98Kop->-92Lr$iib$W&M-ag5al75U zF4qUAvj@k!G0bkWSyA-8+1y3>eSVSvMSY;-U?3Qv$Y1T^-45{3ZnN5~miOi^5Q8E~ zS(4%%2m7~PE|;qZz;PTK8xV@3m6erXO=Ii&fBnk|s74aUL68Yr z7Kg_F1O$&l^VX(sdZNrLfZ5Cnyt-YzI7MCbQAJE^yEtodMPhBKx-Dl3((v$UM`3Hu znr6+uur#UR=Df#G(4AZnoOVQCuiU*MY39<6o!dqVu}e49Wf?D8>XiEW^=DF$bIzkv zFJ$OKn*H`pxZ_ciqsb8NH1#3n3HP@gcxh@`q%EsDsM+&)#`2*l`tBG$Cw0{!?Ji`bQRTQaCEXdxQ_P-whk{!lD4e3lv{$42G7fHjgJfyw zXYChn_UHL_x=+1pP_NtZePL0(ZrXx%Q_a<_?V`6rEKly`tXS#oY{QIR%6tR4{prL@ z?(UN3RO19qIk9Y8ij7EEf10k^o^K?|R%(CbzW!=0zPw`X_0Rg`x{~UKwBwl^K3msh z!Rwk3NTt>xP+nTr!e$g!zbcyfNvB-J;J>*$ro}!MYqYwZ7`4BRyeji6wRS J>gg%anx8VZ7x@4H literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Pink/images/jbox-close2.gif b/apps/static/jbox/Skins2/Pink/images/jbox-close2.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd2dde9009dfd7adbd272044c03a6f57d1a34701 GIT binary patch literal 791 zcmb7>$xjn;6vwA6O9hlg8U+qOqksl&0we;0tU@)4;6cEIAP}@zV2p4e#zR455lny! z4P20TGDeLd?g}JwQ3*5io2}D!*3MSIC@1uS!=K>i<(=O9=6%0;wHIm%i`vqmcu0XE z8~|O{B}rm~!9c*zFbqi$q|rDa2@*q5fMKel(lj0L`$HiqBuPBaF^tdH<~WuBKoEpL zAi#4RO;MVr8-)X06ogPHq{xaWiX6)U3>A0*+XuyQAS<#ch>9WufGV=g_-JGUp=nCj zG?opb8;GuJ0AQjh5ClO}w5q8XiiPzsO_PQNLEwEfg(3(|k^7Drnj}fhz(}I$IF3^U z0Z`2FY6LQ3$+7|fPLjB)Dh33O1p`5rV_B9nzyV4bQ3+gAMPo^R_LaXod>(Y3w3(M?fQRIm|t2`)+ui792L zi>cnStUiC^ z5E9qUBv)QKQ8j4(IFxcV&ZI$Z>5*@kkGdj&9)|>WMhwp7?N5#Q0 zkm;(Y1-Lt6oRO$0V$5Ao-~Wy@MaHDU-36{G;kxC>!55w7?y40_e0+aKiF1eFK4eWO z*&68JJ%g#0N!GeM<<7^Jp~k1Xzl5*j$u93x&)xR5Q5!r7(LV+)o~)WeFT|&m&!_b) z6-YbJo4o+O$gfl^z8UhrozBT=5HEYU>XC@4#2Zx}`*Pyv@ztofzVvhLORm+Czw_nL F*?;R5w}Aiv literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Pink/images/jbox-content-loading.gif b/apps/static/jbox/Skins2/Pink/images/jbox-content-loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..b597cd1f31c4644cd9fcf64bf967de5be0edae7f GIT binary patch literal 10810 zcmb`NXHb)C!>yB$1QJksC!t#qUGSU!7NZpfoqTBr(B8enu1R*Ll zCMez=Z38irHMQd6<%h%bDnZBs!51tqS&&vZ=jU~Gu*RlWuj^^Jw%2c(n%Uc5_Rzap zI-2_4(rbGA-nUM)Pj$|84^_AEm#{F&fuS%sE87VURtR&+H!eQ*PaHpge*XG>cYSj# znpi|&g3+(w&xvY~0i4^u-2++eBwmQ_TmFHCTY&Dk;5N&o zp=Nv{0mALN(W?-j_+DStYh~+zyLcdXHEdSxGI8zwGp)=+ip- zbf=5ZDM^%JwJE)pXDBGcaL=NbAU~&Bc0-=b!XvjUciVy7f3o^Y`O(yd$JRukX;;f@ z;#awuX6x^TC;U{lUv+r@s1!2U-&?AVZV%edX!y9+?)LP_Ou9RKs92uj)JNOfpIe4x zkHw(3roVpd%Z{!J2=Hmyoe8f$m)&sm^VhQHQ`1#^FbL0so9PU*sXh-#1F?BBaQuS8yjWSoidx{wWIc%6;hPrgYlmO z^8bCkcXfR_!+LQI*kz8Zo*{#LvQ}zmsD5g#_j9;W4o==a?0(3A5F#0Sl8G7|Y9Ha{ z>+cpH8RVZ4j-@1p_!IGwz9E4GlB0JNBqPp~ToIj|?~sjy{(TUHQNK?@ryvpvVFzJs z-wCn|4)xgf2Q&{&!k})LarVifY4`qj3xgy5ZmVlc$g!UJwGsD#j|)qi?>`^Rj27?O zl`-SUG?%{^5IF*%T>;Ewz`>$#4kSZ46wjW)p;IW)r%s`JwOw1uOuR?xk}Q|v#KBOi z8tIkDp!Ka3*{dt%cHApn2_h1^?sm@?-)G9}EU+EM+B}Gq(g5)uezCrr$dxf!EAzPR zcE#0vMTjpa5Ev?aQBLGiu6(vdM}avd#+gk%zi6} zroffDn8Kg?Rraq1&xn1KGyL|H1@nXh zSN&}p3`TO;h9FL8kl=_oDXc@rKCY!ZQTAz!`u^?$f1YeMnt1qm6@Kk@b{5V1)8b-k zve(J0{@=g8ow|eF{MBsoad7iGMosP)_*aLh$gJO+*7~QON6SZrARwOt2M~fV&`*QH z31bGvLRQ_T7QALseL({DYeqq%Jufw&qMjn6jvx5lEW%`so@9W|Q5)u=LhvsBkc&n! zz$hLw6_d!*u6Q<2B-%hc=7(~Ec!U_eK`d6rlP2nWRz|>_ne$8v2*|9;V(xlM=pYxs z7NKQhC9GRVNJAt{n1}mMNMvT*I2|uZtX;O9PWQ8@J7tPnXndOKB+plrPe=-zkly5NOjg0o8NkdJ0X35c@-0KLVX zF!|~HVVlm(ctpj8!aU4k+0G>A(b%~rde8)ne5@bE6#bWGE9m(%+7N!;-1~ zp&`V`2;W$H6xKP4JAnTo4hc>u;gjg&zfK1f zgdg552tP&!2;&Z6XBi%bv-Azb^bL)S^dT`*gR>(rsO^BQ_3|*o-G6I#Y;`gOx%8Q3 zHO%f{d1sBWsUMZyaA6Og$I2I(qeA|^AP}PmYy}{|P}MVNv<4H4h{iED)JZ+@Tt~uw zY|?ugIxrYI?NJYxIGLGOFYT53i$OH)flMREsB?$6i zRRs5^=j`63g)^(%^4#B@>+qIPy_l@(dbcZq8=#NcSF-Ns)?QS0N=aL5E|uaa%-F(i z4VNbyQc?Kom7z*e41vQ70#t)3+@}=+HQd~I<+Ryf-6wmr!1C^7Uo+PLZN4{ks8=BR zeLwynWPeMh@7K+NdggCgEoq?my}l=2QT}RQcYbz^&6@6f^2iSKGCX1k`6bqL&6u(( zHn5XAN^mAX4n4H6W27l21q7NN(eSQzs=kZwri{0SkWyLZl=&TFTEkv97SAe*=&D{zIbEzTPR&x(eN>#dP(^VA7UY_&Zzq}mVMGhtV5 z?dL+z8v<6s*xdK0755>qEi1ZOmvE(+5l6Yl7{$|p8G8iXv@@4HAHMnGx`iyUuFF|6 ztE%Bf$kt6>TL)+JB6;J=7x9|D{F)7}V;e9qhm34OlVQGklDM<!zr!2`E}B7eBSvpZUsr1H7Izw)4g0y3E&eiiQ5 zdK)WM2$$$RH8N<6X)%0BFOifl$huoktsVXI#U0NAz6wC67PoB!poinWfeaJDtEUX? z4BeV(|7DYmC$%aH%WH4`)Ls_$9gH{PxTz*vh0mbZ2Sby8Yf_xlpEnG4 z(FONX6fxI|2c8#!GZgJ6O<+6{je4Kt{HXS@1k2FyQ82LXm7lo1w78$3M3CcWtpHq79}RBDoYg z_mb!UqlyG!4dD|vxP=#lE_TI^J?{4t`2ri1(vzx8ws&7g)W!P-s2#X2^l_WKuk^#a zotS-b|30Gyd9dbLqEcVj;y1H+_>nK$d*mL|oCo*TQQ-~j>K`I=V0=#FXD5NE3uz1eWstBr~TYWT{d3ubk1z4 zqWx-VdrmpbO?&Q9gaO z^8CgHm2dZ4KVxlm{hFOPwCa$xAVTO7>VB8ppsf>z>uL8wlN6f*r|I~5SS!$Ra(t{n zWmWB-<(#IMTSKg{(P!}0VAbhGY*&}x-(tO|tQdFxL=oiX z=CixQ6N&fwN0t+XDyy)E7!6HXg3BN{?<@_Q&hnE|QY|u-!uHtILiJR)ps;~z9$oZg z4Valn*l|&`O@>%JaUiHVu5!-IZ1K(qUBsn;abo3`a=w_66XT-HF89iZ^^Xl!F_uU2 z&~p!7Xlw++7!X!1N728@^7B*olVfZ7f5B1w)heg{Rm0++0ze-39t&N+Q`# zss-$hiysj@y}Z0#?O_2hCM-FE8XORg^MU%g2U?RUiR^(6VW>2UDm}Y!sldZmc13u8U^{C_dVI!q3m$MZozlR&KTG+TaM8()aPFq@L_ZY)?XOXIWsyQ zGrlwit*IFp9G+!3Oz)1)O@@A1noHhZXZfDB9zGV_-{9WIA-eI9&`t!(vB;hF6m4ZX z4mtKFdJF<3T13KRxS=MV0+u?uZse%0C`JZ}J`A&(*ps-OAjNIMKXDv@VhElV<#t?B z-OLws6!&3VtMnv}B+#!HN_IWz>fSQS6OW`G6yLd;_eCr>6$;|?eOxYrZl%=Yq<)sD zoVYpFfcsOo%;vqkStIOdrX$_lS-AxcUCea2N3`s~u`+u`pbahFgiE+DrUTrpUayO+ zj%*pUn|K9kNDab(u-6a*a`3ek05CxoFW z7@~dJohuDv79!BgXCCY~B5^ucxzbC_oPTs}92)4M$4?rijkgAJ3gCdotPRYj%%}b& zr+Bdqs0d!_(bluZV>LtXdOxbvUeG#|)Cgqa(B-hUw()^xK^%-;+yxnjsQ?qwK6b36 zE*P#p%aCr;%)?trS_-S*bCpg8zuQ&0htX|&X`|>k2;(D2Ge)(1?|Tjand0vq#1<`h z!#B)=>8sKu*>PIZA@3^=5iX|?hQN|}9k22H5uz8SjQg@`X?dX{f4OCQrO}qnur_Wp z_H#)WAN2iE3#L53YyNPvq zg0AdBY)@?ISmpH=&Ce@Wg|%d{OvpyaKCNDI7}*v$2xd-lpF?`1MFTi3 zIyR6S4(l14ohXT)nH?RNFBx81{t#~81K${E_88t>n$9gou785253vu6(xl|m)!iJo zBE*<=9|D=Upw%J_;v|`sApDP`F#mQGX$?!Q=)fa!aS`vgD z6RwNzQceRy9lbv~pyJP)l9LAn+8=2C z^ToW?Xwp<;-_n*M6rB&v|dbwMF1fFIMr#P6Cf-oSj&!!xP znH2ade{S}u>B^wxu-AQ_Q$OUtI5bI!XIE!bzg)-qUO!jaI^{Av#%g@!`ZU&Ts9FBe z_p33k?vS>RH?lKkw%{PBxE|0BmLr+s6DEHo33!S?X{TQ0cT_jUB-H4qQ2eZ`TP^zd zZ5Y%7>(Lafr=4xI63ZW|^I#!&oCs*S6+a&qO~l{x7Q2i&?HTSAqd`Sld>5iRd+6oc zT(x0j!vSUrA^~hM-Fe3NPy=1t;ZS!m;-7mGadwJ|@ifq0=;~;4-vuSfNJLKRin{5c zWLDB>P6N^UwLq$o`J}u}+hrstk zHlvK|(ltD8U2Gs4QA|~*^_QF1raPyUYn zIHB?$N39)#E6gn^|Eg^oUFhc}w{m!dp`^*>sbHY3>usUh)*yNNC+`MLL)|>AlpOoa z5ZbjMey(B-;xIjQqujHBtG*hsSub$<+X|Uhtyna>2FHR+k_GYOUx(^1ieZI(Lyj1yP`)`gs za{u$~@AUJVBUS%RKiM3hf2~dl0=2eFU+F)2-@M%!3q{q6Wd&4o>Qk>1vR zewYAHJPC&NJxL9Wh$GoRlVU>Sd{9BQAzt1vmn7GdfnMQx(aFI@VPUwkf{@&}8ftQp zGg8YMWo{Q&ZN{dFic;s9?Zgc#r8@h-9gdMl93f5aUgkiA%1r(lC2C4Hn z^Z+Bp?Oerf9|Hw#68dTBT?#*UdG9zwqSx{=CT;6rPwZZ%yniR#?FVgo*{9A$Ex{hI z=&G@Y#F zQXJr1^}ks8?^{3wxwuE)skACWSj3e^H&u<7`dkl$Z$%gaZ5v5STDpEdRsAF5#|bMk z_XY%J^Mr%HTBE?iop-?~MPZs$=gCE4GK&E;?k%{aUdcAjxU}L3k7F-7o9Vu?)VAvR zCW~L~(`W7!m3DozMzi%dqUnKiKPT-^OfEauXBm2UeqS)GOS5V$Q9u4=9vuNDtU)}T zW2Vs>Hi8~5SNDx=xIsy+P!7pDBeI}mHG?4VK=QONmvan}iaJZq3v=-p&QW}I4vO*W>4zNdncWalXBe23N3z1w)FEg{L zvt2g$j!;TpE^{)SpSrh$yCatGjXDmLx(-xW;BwigXng z1EdCxfVn{3dXvftf|O+yrXsr+1jpuHQLk$(yj()w6y>ULFlSkf_-i zrhq5Jc~2=093|-cj0}`8HR5F7@^4lrL8Nwu01jn)p|RSoS;gkdrK@=H?fthCF&Fo*dLr>86w1#& zkmyD7p<3FV^nj5faMXa9xCp#Wuw_7;Hzg)DjO-g608R6bEX^+S3=j9M&SA%bVC>ev z83Kc%Pd+C@*aZby=yYUzLOiUSWn`44t;w5xcxN#@gbY7ujd$241}1 z+1*@7SRef!PCERw1v@w6lz&z)Uc5O zJyK68H+=2D>>y&2B(hNJA@RyO;(HAmHi~$15;d{2)J~j`)T>TWFsHd~M%7Wx&u_de zJ^!d!BzF@IV)oPtaB#W_VdW;Uc0t*J9W(?&{LI;TuicmQ)F;}qYWOeBRz+oyYob2p zv(Fo`Px_myT~-&G&sBZlG!RNtdS}Mw^46zMRys+lvibSFmrjdAGK{fQSNIzV^ZY&)LQF(98vSefQPHxb%k16`$jYxOKWMi^yCFW6~C(0eM;EfN7772(7>m zdr437>|Xy|G$&o2BKAG&iLfc4-2S!{8TE2&4~W#QQ%ttsyPH}rCv`j4vEzoRwb8?5 zLECJ5vy!idQyPb^mR6}fu8B{c+t}QcB@iFbp9||{mVG1@nT}UIIAH~1*4q{C?oH{e znRAnt!gX_fnX$*QIpP`^TpUN(O0haV?{|^R+LcMM?1CAP>*Fja^g>*jH9mGCvC?Mt zYWjvsK|W|U3-G4)m?sUZ|7gi?p8QXB@;_SgFY`oimkniG+d41pIJ+y>b^iVpXf!1t zn=#x4CE}636#qaXiJck|VCm@<4x`2g5Mz!L4^v1o-j9Neih-sE!7vU4heE$3htOx< z@j+2FVJMX#w&4^}AbYRS;HIF1h>a)A-r7 zp|VpdQJK!KSGwkIo%79)Mup$exclpZN~rSUQ~Wn6w15BqhY*bj1Tnr zl1eK+?$hs0n9H^r2<@K^)&NDlP69Z*tFF_)`y?WsS|J6`Jo)42h_X2}Dl%kVQ7Q~C z8rt^<&uO%nPgev8>8WmMacWO_(VR~)-rNRxgfW4twH51w&a{jWqqHs7EQ9_GC?=4k z6;guZMpr?az8-!)*$~{7?lGWf!h6}b$K)?(`O|_w9q}olpIX7W2 zn81z334-fsuMBO4i)2Fbl>8(^@kY`CD(Af+7<1Le2az5lh(0Duk3j*=YUAt`J1LL{laUq@Or>A*Y>HuLb^Z;MTJ>jGjFTqaa7bZvljZZ~VZD%bbUCU6&}ET#Q8S+;1oy9KyFK||G3TF==ih8kjx}ZX47+Mn zt?0*Ho{PKtE4`Jz!lADMqAu?L#e|0;y(uXFzyKmSh#c(UNTfuAV3+L^RgzNV6C6swg1oJf#|`YUqkxX@GKX%ohaHgzMCE!Aqdzl7Lww4fpJ!fo3hO6 z%is22yvcUBdU5%1s$+HZx26D@IMt7;iIyKW=t@X3W9P}}S5>K1f6zQPm84W66 z&?%}UOez+A%4(6r=D==blWQY!qXF$3>CeAlCQz_HrYH#w$usWV<+orK>P}qrOYqk= zVCE#KfZoX|48u|r49W;1Kso=pyW zUY=%0GSopOX=UHK&~ul`L}K`2S&-Ery(g#@sE_R&fTJnk=a!5UMY4kvPFGCcu=Vm6 zYV#B%581bM_RUPYi+K@dh7I}nXEwAszE=fQ)n_TVlpV-GiA2xMS%H_q|s)tjttitYl=p~Y%C{(Gy5t|p)6@b4D(KbrCnR$!t4z?J_4NG%}g literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Pink/images/jbox-icons-ie6.gif b/apps/static/jbox/Skins2/Pink/images/jbox-icons-ie6.gif new file mode 100644 index 0000000000000000000000000000000000000000..201b912e0db150b0111539e1ec35b2555b618b60 GIT binary patch literal 2767 zcmeH``8yQ)0>)>tj3vz^Mq`^{DEp8mq3)QmRW3q{W63g>q|Oiz33o=**y0Q!GaWUS ztb<6XEMs3P$=cXMLMj?@bkg^nbN`9^%YA=%pZB--c|Py++MTpDJLdZcf`x2D{t*Cx z*Q8j`qEsZnJZw`gZdWPkP%Z6LtLVX1_GvzPsr~r1PW_O6{g6T9h+)I9VdIF=^Ks*5 z;o;WFBh5n7w&|lCv&VWCEPED?_bi-vwL*TmOn$XOd9`Bw`lHRzXZztVCr39I*yC}E&S#*F8Vt-k8LUBVaE@;pL&xoMa8nmAR zU1vehFQC^83|s+2F<>Yb499_SCV0yNl`1E#rPCJ)T=z+54CR}9{j zfCWBSs053Z;C&5PdJNXO!S)C6A{b0$fhjJSEdaBHV7>w@)_`vd;M?Ng@c%o)|LuQ6 z0JkFsg+S;K{eSBJ`2++3AW$h4duLv<0z#g9sP|Dmg%Lbs|9jF>epe#u;3iV_d`!o&l_EACAOt#T~@4|PzY_-CZe{w-qr>US3O+au$C&-(AUR0^CF-y8T}-- z`#kd%F(mr_Mz~F1=H%%t&yDcF5-zdYzk%bW9QAp+S@@%VbjDO1OiCFOs_L9w*GPj@7Kx0XoZ-H%vb zLEbf@BJ-sp3n1^HO8iTxf)wxTT1A=hMdu_hrrXmIktrk$*C72p5)+e*`moPoZk0UbPk_2mohmb zjkCT?lZ74?hs*4zdT=3rnL;{54o!l}D5QG?qbc8gOBAnC6Z92H!I!>aF)t=SM?5n`^^jZa*G8`Qu)UjbiHlhe((WloK5MdG zE<`hE1D`$65qIY6Vaag)I|kPlc#?`CQ_)6p6!P>o3vYK2=6Cyy>Fj=kvvgCxu$xBMLRMp`A)$VdO?R8B?~SnSI*^(E z4MWLeJ6E6Z`$|-h6`&|O{iN&R%w*Z38b7<<(*-UWnA*0Ac*0FRg|9l!Sw#n~m=);l ztMR6k%A;0CJ1-`DJsW!grt_Owkzb%OE5~m?$Ax5n@q}ykR2c)!Ak^um7<)F2j2UX_ zkQw%a=c%Rg2V%3W{&inOjEl}z_3m<5sJny3k2r%LQGl_TE&6TlHk;UoXPSo{Cd)vi zb|U%=y2`4rzZNNAR+$nPZyDV{Jt;)@xH&C&X2o?{ylqpHcG>IN_K;d$KQBd=<@;21G!7nH*R7wMBz@IVr^^KK|TOJ0Y)=Rgz`cSr` ze8M?VA?=W|yc=rOP0XrojmiiR=KessWpZxg4&@57HHg}hbF%)hRQ=cU(qd{OUw4)mknu&INkJp&Z!IKhVsUCoQbC z3TD*kU{E2&bMGaVYw45nOLES-3@iLuAFqVa9_z`AqpS7w-qEW1{s&*o#l%B41iBdy z`K$MjHrvHz-H;-e73JA-{mXIO5ivONNT(CsWB|2FW#W!AoLS$$+^e-XC+4(D#v~yF z;6Co3i*#HQ6KJvd*WUdk;!hUiAaHHcycB`wp+7W4iN$M9ISh7LtiC}Swfo`T7kk@s zYit4wyb&CP7?SRs@~PgxYV$%7dGMW}Wc3q@jE0`(>4^@$ zFn*4>vqwANBW9bthYR5PIPDzU@Uzkl7*b?im*IbQWxFI#3+jlE=vQcPQWdnmjEdB!W$Aymo literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Pink/images/jbox-icons.png b/apps/static/jbox/Skins2/Pink/images/jbox-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..f72f2924021bf6a23d2df61a42f109d7e49bcef3 GIT binary patch literal 6663 zcmV+i8u;ajP)KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(`>RI+y?e7jKeZ#YO-C z4>U)jHMAm=l~QXgyjTgv14Fy0yr29wM&9`s~l%b zfnx1HOp0v9+4T`S>myru_M;rErlT_aS z2gRdLuazgOq$j_YJVHJLUkW{Zk5B%13$WQ@a?~h<)DtlQrbMj>3Xw#)m2kx04IFYx zOAjuzzIJRzuSD0c?_ucN7GN_)b7~kL0VM{40mKAPJaWCvJR3&)yMaTLG#;e(p<9}# zaJ`g-UaxCR~g}x(9&$b=Dv5Etj@^F|8}%J29Ut|Fa!v!B$(rm=_Ed7!QDGfRG2|pjub5 zfz<`^7?|x43&X5(2zCts`6wl1*r6ly){KdPhMGQeeK-> zN4YhOUfo4Bv=M`(j%2bQ`cH%RBFeRXgcKe{Q4mV!KzTjPSq73r9R*`D7_F@oRlP#( zL$?G^KD~O6_h&qB?ziXM5WQ|DPnv-*h92DPmoGjw+f?I@5+oQJq^r}9r+6U@?^DGT)`j;Y5xYmB*C0TP_q(>=7G5wf?aLcYM*7nj;}ROF1@a` zeW|I9Qul2$rq|8pNiy)o(1UA6<5zwLxCN{X`ujN7;bkloN$MaPjZ;x+W8oj&rhel- z|B`{eV3LUeW?4-%E-9zXQAr~AX)6-v{kY!x=DQlrvWD^DpAnC^5l!Ix3@-c@hEpzt z(G0GI$z^f~hWa2ne!Z;tHdu5oIB!?;Qqk0gx%kH{*fFy_T4S0#+4SOIDghlJeE8{ z3j#RHiul`a_av3Sal9Je;3%mXiD(dLSX|D$xz!l4F&6J>EivA?bD?$j7kSJwpRjK? z7UxFBhoSEToI9E{${~ud<|$b6^i&T}oha)0=-QptZ@+XZt!~LOCk>0sm^ZgZ zmtJ~!^h7?M$syAxf4DuaurW%IL4RLH^G@6j8=A_~${U)>iN(|F$72fT&w3g3_YoyX zTw$Y6{&0I<@?h6?q9N5RzRxn4MS!hu!ICF?QqFV$%M!=;SoW_yY1)3&|)@71Ve+I zY4>C_Z=n&7DV%Bd5DX1sHb?+1i9WMWO+gC=NzF0Oyq!MMExs2jH(i=Cs$`357VT_h z{_At{R|5!`m~E=5NX!jpAwIVS zTWtk`0S0~#pMLP51{!2q_}io{%Q;XHa{ z-9M{G0X(UC6%Y;)L;iO&NqT)UEuQu3cd>r`uAKdqm)FwLa)9#kTFpG-Rr&dP$z<6a z!NaH=pr?B%_gB|!WS}p|uTIwRzR%73J~zKQS;IhI5VP5s^W2{9Ax7l@5j;pH%jT={ z^Yt0uXi1LEjCs|msjjy4h9oN#FA4yQC(DK}R&)Fn=sgRc{73pZbN(X3$l9j%G3Euy zv6;Si3gaonyh|Qek99xQ#gnR6`@zeF5SUG3ao$Sp2QR1S^_*@VNwU(?a)6a9UuNaX zm-)_jp3Q3B9Xn33V8K>)?(C$wd95ZM(HD7dg@Cn2z)IiMVNI!n(J0b;Wtd|}E_3Y2 zWqPj+r_DfQOC|cQ4kKViz*^&rytg8)QsDdwj8Y8-i#o5G=^;rTgJ0O~9JoUragYBE z9R928x#+4V($D$eN11Qk{ioFz5Jstn!1=;>^u+oXRO3#>lAl~3i8b)}A}5mc(h&s> z)yaCD(9N@LTPq6|Y@PgnxBJO76Hl1eVkw&}d*Fd18BLtZBZeb>w?YUxc8x*Lh^9Yk zVh(uf5sk(*ojd3mQQyW8A{_C%)6MC3Gd`le(ehl#(u$%^ll7iekJJCD{uco@ya)>) zPV1Jgk1{vqxuEtnKBD$r5RZKraCk7O%&tmo}<0}XkH#;VqpbJT*>%`E$z*R0F6t^am}$MU-$kXmo9uszO_Mt zKo}*ifB`1@PQK?jmJkbrXh0eAq`lF~L8h8_(ax!bT>syV$d5IS)Pb4yC0{*Ka&a9>L}M z7B*WQ7K=0KoD(Php2LS<(ZnMHbpj?vN5}J;cVZf?a;}}booz`+d>M~TRLr~We=rYTnJ(g=)mzBBG%zNO#x~%5S#3KSOFlkN!^v)}0OFciNEmviL2KgnR;7t+kD znMbEyiI`QWf%EF6fk&1@?Ay07&BUqZ&6GCe;t{zOV)=vVWuN_{HuFw*CSf8LJ(@le zXUlmzUPwwC{!l`eLwxknOBp}AcI`af-M`n}rU-Z-qG=Xkrb6v2g4%cbV+`?#x&%@4 z^T_x_%5Xh>2>G<1FWJDQK`*@~sSdTHTlZeGg+4;)EOJ7ZxChU?l{EM@H2af&^AmgDtyY2q=; zk#L7(vaA+F0lVEoa9F;f2DaNR2#KYIawOc5VcMz#lWjFI8KJ}l0k4L~6G!U9+ozZv zt2I4~mn0UN8zr@GJv{F`3hVsoBW;1^)xwjimzIgN)BpAPv^2}5mlmE(<_(7j*|TRk zb#+VGwCTTfnRqIX(PDD60Z0ZbWv**C+`wh7*+_;`71m^J%P?)#hEY-Bl`l~u))i_~vKhz5bms$vvED1^G5rd21?hvE)Sf-ic^$Kgxjv>yqmE{bvYd7`#$>#472Di*h7<$b^d`$xd}m$qh4b zbxjFHk{uH+tEESbicKZ8*Iaj0=5|YJ8WtF~_`t6a1 zrgFacZT8Dlc2~J(z4Gz2w;yF-U^#(+H_en&!|Uzh)mNJc1O_$phyaPL@B7DNGB#@& zP0g+uO(jHwKvS~|o3)Jbm<+H#=XQH_tNDInvbtxiX_J;zVs_FjM7~>f(6u-=e$r ziUO@hY?L`FX;@sI)x;U*6*HDin73iEy06KI4N;)gDc!X<|NKquUX0dO%*E=SvBtI8 zO(RN>`l?hgW;aXYTD47cvAQGJRy(sidd*t^PqJQfxa*iNt|&O1){L73{k~ArJo3%h)R}9pIPJ5Wu&Gn?-1Q9bTnzp7n$dXA6utU6wx>O7 z9z3xL_wpqlmk+0>57Xb&shvmDgp39r!!yr3Gv$f$FFS+Lqn?p*Z@tA(UO8))grm$r zEFLEmilD?*aYlmU4Ee{Bj?icXgFzjI4MveUb8R#>xhO5JP&ea6d~J49-Lv)9HxFz6 z3mnTj8Sd~f=B>x-szfRQ$2>rW&=AC9In6TpnMs1GCRlVI*z47iZp_<;)%7e3cHA_c zq)~SUc$}s!ox$k4o{@1+LN7DbOYIoTCBFQ8D5>tX%fnngHNfRl16;e5yfnDfeH*pQ z%BQWD9-dsGhv%CgHn|0OE`=UhGZg*!EA+!AH;?C=pO(5sc)ard`JJKHwuADO(CcRL zeDmXew;0c*&?5=Gl&^$dH=0NI=I2#!O`far3kkh^dGvB7e$MoXuO-j_4*(u?1IkYq Rj`9Ei002ovPDHLkV1new3K;+Z literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Pink/images/jbox-loading1.gif b/apps/static/jbox/Skins2/Pink/images/jbox-loading1.gif new file mode 100644 index 0000000000000000000000000000000000000000..00ff6dcd1c19c6a60a1a66029a1f2455d8a7baec GIT binary patch literal 3199 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Pink/images/jbox-loading3.gif b/apps/static/jbox/Skins2/Pink/images/jbox-loading3.gif new file mode 100644 index 0000000000000000000000000000000000000000..642ae1bfc32ddf5ece7a06a3048fbe443b94f86a GIT binary patch literal 8778 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Pink/images/jbox-title-icon.gif b/apps/static/jbox/Skins2/Pink/images/jbox-title-icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..b9c772fb5dd615a76731d4c119ff9fe5ea34ea5e GIT binary patch literal 73 zcmZ?wbhEHbBe?# S{fN*C-Grs4uTF_ESOWmk-xUJ@ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Pink/jbox.css b/apps/static/jbox/Skins2/Pink/jbox.css new file mode 100644 index 000000000..a9fc72c45 --- /dev/null +++ b/apps/static/jbox/Skins2/Pink/jbox.css @@ -0,0 +1,41 @@ +@charset "utf-8"; + +*:focus {outline: none;} +/* fade */ +.jbox-fade{background-color:#000000;} +/* drag */ +.jbox-drag{border:1px dashed #bf0058;} +/* jbox */ +div.jbox {padding:0px;border:none;font-size:12px;} +/* border */ +div.jbox .jbox-border{background: none repeat scroll 0 0 #000000;filter:alpha(opacity=20);-moz-opacity:0.2;opacity:0.2;} +/* container */ +div.jbox .jbox-container{background-color:#ffffff;border:1px solid #999999;} +/* title-panel */ +div.jbox .jbox-title-panel{background: #bf0058;background: -webkit-gradient(linear, left top, left bottom, from(#c61a69), to(#990046));background: -moz-linear-gradient(top, #c61a69, #990046);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#c61a69', endColorstr='#990046');border-bottom:1px solid #999999;} +div.jbox .jbox-title{font-weight:bold;color:#ffffff;} +div.jbox .jbox-title-icon{background:url(images/jbox-title-icon.gif) no-repeat scroll 3px 5px transparent;} +div.jbox .jbox-close,div.jbox .jbox-close-hover{background:url(images/jbox-close1.gif) no-repeat scroll 0px 0px transparent;} +div.jbox .jbox-close-hover{background-position:-16px 0;} +/* content */ +div.jbox .jbox-content{min-height:24px;line-height:18px;color:#444444;} +div.jbox .jbox-content-loading{background-color:#E6E6E6;} +div.jbox .jbox-content-loading-image{background:url(images/jbox-content-loading.gif) no-repeat bottom center;} +/* button-panel */ +div.jbox .jbox-button-panel{border-top:1px solid #CCCCCC;background-color: #EEEEEE;} +div.jbox .jbox-bottom-text{text-indent:10px;color:#444444;} +div.jbox .jbox-button{background: #bf0058;background: -webkit-gradient(linear, left top, left bottom, from(#c61a69), to(#990046));background: -moz-linear-gradient(top, #c61a69, #990046);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#c61a69', endColorstr='#990046');border:#5f002c 1px solid;color:#fff;border-radius:3px 3px 3px 3px;margin:1px 7px 0px 0px;height:22px;cursor:default;} +div.jbox .jbox-button-hover{background: #bf0058;background: -webkit-gradient(linear, left top, left bottom, from(#bf0058), to(#730035));background: -moz-linear-gradient(top, #bf0058, #730035);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#bf0058', endColorstr='#730035');} +div.jbox .jbox-button-active{background: -webkit-gradient(linear, left top, left bottom, from(#730035), to(#bf0058));background: -moz-linear-gradient(top, #730035, #bf0058);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#730035', endColorstr='#bf0058');} +div.jbox-warning .jbox .jbox-button-panel{background-color: #FFFFFF;} +/* tip-color */ +div.jbox .jbox-tip-color{background: #bf0058;background: -webkit-gradient(linear, left top, left bottom, from(#bf0058), to(#730035));background: -moz-linear-gradient(top, #bf0058, #730035);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#bf0058', endColorstr='#730035');border-color:#5f002c;border-radius:3px 3px 3px 3px;color:#fff;} +/* icons */ +div.jbox span.jbox-icon{background:url(images/jbox-icons.png) no-repeat scroll 0 0 transparent;_background:url(images/jbox-icons-ie6.gif) no-repeat scroll 0 0 transparent;} +div.jbox span.jbox-icon-info {background-position:0 0;} +div.jbox span.jbox-icon-question {background-position:-36px 0;} +div.jbox span.jbox-icon-success {background-position:-72px 0;} +div.jbox span.jbox-icon-warning {background-position:-108px 0;} +div.jbox span.jbox-icon-error {background-position:-144px 0;} +div.jbox span.jbox-icon-none {display: none; overflow:hidden;} +div.jbox span.jbox-icon-loading {background:url(images/jbox-loading1.gif) no-repeat scroll 0 0 transparent;} \ No newline at end of file diff --git a/apps/static/jbox/Skins2/Purple/Desktop.ini b/apps/static/jbox/Skins2/Purple/Desktop.ini new file mode 100644 index 000000000..09485b11b --- /dev/null +++ b/apps/static/jbox/Skins2/Purple/Desktop.ini @@ -0,0 +1,3 @@ +[.ShellClassInfo] +IconFile=%SystemRoot%\system32\SHELL32.dll +IconIndex=161 diff --git a/apps/static/jbox/Skins2/Purple/images/Thumbs.db b/apps/static/jbox/Skins2/Purple/images/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..c9e4ec7f9b83549292374f18f89d40f5000418c4 GIT binary patch literal 33792 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Purple/images/jbox-close1.gif b/apps/static/jbox/Skins2/Purple/images/jbox-close1.gif new file mode 100644 index 0000000000000000000000000000000000000000..a87057e8921fd316e5d6d690138ade8ec67c0f23 GIT binary patch literal 1221 zcmeH`SxggA6oyB^GA=D!hD$Lc$Q%Y2L|aN9iRe~ zpYoG_A1Lt>UXRz~_P9Q{BuN%UNf4q8!;++5l4XwP8J7Lc6QTmcGN2+9qG>u12>3~o zz%ZN5W|4tVj7Fov&`=~235UZx&vP8dvMj?eg98Kop->-92Lr$iib$W&M-ag5al75U zF4qUAvj@k!G0bkWSyA-8+1y3>eSVSvMSY;-U?3Qv$Y1T^-45{3ZnN5~miOi^5Q8E~ zS(4%%2m7~PE|;qZz;PTK8xV@3m6erXO=Ii&fBnk|s74aUL68Yr z7Kg_F1O$&l^VX(sdZNrLfZ5Cnyt-YzI7MCbQAJE^yEtodMPhBKx-Dl3((v$UM`3Hu znr6+uur#UR=Df#G(4AZnoOVQCuiU*MY39<6o!dqVu}e49Wf?D8>XiEW^=DF$bIzkv zFJ$OKn*H`pxZ_ciqsb8NH1#3n3HP@gcxh@`q%EsDsM+&)#`2*l`tBG$Cw0{!?Ji`bQRTQaCEXdxQ_P-whk{!lD4e3lv{$42G7fHjgJfyw zXYChn_UHL_x=+1pP_NtZePL0(ZrXx%Q_a<_?V`6rEKly`tXS#oY{QIR%6tR4{prL@ z?(UN3RO19qIk9Y8ij7EEf10k^o^K?|R%(CbzW!=0zPw`X_0Rg`x{~UKwBwl^K3msh z!Rwk3NTt>xP+nTr!e$g!zbcyfNvB-J;J>*$ro}!MYqYwZ7`4BRyeji6wRS J>gg%anx8VZ7x@4H literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Purple/images/jbox-close2.gif b/apps/static/jbox/Skins2/Purple/images/jbox-close2.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd2dde9009dfd7adbd272044c03a6f57d1a34701 GIT binary patch literal 791 zcmb7>$xjn;6vwA6O9hlg8U+qOqksl&0we;0tU@)4;6cEIAP}@zV2p4e#zR455lny! z4P20TGDeLd?g}JwQ3*5io2}D!*3MSIC@1uS!=K>i<(=O9=6%0;wHIm%i`vqmcu0XE z8~|O{B}rm~!9c*zFbqi$q|rDa2@*q5fMKel(lj0L`$HiqBuPBaF^tdH<~WuBKoEpL zAi#4RO;MVr8-)X06ogPHq{xaWiX6)U3>A0*+XuyQAS<#ch>9WufGV=g_-JGUp=nCj zG?opb8;GuJ0AQjh5ClO}w5q8XiiPzsO_PQNLEwEfg(3(|k^7Drnj}fhz(}I$IF3^U z0Z`2FY6LQ3$+7|fPLjB)Dh33O1p`5rV_B9nzyV4bQ3+gAMPo^R_LaXod>(Y3w3(M?fQRIm|t2`)+ui792L zi>cnStUiC^ z5E9qUBv)QKQ8j4(IFxcV&ZI$Z>5*@kkGdj&9)|>WMhwp7?N5#Q0 zkm;(Y1-Lt6oRO$0V$5Ao-~Wy@MaHDU-36{G;kxC>!55w7?y40_e0+aKiF1eFK4eWO z*&68JJ%g#0N!GeM<<7^Jp~k1Xzl5*j$u93x&)xR5Q5!r7(LV+)o~)WeFT|&m&!_b) z6-YbJo4o+O$gfl^z8UhrozBT=5HEYU>XC@4#2Zx}`*Pyv@ztofzVvhLORm+Czw_nL F*?;R5w}Aiv literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Purple/images/jbox-content-loading.gif b/apps/static/jbox/Skins2/Purple/images/jbox-content-loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..9d636356e70bf98b2b98e6d647157e999b3028fb GIT binary patch literal 10810 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Purple/images/jbox-icons-ie6.gif b/apps/static/jbox/Skins2/Purple/images/jbox-icons-ie6.gif new file mode 100644 index 0000000000000000000000000000000000000000..201b912e0db150b0111539e1ec35b2555b618b60 GIT binary patch literal 2767 zcmeH``8yQ)0>)>tj3vz^Mq`^{DEp8mq3)QmRW3q{W63g>q|Oiz33o=**y0Q!GaWUS ztb<6XEMs3P$=cXMLMj?@bkg^nbN`9^%YA=%pZB--c|Py++MTpDJLdZcf`x2D{t*Cx z*Q8j`qEsZnJZw`gZdWPkP%Z6LtLVX1_GvzPsr~r1PW_O6{g6T9h+)I9VdIF=^Ks*5 z;o;WFBh5n7w&|lCv&VWCEPED?_bi-vwL*TmOn$XOd9`Bw`lHRzXZztVCr39I*yC}E&S#*F8Vt-k8LUBVaE@;pL&xoMa8nmAR zU1vehFQC^83|s+2F<>Yb499_SCV0yNl`1E#rPCJ)T=z+54CR}9{j zfCWBSs053Z;C&5PdJNXO!S)C6A{b0$fhjJSEdaBHV7>w@)_`vd;M?Ng@c%o)|LuQ6 z0JkFsg+S;K{eSBJ`2++3AW$h4duLv<0z#g9sP|Dmg%Lbs|9jF>epe#u;3iV_d`!o&l_EACAOt#T~@4|PzY_-CZe{w-qr>US3O+au$C&-(AUR0^CF-y8T}-- z`#kd%F(mr_Mz~F1=H%%t&yDcF5-zdYzk%bW9QAp+S@@%VbjDO1OiCFOs_L9w*GPj@7Kx0XoZ-H%vb zLEbf@BJ-sp3n1^HO8iTxf)wxTT1A=hMdu_hrrXmIktrk$*C72p5)+e*`moPoZk0UbPk_2mohmb zjkCT?lZ74?hs*4zdT=3rnL;{54o!l}D5QG?qbc8gOBAnC6Z92H!I!>aF)t=SM?5n`^^jZa*G8`Qu)UjbiHlhe((WloK5MdG zE<`hE1D`$65qIY6Vaag)I|kPlc#?`CQ_)6p6!P>o3vYK2=6Cyy>Fj=kvvgCxu$xBMLRMp`A)$VdO?R8B?~SnSI*^(E z4MWLeJ6E6Z`$|-h6`&|O{iN&R%w*Z38b7<<(*-UWnA*0Ac*0FRg|9l!Sw#n~m=);l ztMR6k%A;0CJ1-`DJsW!grt_Owkzb%OE5~m?$Ax5n@q}ykR2c)!Ak^um7<)F2j2UX_ zkQw%a=c%Rg2V%3W{&inOjEl}z_3m<5sJny3k2r%LQGl_TE&6TlHk;UoXPSo{Cd)vi zb|U%=y2`4rzZNNAR+$nPZyDV{Jt;)@xH&C&X2o?{ylqpHcG>IN_K;d$KQBd=<@;21G!7nH*R7wMBz@IVr^^KK|TOJ0Y)=Rgz`cSr` ze8M?VA?=W|yc=rOP0XrojmiiR=KessWpZxg4&@57HHg}hbF%)hRQ=cU(qd{OUw4)mknu&INkJp&Z!IKhVsUCoQbC z3TD*kU{E2&bMGaVYw45nOLES-3@iLuAFqVa9_z`AqpS7w-qEW1{s&*o#l%B41iBdy z`K$MjHrvHz-H;-e73JA-{mXIO5ivONNT(CsWB|2FW#W!AoLS$$+^e-XC+4(D#v~yF z;6Co3i*#HQ6KJvd*WUdk;!hUiAaHHcycB`wp+7W4iN$M9ISh7LtiC}Swfo`T7kk@s zYit4wyb&CP7?SRs@~PgxYV$%7dGMW}Wc3q@jE0`(>4^@$ zFn*4>vqwANBW9bthYR5PIPDzU@Uzkl7*b?im*IbQWxFI#3+jlE=vQcPQWdnmjEdB!W$Aymo literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Purple/images/jbox-icons.png b/apps/static/jbox/Skins2/Purple/images/jbox-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..f72f2924021bf6a23d2df61a42f109d7e49bcef3 GIT binary patch literal 6663 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 Rj`9Ei002ovPDHLkV1new3K;+Z literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Purple/images/jbox-loading1.gif b/apps/static/jbox/Skins2/Purple/images/jbox-loading1.gif new file mode 100644 index 0000000000000000000000000000000000000000..a76f354a66081812d83dc29df636f2d8b83748a5 GIT binary patch literal 3199 zcmc(fX;f2Z9>y=ZH#f_@I(l!gfj|vPM5u+JLRnP^5Fj9nfFK|eqk^a)i$D+vOGtvO zA*=~X0*N775pe;jmPHC;;b7hE=m2d+aj(aY?R2IS?R@A5KFm3DPUk)6eLubLdC&9v zKhMJr@N;oZWCBd!4FLT1VIB9ZyHarBRIsW)>BQXl%ss=@u{E+5X30rz)9aZR|NQ0G z->(@@tDhkX6#xLMf0=XAcO_=-5-_uqGn1H!dlPf^r6vmOlMn1p1+0EUHv2|w;dq7m zuC-@_CdLPAjNAAn69AyOC1U}}iQ4&zIX+Kp-Rg&$wuckE6cK0EkhE*J%-XS?92~Ch z*Q8kq>juAOn-P|{TaU0gCMtVEfSuK^{+!ibo0g`UKqXe|TqB$=#$9)@)i08??HGJ< z_Kbi=%Ff|>#z53PG^ixopI>Hq2=?-nvnf$=syL}Tg+K&5w5nt7T7%MGU#>ZEvbD#u ziGBWDCacyzLv|!R#>2nRz6c+YU1*?Omh->Fx0&-tLwxtRK~06+n0WgE&--3~3kg$Y zlsy9Gu&8}HX?5-VFeY3?6!#B2I~inX70j5wS|yIzpTl@ur5Hv{A!Zy(qit$3!$k9g zrY%e|bQ*G`|GFx?q+5>rW7PE~j$voNJsbs_u?Rxw5Dh9^xtA@WR?+rVaQEb~3qYAi zkq4zTRud~ps?E`=xt$O-w^P%3yi3x4z9IG~yYV993+~xkhF%w1CRAagNmnncuQa6y zhp=Sx#;fGqs8D-t>q@S098$2QGLb}g?TeVRO1x#*I}-sdF-l|?D9r(JWdj7YJIL>Yb76Cv~)oSymx;mT{Azi$ILf!Noxc1 zR$I6vQ4!(2OeCBf62AlKs9lOYHt)V7{7AR%egsWO{ zv`vi=DOKVMPqhKn9dA8>wrh{CJ9?hm!0J<^UA)BBQJe9e!0=SD6FyeP4!EM*pPM3u zhI1xxa)dM?e{6L%AilGGb~cyST9t7Qd!~A_Avr!z%QQnu-W_L2k)-mHSuZi zP{+dV|1f?#{rrTDt*=%PUtfdMb;F_I6fd&E&Fb@i2-D@obt-;#-6EE=Xa%=pwZJ-d zg+%@?u>0cyzogG=U@#G5gh8Q|JJMJdLuC%$exY$YBNxps+88mFN!aR;29vm}LNa}b zi3t`NP_E@ZADiH&W*kwq9;B3K?rdt+B5F;u4&k?H*0yx}fOR#&Ad0$K)}Ax(>qDvq zYAK5V51??NW<4vz78&TT%_@OPeAm%>(RLsvQe<`n$h_b1=uz!gKIPVr0+WNEdrZen zyO-ZRjf5lcQy&(UVoozz*kyEm%)0eR-M0wec9NRMoY?&Ej^2 z!4(v-DlLcz0v<_r?dgGAF+Gz*CiNkt6=mL*AnFaledl~K@M;i@ z*aT1iz(H)Z0@G9-KD2GK%r4Z<Z-CxOv6DvBibr-RMp^b8>|Z*`V6??fuM4a=wL#w~}MSlge+fu7#viFey_QXGuijp!0fzj}zTJ2SkuQ zoT%>(D-x_mZv&KTNH=dQb{oaU5x6|qdm4wYfzp7pPcZ1dG}!YsM!MF)$iUyt_Fi)F zNi-=Tssm{|HU)8^g_`i?pP`>Cq#FfGt6lPiGI^zg8a}KFG2VT*=wYJ=#=xQ| z+Z%}4Z5X58FNbeT&Emu{R}OgNJM5{?Bi>`A26&4-|AMCzYqBaS7qC$~3pTrE%g5k& z=E9x$rv$-h1R{dg)XIcT)Y?Y0PElFiRDO&jcB6prK_Ce60|?k)cn^ZqgODyTe2pAB z4X`sn9x;!lk(YZy25m14Yr#9f)|^$gH(|3o-vqcyNjFadGn-O5#G531K4K&9;a5-Y z;(~7(FKIu-aOg#V;w>gvPQzv{D48r68$pmEdE0O7kB3QyEuUkem^eB>U_2MPU z#DT`W%t(xgm>=h7Y<0 z7cr=$t}afNr~tUoOOl!UCiSG8>LNJ<6z~%8oW1;E2v z44!i}wOfe_jsz?bjhWgaX4EA?cl}RqRdZ2i3Ss;sUNl{Yl{{_a-;@D4RM$-q=ms+QxeQy@I!{?U}fD z?$ggt-n_8=luzMq=WIWe+5W}Qt$+XR_ow&1dpp{(H|%d`Dvz96+vg45FA&(|LRaP#2& zH&4g5o;+6c_QPur-p%P8-FWQY`Ogj{xQ1WqKbqaqpWfP^=D9s^_507h_1B&F$o9dN z-D8v1GynGUZ|`XLo?PLZa-2O^^WOEY$-v%=$CvHfCu_XfGd*b7e`5K8Y1e39>h6o? zkvoU4&3=6U@KSHL$krNEzX#vhCA2=iHT(Aimu?-r+!2fzUx3s_wNF2DUAr4wZiL-$b3!y!BVLY0G1`!@)v5MAX#UmGB zLoty!3^Oxu2QFZ_K$>W1GMwfC&e-D$bj661#S>4S;@xP3!liVo6A6*r#>BDSM*P}! zCk&wpw^7aXBjK2f8pQ}pRWR(P`W3SPl_fWN?%X3sj1h>aQq*d>0FWO>B;EIltPL3O z(z(s1G0;Jfx!$v_#|@6y;KIkXxhCQaWi-N|R2L9eL3BE4>Mla|hB0&~Wb%zc>lC$> zHI-(B(|9>TcE?mfcD1t@B{Q`W3%R+Rm04ddh7)&mxl%u{nbngJdui%LX@zC7WJ|P( zPfm_jG=?csE3DXZR0Du<+`+UK9_#p?C3E?22D}2|dBTiUhW{?amEz;=DV$#tM0dn*^Sh}n@ z?}krt+=}DPyTOd`v%#SmGNmuIEW7_m9=Quqi>IS;?P?TV2qB*vdef$&{nKeH7i>1E zJraubRbV3}ZjZ~_whS{V%`=5xHpQY6S+2QfT@*@bVAIsTPnNdZm1#*Q0SBc_$q?|d z9_VmTtY}gVjDaLK>rK-F0&IVusZ-0$lo`^l{-Pz@of4ZS1Ax2dz5a@9M$aL3T~a>B zOp4vNV#AkLTs&Y}451HhM$ec5l=bMlEtg3&?%xgx(;n=o8goY(P9j3@IOyU?BUk7> z#p4`Vu|P0*G44ctwGq!7{l2nEeZt8ZdN@r=B^kfhN;GCQ9seNd>F`3ZK^QoDcHmOxRJ{pRQFmN zyL9Hpzt|ju2jXk1^ACf}C|$zMi6swJbQUvxld$O1U@Cca0V`bvT*4yTWc{KUX-W^% zu*eS}X9Bi}6tBJ$DksMU>nj%I_W(M(q}^I$F?@CZ3z*x$#A>y4?sc~?&DHk$LI92G zjTWnJ#^&WCGU(xwsj-o$#b3S?V>A=4sI=MB2Sn60KH&~B&q{2yOLJF?{z4K4VaM}6 zX{AETi@2_qJq}h#S-7eI@^3W~2;ZVR=WJ z5>q-mKQ(Cs7P>%|!4C8`W|ax~EA*ybyGsV~Q(n|hdtIS_a0T@}<5O)h=XpVa8&M4q zUzXNaRu>=~U2Z6Cs@!e?#YD->no~%&N3p6l;ZkjtKUOKAqNnNrt5v8d1c1-DRT*S{;Vy5)X2I7q^Zak?NM~ACkV4RvIKch z|IBp&ZavZ>d{DifPPK_`>^|k3>u{rhvAxE*xhmmB9eg&eOATCjMGxmMII0&lZ`3(e zTS`x=EU^WIC)%Ge>&F#`68dVqCJX)c;2W9%>A`d%DXu0M)M?E9TzM`+i<{As8Da_r zcKF6^%c#Z(SK#Yko)D~3Jz4kX3N;B%bgmNB{vj_l{gvcDUOa$LXb6_O)xpXzaOfHQ zwlf1mRR#zk0xi+)f|(&ajR#KTNHHn87NpYXs38h>2}(1Q z4eWk=sj7m(!;$Q=^d81aPh)n<@l4(~cm%H~z+akt99yt3&;V;LVBy7Y2iMWfmWZ71 z&eSIZ20B9~Sv0F3WP?IRzA}!a&Q-jLI|F?Ebv=cFrfTjGhU=ELM#xxS?tm>MzG)-a zW%>wXKy2>zGq16&JXv8iyT|N50&5aV@1B0&#;G`7SeZ*Q?FExW3e*erd^B32ORsYb zs;mtB(wc49rY*-c+<0q7^pP=>JFt)3+q^?c%~OyBJI^Wg-j&w)HEMHiiEoBPO6Lfa zY)H+JEnN+D-Rfk6;No7N-ZVyBz2UH$I8W)5pm-BYFgrJ1@G`_pRi24;1M9N|SqUoj zDGy0*``$9R`5fCK59S`u^j74}uSyv(#v1R9w-nl;bJVL}zsrp3!!n`;`VU+y%zDYa zyOE!$Ud{zQo$y*+rfM;{)5FroVA3)TY=e(_;Jr2$FL^)*9fi4x8vH#cb?qu*5Y)ab zLU}jn6pS&lZaTR1=doX~`f?*8=Va1P zV=JolZc0cMc)WD>2NefIN>Xq7)xak`WJFn7IB)jjLS|UQ^u(hvTT2v2jBNgTf@UQhIv zR)JRdG`O~JSD_ekGWpYztU4L@+AT7R*Q>c}=o|Q$0IART*LxWx5Z4c6u%j8F<-hy|RYs9`;mAfJBZ?AN;_GtG+rN?MSJQ6P;OerleTP}`y1oXDT zU+Hj4s(EBY&i*L`U@a=Q)1-dDO5ZQ%UuJ}AdL}3W*~;Ai zE4t5{Fo+A{;O2HKC6vy?z0C+OJWR%Jd&{*?B4sQ(2=KXFRx`hR&<5q{^xamRS3)n2 zb5mEX&fwb+E(L#HxwWWLq0@ZqgmgJ{!p({jV^~TC;v&a$a>?#%s3OLoeWw9rMi8I4 zsKwFCCYxaBO2NE&99Z3l#Xn9pTP+qqRD4tvo$rkluFR|jh}#2jvDxn#B)KgFd8=l< zB+1}F72|uH>MFfEcnLD3shok+XbNwA<%*t&Bjm*1dA6nZVp29~TiABsUJg^3O`-W_ z)=l7GYzU2Q7HKJV+oL0;{;F*6f*a+mep#Du-DP_2b}w>h3~AYEk8f6%*oa+BHY=dw z9NXlKz?tT!C0qbxa&#ScOyW{8w0y%vbpk==!HbOiF>W8|J%H889s*ks@(pZdLRZCv z#)YjhvQGpKKDD!kf?lt$u)3~Lc*#?uQ6B}4Qsn!AWQjryW%t&0u_d5a99`$(m6!Xu zakA!8p9i@x7rJ<0r2B+*zJZ6BRH_h2Gs&dlefq29jD*2e8%x;ATot3=G{y_R>GQLz z<FqpQisBNdWjIxTOtXL0N*<_9kMPOpkXrX=LI^vYka`we0SCF1zeG zDJ~C^``n-)i+l`>;|^KDY%~U?A#N(KOg`a6iq~M_A@8_YMN2eSTrh>siH43j`S_=9 zqyu{FfI$R=XV3opkeRh|Ef-V^wkx3mNF>`@??3%~HbF@wM1)m2AevP3AaHAHpCckm z)jt@x-+Kws@FjGscA`}t!A76Wj6cvSB8*|_%E~cq(o)n|Z5khd*hP}mXp<&~##Re6 zMz9`x9-q!TnV%$~yHVzMTT~_MKr|E`$bH3V$=%DmH&ee)Z_zp^k(78@Ro%6KjZP`v zc?YAwmQe>}ob|oHv4$9SdCg_DPuc~syrq{R! z^G_Iu0-TUz?P}omfF{PiEv;v5hZrxp<@RcjLxCeaEC zii#Cb0TC@w2b==};*2;HrwUfBTCG;At)6=N?Y`gpt#_^OU3IUO{a@DF>vvzz_1yP; zeH=SJ>L2NHik$MALizK*p8ZoBdR85}T7UM={%b#U-?`iQ-Hn!k3zglTy!OtF=E1F} zADz4R=)w;V`-ewP+&Z`R3)0i_NUh#UEg)#_$T{*zVYP6ou{Xk zA2_<8^|b5A&3%JsN{;<9^7D(k&tCrU{K(vv*NjhOjl; zb!CnJT;Ke!s;x@*M)9i6K84kSmFwA`uS4^xmoFXS()8$04^YWJ=*S<5 zKu)1R|1mgnVrp^Xs|ja}i=wwX=*qn4>bTVAjT-r)@!!2bJMIMI^?A`NgUsQZ)-IQg z>)ggTJwABazYq?FeP$)3UQ*?1NaD8fMbh;poUd#Qfv8d{0yf%k!R9U1+Y@L^0jtHg zaT2hH$zrYDHxc}n$;>}Ekt~GvUBDO#DU8&0pD<4rXV+N_}r$T zcj@3g45mLp7`JKkUl8QfZ4UjF7`%0k`wDr7bRIR&IY+_YiS;pt?h9)Qr|I-DorIgl zx7qs((#F%A>rkcRMV;MQ#Mh>_*?&<&Yb4%OLytMVzMtwHmRDi#vRD}cU1ax8V@f%N zP#AG>h0`6&3w9iI|B_qm#gKf0J!vygR`dTg^@w`}2~40%gk#sXyrkclqy}|4N9=`Y zmF_G^rTo82{BN-Ob#c3|7RU`f%~hR-Y*YQNgL&MECrwndA9rnAedYB=$|MnSVXmvM zWz(3lf8P8&`@UCJ{%8JPD^l1Z(U-YO2q!^vK)A%jg9U=s<*;Ov9c69ZDd5!G8SI@* z7SnsTozFb5&(@JlV;?()9G>kBor2ghPcq&Eo$OCSU}CWOVj}$AcZ;uC=tJ=7TW0zl zm_9s0LGI9zn~y-cFMoeg9GXg5658#cV#1xjhq?Ovsho_jQ!3J(bdfggSSfYRc=I_MH?!es8;Phk zI=%mQ$ypj)g_TOJN4_0(Wr8LqMyaJ(R|^9dyqIxwFiXQ@bWV%flH58dxfow(=*qVa zeq&D0YS|Epb4SCTs?7?1_)e+L_6HS~9<1S27T|R!pgW}G+gO4p5 zo~UI1@*wW)$Px6!fx}%zG?+LGEjwL=!GnXcOGW4v_~P{}kWPo`KDYCc zyL4pl{S?F(d7k-G@^eHicE3y#zZQc}-kQa~`gtf~k3xn&mm?MMP5S#h=f-fd4p5^jaV#!=MHg*jQMoF}CoavXdBx(#hiHAVMRtS;J z!64TtFj)?tXor24nbA>WST*z$=Qf=(`yg{T@Yxf<#UTofe)~56#*oDKHj+MkQU2h; z-5*ckVlk5N>=gLs&4FL%{D$M)cmIAD8uNl(R|O(Gi$1dgLEId}{e@8$r-=ZzB=S29 z^(AZ6qp@}h&94N<$IKObj7Es7uujWXDaiEK3(~Q1RKzjlm2Gm&9%DJT6%fpyftF|+(&!M zgOI-$tws#@KcIyYQGbcHN{=%?&RTJ~z$)q~j1yS!;?p}S_vRh^Ye#1dd&?ki}fJ#G&x_mr7E&rDZTQk&gOEByyZBbvidli_AO_rf-48vP=n~ z^z+-`&(1dk^tNu`Gc&3@x&fSwAikH7jlCz2Y#2S7Yw{6`FCgAml2HFqW1!aCw?WQG zGE15y0bjk^^UQQ33BW-dfBIXa)oySaY4fSiEioQ_;c<5|*HTKMS@@-yszR}TSlJgK z_=o9jOcC%g9a~wc8g#k}aoNkgt%V%`iU!YRg;HNVOa*z-dn(f8lp<7Mq}HU#y9!Z} zc7e(oO0{Cmx(skxI{(RPX{i1Dz>RymF=2?kzsBh5ix&i4Y@GR1>ZtOg>GRqqV#B?+ zkFPv6xc8jMG0Q`BeZU?x+!EK0%1q5)D%Qjr@S&0&-N$EWYkKpdse<)W7VQ|xDTv&{ zFzOq*tRKxcU)Ya^Y% z(s0>5lWBk-oT8Iu(B`KILmFwe^m_}|iuC(iZ0)o_TpZrmVRJ@8H%TwiWu>P=GY%)u z?%YP5vZvzPmA|~B69sxsSMet3?=LtolUrKYWz*RB8yfPou`5|={ev%ZqI}#WYKdy= z(5Zvd=TFfT{$ev3<>QL>FMpd|5GWE6BxyW9zhM5#FJ?KVQkEo{hJ&EE6anRcOah?r zR~24fBDYy6-?*s;-EEb?B57kIlxW6KbmK-W*UUMfRGbFQyyNHFx-H&bN>cDrH^#Yn zQ+CP9=~G-oC>r^XKJu>bt?+3-e?Kk*c>P-Vw8Q_jzduKYMQLpMfZ3Js`*#9LO?|qz z%YvwMm+M?sE+gKcx|iO7aK-*HIqgfPbo2Zz32pXzYpeoG*qBzB`YtPUtFIT3-kjX5o8@sR=JZXbgf{1I3w8BNWsbL5K1 zpj+Qi2D|+m^7q|2TJY*DO8Z;80P_ss`4NXv^dMEb_>|K zFncVw@I?+SgIHfWcKP9-M{8NIJ)O%z(frTmu2{tWQXqh28Jyx0JRb!xmCRdChrU`T zV!Oa{3+;xxK;1^u*8o3^qlHKV7L>u+mG>$=w)r@-t_;?Fen#g&W4 zP~BGp3auB!dOPS}_ic|$6tcd%hVv`%mDlKmm4@hLq$eAx@%B0e)v+&PusG=6*~z@L+LJ95Hv%R$FZ%ZGL@Lp zW~{uoy4WgSgm5lX%GdcWw5!78mQs!)_*k0c2kV+jGr!h5)C8{C8kLS!#(vv4d5t7I zv)@tAn~HAnkD$zq-l1`FZ4<`U8LJm0Z(}uV)EMRyzHV=W z*)ZIhD5TyFKtCDQ=O2nGJmCNsKJlGxq)7kXi$PsfB}g@=7lidT^X-W$-b5O;D`+Km z{rsyIsY5xXcw@Q78>3ekbP-umK)A+vEram&{S+pU^klURD+he$tz7V>6Rsi%Se6vP zP>~c1d;p1z!H@vr!fFVDODsYzw|2XPm#hLe?%hl8GzSQUG+Lu44}g!enW$MCpjK-- z)Oi*RVqajf876H|aPXDjA*;`Avi-v;k%8J*_a7x9PoFYrA(6U2wP{0v>zy-;FcH*~ zHZ*D2qlAfBod!yAZ&9d^Fx_T!od&|^_O~Hsze=if^v+hIV;8=`%wI&b*Q?iVjWBid z8w~DQm$sO5FAkx0L+K7>Fi~&hQ(T1Kc(;CFf4^%-A}3|-RN8_RVtUb74d;LxNt?*4 z)pWgaU*9W_Yt5QYyPZlK^YCjqk=pM#HY)i1V+Q4UX}tTrHs*Y1`<$8&5s!}sCMl^j zX7pdgr)Bb8R82=FaYBA3;z@@tdP)NK>iY}=xs<6}R1dDF2kd>Y9R1Xn4rU~4)oK#l z^7%fC&{;VMosOuIbR?yZSi9G3!G^22bhw&5~mTbc%82q|2q${wz}M=j;-!kar^82bVw+LTVi%N=~WDkQtp z9(I;eEscoEp6WK9XG-w_RfgS_dWnhTV`tP0W`rzI zu9-v^wlySVsR{PsPOrk5(x_(J<%~)y%amF$ z+#W-#6tJpPxx?M$K|osh>y55r#+ctOjIB#|O}@ZrjT=uW8k(TZf$$=^wtJp>9cppg zwY1$HYD%Gs;s>V@S}$2XYU`3$w;|NeT>@GeWv&Z_1P^`{hKyH+u z%8k#BWlbNO*N8`6nV>KH6AabSk#6edU**|F(=vJ>n(@N6v~#0DS{sE~+i4p)MVawI z0Ut}#PQkJ`@w(pT6vQQ)61&0L(XSB>%+DKN-22sy#Z$T@dEFV5#p5x-?=j0?UtzlH{ zz(JtqDB}=#a?{Zw8UG}R_;lCEPa=r8@oWY|EWU_fgG>0|`EqV%03>HRIGl{#hv~kL zl4NxFDf~Q9_Ui2$EB5x)zb#6!Lr+jW3Ix|g7)Im{7F#GC9wxe6rJNnlfRVa6E{I9Z z%^qkkbioYD_~xAY!U-_?CM&A0e(pJph!C0#^1=ifog*Gg`gLP5LuAvguriy@PsI&Hl6Ja%&caeocG&`Z-O^2v_o&)&vU;jBZ83LTr*26@Hvqcs zePEyl2j+&Swe}?)n9$fZ~nLISPdRvT;du2-8p1!`U*il!Ed&?H@ z>^PXa%f@5KFgNWpb4*z3#4qPbFmC|hmCO#NG1jf;0K)3o!V0ogL$U3%c{_HZXmN8g zqZQ?Qx6Sh2OX|DoP$CyS27;24Nt~V@`RPRLteAhnDnqU#;1!GNyX!a2*ATj|?_Co{ zVul|)l*2#4Hy(oU8&bwH0{#PTx~muKDbBll=F1`N`KF0ZCyX(51HuufwUn)F<>XN9 zRXFUOk~3V_h*Oa-9?pt{`(Sh8r+skT=KFLA2FIQU@^?R&ZR%N zlk1E{#hPia9y-ewMn`>tO>Qn_T0aeod7IT$!kyttc)y$qq^7hGRd{H(vM_e`2dq~$ zI5%AUbaG(y_DMGr-)8LIH_-Y@Gkx03#;OT>s?~EQ3x>jCD|eh;x_DRIW_3CJ$@|)6 zb7reGG=@y3UO7#-kXwXFR+LQ*cFQCfpjtmot=d!r@U~7BlC*u~*p8{PW|Fb6b&?Qh zL-||wCwOz(QSW0367(=CKV?;+_(lAzg@J?Dz{_UFb@6vY6d58OxibVHKOzI) za=us5$zghk9LwL*X%FB({~Z44aCHn7L@11y0@^)G8Tjc~aZLeX3dFPu4pgz| zKJhz$ub*9sj9#>8#(amf1($QZNqctom%+lZm2K%+wlczCMXuG2n2IoF_Uf?%igSe! zYr+~aCjz|O@NwXPt}eNpf(JHzH6+gf5_f#;tJ1%n+f~9;G=EaF;!QU|n>l8peqMMF zR0&3vp5=mn+av2(^Y?FFawbzbPoLHrJ9FHwZ>B9{6qx25s9w;!OkLk5n(!d^z}fSg zB1Z@GYOr~BlA(&Q)F{&nz@Uc40R;yZ42LRk1 zR+)D*fbFp`NZ@jy!^}OzIdR0qJ%RRkDBPYieJYfH5$(fp@G7Sdy?WJWyl@SJT&RI! ziB-g2gCaluL^BJg-g!#ckIpzOj^Xer?9143)#q zFHGtg*-^?K1bDD9&p@eHTJiGYJY+=gK1X=rHcF)eCc9=Wa-1@upQrmuGvR!#VTnsw53{h8|<7mc1D-n1X7?rKbu@`dH;n{IB7OkMHC zx)BNfCZqjgOytpnNxO$n|6{^~xI4dC7q1Lfs~zK42B?L+;1WyVY9WnVyv|%sV&-nD z;ck`5zBZ{;rQgDmiJ~2c@G%`!gK?=Msu>Mvd~n zj^%LCTeno)>%&lv9LM>5R7ml?HjK{3z?Uxp6JuE6=k+>CCVurY8dcbX++9r1mK=kJ zphDmuZY0N+;qD@otk&p3r_o7ca`ZJecTW*VXkIjsGh(2zC1Fwj&Z&For1=sAk)}Fj zqpwkpZap^aF}h$jE^d3vQI)C4V>RAH$3Blo1tUt2lRlofGwo2JJRpl& zjAaJ)FRMriaD!vpk6T4T zKr}B~{Iqv8FYC#awY|B#Ik_8K4sg4F@V6m6MWqgkV^ATdL1ay2|R zn6`<_@F$`9OYFgnR+&uM)WorC_DK%0+WkR07dweb=#5QmyM%ObZyBdip=eI!o%K1( z;F3EDKLwHMEx&h9NI`DjQGPo~hH{>xn2F(ad%(*(fxQ3G|De2L!jb>HJK7&ZG?~Mb zz9*>c(J{A4mvypYVpIl)Q9*?`XE}-`#)jh6EN_0P-gAvYfJFcOPFr^+&PtfoY3nk^ z0uyUlNYIOsQ}Hy$dYz-~ThpcOwKyVMz^Br;#)0~rCs(`F2}H3_@C;Hib5y`cj~zL(&XFud*l zW_)}|?V_f0E22w!GeTJYE`Km(l|!dfy8Txqg+{Ip)UNf%QX;Fg+F-Yzzjq2beKe}q z_$mD5DcXPlbqCwOMS-UT3pK*yh~glW!sF7oT%p{fP%0%!YQ~^SrQv!h&wIg1Dv3;T zS4}~@q(4eIHZJz;8NQn-0+No0U@?irN zjNuHa3|%|iDh4Ym=B-`hZWzBIBMmET;!;r`Br-?vQz9s?VzmutQeE}Xd7)Zh(}M$u77ASuk-zvUR;shMdQjKe7H_-o?5bj8zy}`%zfx&BYHyak&^|8 z{(P=}zOoDieHq!-imHGjWYR}ZQwHi=xK#Q6PoABPa84&|qM9tFq6^+RW7FtmUJ4gI zh!^ItdniQ;J_`E~i?z227W6Pnmq%D4z>`e2Z&}13We{L7p&PR0;dcfj z!f6ou1|(jt*WbBg;@`gkcO{30K7Jf#V%#9$_xqD{X;%x3-+W(zK<{1$*6k@48I~9v z4hn#wh5|9kpA7hPb^1z^m5YL-J5=@v5<{9 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Purple/images/jbox-title-icon.gif b/apps/static/jbox/Skins2/Purple/images/jbox-title-icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..b9c772fb5dd615a76731d4c119ff9fe5ea34ea5e GIT binary patch literal 73 zcmZ?wbhEHbBe?# S{fN*C-Grs4uTF_ESOWmk-xUJ@ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Purple/jbox.css b/apps/static/jbox/Skins2/Purple/jbox.css new file mode 100644 index 000000000..1c0bde788 --- /dev/null +++ b/apps/static/jbox/Skins2/Purple/jbox.css @@ -0,0 +1,41 @@ +@charset "utf-8"; + +*:focus {outline: none;} +/* fade */ +.jbox-fade{background-color:#000000;} +/* drag */ +.jbox-drag{border:1px dashed #8e0674;} +/* jbox */ +div.jbox {padding:0px;border:none;font-size:12px;} +/* border */ +div.jbox .jbox-border{background: none repeat scroll 0 0 #000000;filter:alpha(opacity=20);-moz-opacity:0.2;opacity:0.2;} +/* container */ +div.jbox .jbox-container{background-color:#ffffff;border:1px solid #999999;} +/* title-panel */ +div.jbox .jbox-title-panel{background: #8e0674;background: -webkit-gradient(linear, left top, left bottom, from(#9a1f82), to(#72055d));background: -moz-linear-gradient(top, #9a1f82, #72055d);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#9a1f82', endColorstr='#72055d');border-bottom:1px solid #999999;} +div.jbox .jbox-title{font-weight:bold;color:#ffffff;} +div.jbox .jbox-title-icon{background:url(images/jbox-title-icon.gif) no-repeat scroll 3px 5px transparent;} +div.jbox .jbox-close,div.jbox .jbox-close-hover{background:url(images/jbox-close1.gif) no-repeat scroll 0px 0px transparent;} +div.jbox .jbox-close-hover{background-position:-16px 0;} +/* content */ +div.jbox .jbox-content{min-height:24px;line-height:18px;color:#444444;} +div.jbox .jbox-content-loading{background-color:#E6E6E6;} +div.jbox .jbox-content-loading-image{background:url(images/jbox-content-loading.gif) no-repeat bottom center;} +/* button-panel */ +div.jbox .jbox-button-panel{border-top:1px solid #CCCCCC;background-color: #EEEEEE;} +div.jbox .jbox-bottom-text{text-indent:10px;color:#444444;} +div.jbox .jbox-button{background: #8e0674;background: -webkit-gradient(linear, left top, left bottom, from(#9a1f82), to(#72055d));background: -moz-linear-gradient(top, #9a1f82, #72055d);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#9a1f82', endColorstr='#72055d');border:#47033a 1px solid;color:#fff;border-radius:3px 3px 3px 3px;margin:1px 7px 0px 0px;height:22px;cursor:default;} +div.jbox .jbox-button-hover{background: #8e0674;background: -webkit-gradient(linear, left top, left bottom, from(#8e0674), to(#550446));background: -moz-linear-gradient(top, #8e0674, #550446);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#8e0674', endColorstr='#550446');} +div.jbox .jbox-button-active{background: -webkit-gradient(linear, left top, left bottom, from(#550446), to(#8e0674));background: -moz-linear-gradient(top, #550446, #8e0674);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#550446', endColorstr='#8e0674');} +div.jbox-warning .jbox .jbox-button-panel{background-color: #FFFFFF;} +/* tip-color */ +div.jbox .jbox-tip-color{background: #8e0674;background: -webkit-gradient(linear, left top, left bottom, from(#8e0674), to(#550446));background: -moz-linear-gradient(top, #8e0674, #550446);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#8e0674', endColorstr='#550446');border-color:#47033a;border-radius:3px 3px 3px 3px;color:#fff;} +/* icons */ +div.jbox span.jbox-icon{background:url(images/jbox-icons.png) no-repeat scroll 0 0 transparent;_background:url(images/jbox-icons-ie6.gif) no-repeat scroll 0 0 transparent;} +div.jbox span.jbox-icon-info {background-position:0 0;} +div.jbox span.jbox-icon-question {background-position:-36px 0;} +div.jbox span.jbox-icon-success {background-position:-72px 0;} +div.jbox span.jbox-icon-warning {background-position:-108px 0;} +div.jbox span.jbox-icon-error {background-position:-144px 0;} +div.jbox span.jbox-icon-none {display: none; overflow:hidden;} +div.jbox span.jbox-icon-loading {background:url(images/jbox-loading1.gif) no-repeat scroll 0 0 transparent;} \ No newline at end of file diff --git a/apps/static/jbox/Skins2/Yellow/Desktop.ini b/apps/static/jbox/Skins2/Yellow/Desktop.ini new file mode 100644 index 000000000..09485b11b --- /dev/null +++ b/apps/static/jbox/Skins2/Yellow/Desktop.ini @@ -0,0 +1,3 @@ +[.ShellClassInfo] +IconFile=%SystemRoot%\system32\SHELL32.dll +IconIndex=161 diff --git a/apps/static/jbox/Skins2/Yellow/images/Thumbs.db b/apps/static/jbox/Skins2/Yellow/images/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..c9e4ec7f9b83549292374f18f89d40f5000418c4 GIT binary patch literal 33792 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Yellow/images/jbox-close1.gif b/apps/static/jbox/Skins2/Yellow/images/jbox-close1.gif new file mode 100644 index 0000000000000000000000000000000000000000..a87057e8921fd316e5d6d690138ade8ec67c0f23 GIT binary patch literal 1221 zcmeH`SxggA6oyB^GA=D!hD$Lc$Q%Y2L|aN9iRe~ zpYoG_A1Lt>UXRz~_P9Q{BuN%UNf4q8!;++5l4XwP8J7Lc6QTmcGN2+9qG>u12>3~o zz%ZN5W|4tVj7Fov&`=~235UZx&vP8dvMj?eg98Kop->-92Lr$iib$W&M-ag5al75U zF4qUAvj@k!G0bkWSyA-8+1y3>eSVSvMSY;-U?3Qv$Y1T^-45{3ZnN5~miOi^5Q8E~ zS(4%%2m7~PE|;qZz;PTK8xV@3m6erXO=Ii&fBnk|s74aUL68Yr z7Kg_F1O$&l^VX(sdZNrLfZ5Cnyt-YzI7MCbQAJE^yEtodMPhBKx-Dl3((v$UM`3Hu znr6+uur#UR=Df#G(4AZnoOVQCuiU*MY39<6o!dqVu}e49Wf?D8>XiEW^=DF$bIzkv zFJ$OKn*H`pxZ_ciqsb8NH1#3n3HP@gcxh@`q%EsDsM+&)#`2*l`tBG$Cw0{!?Ji`bQRTQaCEXdxQ_P-whk{!lD4e3lv{$42G7fHjgJfyw zXYChn_UHL_x=+1pP_NtZePL0(ZrXx%Q_a<_?V`6rEKly`tXS#oY{QIR%6tR4{prL@ z?(UN3RO19qIk9Y8ij7EEf10k^o^K?|R%(CbzW!=0zPw`X_0Rg`x{~UKwBwl^K3msh z!Rwk3NTt>xP+nTr!e$g!zbcyfNvB-J;J>*$ro}!MYqYwZ7`4BRyeji6wRS J>gg%anx8VZ7x@4H literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Yellow/images/jbox-close2.gif b/apps/static/jbox/Skins2/Yellow/images/jbox-close2.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd2dde9009dfd7adbd272044c03a6f57d1a34701 GIT binary patch literal 791 zcmb7>$xjn;6vwA6O9hlg8U+qOqksl&0we;0tU@)4;6cEIAP}@zV2p4e#zR455lny! z4P20TGDeLd?g}JwQ3*5io2}D!*3MSIC@1uS!=K>i<(=O9=6%0;wHIm%i`vqmcu0XE z8~|O{B}rm~!9c*zFbqi$q|rDa2@*q5fMKel(lj0L`$HiqBuPBaF^tdH<~WuBKoEpL zAi#4RO;MVr8-)X06ogPHq{xaWiX6)U3>A0*+XuyQAS<#ch>9WufGV=g_-JGUp=nCj zG?opb8;GuJ0AQjh5ClO}w5q8XiiPzsO_PQNLEwEfg(3(|k^7Drnj}fhz(}I$IF3^U z0Z`2FY6LQ3$+7|fPLjB)Dh33O1p`5rV_B9nzyV4bQ3+gAMPo^R_LaXod>(Y3w3(M?fQRIm|t2`)+ui792L zi>cnStUiC^ z5E9qUBv)QKQ8j4(IFxcV&ZI$Z>5*@kkGdj&9)|>WMhwp7?N5#Q0 zkm;(Y1-Lt6oRO$0V$5Ao-~Wy@MaHDU-36{G;kxC>!55w7?y40_e0+aKiF1eFK4eWO z*&68JJ%g#0N!GeM<<7^Jp~k1Xzl5*j$u93x&)xR5Q5!r7(LV+)o~)WeFT|&m&!_b) z6-YbJo4o+O$gfl^z8UhrozBT=5HEYU>XC@4#2Zx}`*Pyv@ztofzVvhLORm+Czw_nL F*?;R5w}Aiv literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Yellow/images/jbox-content-loading.gif b/apps/static/jbox/Skins2/Yellow/images/jbox-content-loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..36fc1f8fef1f7724b7e7339f0bc219f182808a03 GIT binary patch literal 10810 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Yellow/images/jbox-icons-ie6.gif b/apps/static/jbox/Skins2/Yellow/images/jbox-icons-ie6.gif new file mode 100644 index 0000000000000000000000000000000000000000..201b912e0db150b0111539e1ec35b2555b618b60 GIT binary patch literal 2767 zcmeH``8yQ)0>)>tj3vz^Mq`^{DEp8mq3)QmRW3q{W63g>q|Oiz33o=**y0Q!GaWUS ztb<6XEMs3P$=cXMLMj?@bkg^nbN`9^%YA=%pZB--c|Py++MTpDJLdZcf`x2D{t*Cx z*Q8j`qEsZnJZw`gZdWPkP%Z6LtLVX1_GvzPsr~r1PW_O6{g6T9h+)I9VdIF=^Ks*5 z;o;WFBh5n7w&|lCv&VWCEPED?_bi-vwL*TmOn$XOd9`Bw`lHRzXZztVCr39I*yC}E&S#*F8Vt-k8LUBVaE@;pL&xoMa8nmAR zU1vehFQC^83|s+2F<>Yb499_SCV0yNl`1E#rPCJ)T=z+54CR}9{j zfCWBSs053Z;C&5PdJNXO!S)C6A{b0$fhjJSEdaBHV7>w@)_`vd;M?Ng@c%o)|LuQ6 z0JkFsg+S;K{eSBJ`2++3AW$h4duLv<0z#g9sP|Dmg%Lbs|9jF>epe#u;3iV_d`!o&l_EACAOt#T~@4|PzY_-CZe{w-qr>US3O+au$C&-(AUR0^CF-y8T}-- z`#kd%F(mr_Mz~F1=H%%t&yDcF5-zdYzk%bW9QAp+S@@%VbjDO1OiCFOs_L9w*GPj@7Kx0XoZ-H%vb zLEbf@BJ-sp3n1^HO8iTxf)wxTT1A=hMdu_hrrXmIktrk$*C72p5)+e*`moPoZk0UbPk_2mohmb zjkCT?lZ74?hs*4zdT=3rnL;{54o!l}D5QG?qbc8gOBAnC6Z92H!I!>aF)t=SM?5n`^^jZa*G8`Qu)UjbiHlhe((WloK5MdG zE<`hE1D`$65qIY6Vaag)I|kPlc#?`CQ_)6p6!P>o3vYK2=6Cyy>Fj=kvvgCxu$xBMLRMp`A)$VdO?R8B?~SnSI*^(E z4MWLeJ6E6Z`$|-h6`&|O{iN&R%w*Z38b7<<(*-UWnA*0Ac*0FRg|9l!Sw#n~m=);l ztMR6k%A;0CJ1-`DJsW!grt_Owkzb%OE5~m?$Ax5n@q}ykR2c)!Ak^um7<)F2j2UX_ zkQw%a=c%Rg2V%3W{&inOjEl}z_3m<5sJny3k2r%LQGl_TE&6TlHk;UoXPSo{Cd)vi zb|U%=y2`4rzZNNAR+$nPZyDV{Jt;)@xH&C&X2o?{ylqpHcG>IN_K;d$KQBd=<@;21G!7nH*R7wMBz@IVr^^KK|TOJ0Y)=Rgz`cSr` ze8M?VA?=W|yc=rOP0XrojmiiR=KessWpZxg4&@57HHg}hbF%)hRQ=cU(qd{OUw4)mknu&INkJp&Z!IKhVsUCoQbC z3TD*kU{E2&bMGaVYw45nOLES-3@iLuAFqVa9_z`AqpS7w-qEW1{s&*o#l%B41iBdy z`K$MjHrvHz-H;-e73JA-{mXIO5ivONNT(CsWB|2FW#W!AoLS$$+^e-XC+4(D#v~yF z;6Co3i*#HQ6KJvd*WUdk;!hUiAaHHcycB`wp+7W4iN$M9ISh7LtiC}Swfo`T7kk@s zYit4wyb&CP7?SRs@~PgxYV$%7dGMW}Wc3q@jE0`(>4^@$ zFn*4>vqwANBW9bthYR5PIPDzU@Uzkl7*b?im*IbQWxFI#3+jlE=vQcPQWdnmjEdB!W$Aymo literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Yellow/images/jbox-icons.png b/apps/static/jbox/Skins2/Yellow/images/jbox-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..f72f2924021bf6a23d2df61a42f109d7e49bcef3 GIT binary patch literal 6663 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 Rj`9Ei002ovPDHLkV1new3K;+Z literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Yellow/images/jbox-loading1.gif b/apps/static/jbox/Skins2/Yellow/images/jbox-loading1.gif new file mode 100644 index 0000000000000000000000000000000000000000..0edc29ed8cdea973ecc5af41eedee80479ecc733 GIT binary patch literal 3199 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 AE&u=k literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Yellow/images/jbox-loading2.gif b/apps/static/jbox/Skins2/Yellow/images/jbox-loading2.gif new file mode 100644 index 0000000000000000000000000000000000000000..c417b4dd9f65879a22b91cde0d4311490a17e435 GIT binary patch literal 4167 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 d3-drjWf0Rgglr6;v5hZrxp<@b!Zb3CeaEC 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Yellow/images/jbox-title-icon.gif b/apps/static/jbox/Skins2/Yellow/images/jbox-title-icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..b9c772fb5dd615a76731d4c119ff9fe5ea34ea5e GIT binary patch literal 73 zcmZ?wbhEHbBe?# S{fN*C-Grs4uTF_ESOWmk-xUJ@ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/Yellow/jbox.css b/apps/static/jbox/Skins2/Yellow/jbox.css new file mode 100644 index 000000000..a3b35a17f --- /dev/null +++ b/apps/static/jbox/Skins2/Yellow/jbox.css @@ -0,0 +1,41 @@ +@charset "utf-8"; + +*:focus {outline: none;} +/* fade */ +.jbox-fade{background-color:#000000;} +/* drag */ +.jbox-drag{border:1px dashed #febb05;} +/* jbox */ +div.jbox {padding:0px;border:none;font-size:12px;} +/* border */ +div.jbox .jbox-border{background: none repeat scroll 0 0 #000000;filter:alpha(opacity=20);-moz-opacity:0.2;opacity:0.2;} +/* container */ +div.jbox .jbox-container{background-color:#ffffff;border:1px solid #999999;} +/* title-panel */ +div.jbox .jbox-title-panel{background: #febb05;background: -webkit-gradient(linear, left top, left bottom, from(#fed752), to(#fdad02));background: -moz-linear-gradient(top, #fed752, #fdad02);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fed752', endColorstr='#fdad02');border-bottom:1px solid #999999;} +div.jbox .jbox-title{font-weight:bold;color:#ffffff;} +div.jbox .jbox-title-icon{background:url(images/jbox-title-icon.gif) no-repeat scroll 3px 5px transparent;} +div.jbox .jbox-close,div.jbox .jbox-close-hover{background:url(images/jbox-close1.gif) no-repeat scroll 0px 0px transparent;} +div.jbox .jbox-close-hover{background-position:-16px 0;} +/* content */ +div.jbox .jbox-content{min-height:24px;line-height:18px;color:#444444;} +div.jbox .jbox-content-loading{background-color:#E6E6E6;} +div.jbox .jbox-content-loading-image{background:url(images/jbox-content-loading.gif) no-repeat bottom center;} +/* button-panel */ +div.jbox .jbox-button-panel{border-top:1px solid #CCCCCC;background-color: #EEEEEE;} +div.jbox .jbox-bottom-text{text-indent:10px;color:#444444;} +div.jbox .jbox-button{background: #febb05;background: -webkit-gradient(linear, left top, left bottom, from(#fed752), to(#fdad02));background: -moz-linear-gradient(top, #fed752, #fdad02);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fed752', endColorstr='#fdad02');border:#d89413 1px solid;color:#fff;border-radius:3px 3px 3px 3px;margin:1px 7px 0px 0px;height:22px;cursor:default;} +div.jbox .jbox-button-hover{background: #febb05;background: -webkit-gradient(linear, left top, left bottom, from(#febb05), to(#fda601));background: -moz-linear-gradient(top, #febb05, #fda601);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#febb05', endColorstr='#fda601');} +div.jbox .jbox-button-active{background: -webkit-gradient(linear, left top, left bottom, from(#fda601), to(#febb05));background: -moz-linear-gradient(top, #fda601, #febb05);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fda601', endColorstr='#febb05');} +div.jbox-warning .jbox .jbox-button-panel{background-color: #FFFFFF;} +/* tip-color */ +div.jbox .jbox-tip-color{background: #febb05;background: -webkit-gradient(linear, left top, left bottom, from(#febb05), to(#fda601));background: -moz-linear-gradient(top, #febb05, #fda601);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#febb05', endColorstr='#fda601');border-color:#d89413;border-radius:3px 3px 3px 3px;color:#fff;} +/* icons */ +div.jbox span.jbox-icon{background:url(images/jbox-icons.png) no-repeat scroll 0 0 transparent;_background:url(images/jbox-icons-ie6.gif) no-repeat scroll 0 0 transparent;} +div.jbox span.jbox-icon-info {background-position:0 0;} +div.jbox span.jbox-icon-question {background-position:-36px 0;} +div.jbox span.jbox-icon-success {background-position:-72px 0;} +div.jbox span.jbox-icon-warning {background-position:-108px 0;} +div.jbox span.jbox-icon-error {background-position:-144px 0;} +div.jbox span.jbox-icon-none {display: none; overflow:hidden;} +div.jbox span.jbox-icon-loading {background:url(images/jbox-loading1.gif) no-repeat scroll 0 0 transparent;} \ No newline at end of file diff --git a/apps/static/jbox/Skins2/jumpserver/Desktop.ini b/apps/static/jbox/Skins2/jumpserver/Desktop.ini new file mode 100644 index 000000000..09485b11b --- /dev/null +++ b/apps/static/jbox/Skins2/jumpserver/Desktop.ini @@ -0,0 +1,3 @@ +[.ShellClassInfo] +IconFile=%SystemRoot%\system32\SHELL32.dll +IconIndex=161 diff --git a/apps/static/jbox/Skins2/jumpserver/images/Thumbs.db b/apps/static/jbox/Skins2/jumpserver/images/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..c9e4ec7f9b83549292374f18f89d40f5000418c4 GIT binary patch literal 33792 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/jumpserver/images/jbox-close1.gif b/apps/static/jbox/Skins2/jumpserver/images/jbox-close1.gif new file mode 100644 index 0000000000000000000000000000000000000000..a87057e8921fd316e5d6d690138ade8ec67c0f23 GIT binary patch literal 1221 zcmeH`SxggA6oyB^GA=D!hD$Lc$Q%Y2L|aN9iRe~ zpYoG_A1Lt>UXRz~_P9Q{BuN%UNf4q8!;++5l4XwP8J7Lc6QTmcGN2+9qG>u12>3~o zz%ZN5W|4tVj7Fov&`=~235UZx&vP8dvMj?eg98Kop->-92Lr$iib$W&M-ag5al75U zF4qUAvj@k!G0bkWSyA-8+1y3>eSVSvMSY;-U?3Qv$Y1T^-45{3ZnN5~miOi^5Q8E~ zS(4%%2m7~PE|;qZz;PTK8xV@3m6erXO=Ii&fBnk|s74aUL68Yr z7Kg_F1O$&l^VX(sdZNrLfZ5Cnyt-YzI7MCbQAJE^yEtodMPhBKx-Dl3((v$UM`3Hu znr6+uur#UR=Df#G(4AZnoOVQCuiU*MY39<6o!dqVu}e49Wf?D8>XiEW^=DF$bIzkv zFJ$OKn*H`pxZ_ciqsb8NH1#3n3HP@gcxh@`q%EsDsM+&)#`2*l`tBG$Cw0{!?Ji`bQRTQaCEXdxQ_P-whk{!lD4e3lv{$42G7fHjgJfyw zXYChn_UHL_x=+1pP_NtZePL0(ZrXx%Q_a<_?V`6rEKly`tXS#oY{QIR%6tR4{prL@ z?(UN3RO19qIk9Y8ij7EEf10k^o^K?|R%(CbzW!=0zPw`X_0Rg`x{~UKwBwl^K3msh z!Rwk3NTt>xP+nTr!e$g!zbcyfNvB-J;J>*$ro}!MYqYwZ7`4BRyeji6wRS J>gg%anx8VZ7x@4H literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/jumpserver/images/jbox-close2.gif b/apps/static/jbox/Skins2/jumpserver/images/jbox-close2.gif new file mode 100644 index 0000000000000000000000000000000000000000..dd2dde9009dfd7adbd272044c03a6f57d1a34701 GIT binary patch literal 791 zcmb7>$xjn;6vwA6O9hlg8U+qOqksl&0we;0tU@)4;6cEIAP}@zV2p4e#zR455lny! z4P20TGDeLd?g}JwQ3*5io2}D!*3MSIC@1uS!=K>i<(=O9=6%0;wHIm%i`vqmcu0XE z8~|O{B}rm~!9c*zFbqi$q|rDa2@*q5fMKel(lj0L`$HiqBuPBaF^tdH<~WuBKoEpL zAi#4RO;MVr8-)X06ogPHq{xaWiX6)U3>A0*+XuyQAS<#ch>9WufGV=g_-JGUp=nCj zG?opb8;GuJ0AQjh5ClO}w5q8XiiPzsO_PQNLEwEfg(3(|k^7Drnj}fhz(}I$IF3^U z0Z`2FY6LQ3$+7|fPLjB)Dh33O1p`5rV_B9nzyV4bQ3+gAMPo^R_LaXod>(Y3w3(M?fQRIm|t2`)+ui792L zi>cnStUiC^ z5E9qUBv)QKQ8j4(IFxcV&ZI$Z>5*@kkGdj&9)|>WMhwp7?N5#Q0 zkm;(Y1-Lt6oRO$0V$5Ao-~Wy@MaHDU-36{G;kxC>!55w7?y40_e0+aKiF1eFK4eWO z*&68JJ%g#0N!GeM<<7^Jp~k1Xzl5*j$u93x&)xR5Q5!r7(LV+)o~)WeFT|&m&!_b) z6-YbJo4o+O$gfl^z8UhrozBT=5HEYU>XC@4#2Zx}`*Pyv@ztofzVvhLORm+Czw_nL F*?;R5w}Aiv literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/jumpserver/images/jbox-content-loading.gif b/apps/static/jbox/Skins2/jumpserver/images/jbox-content-loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..f04301a940be9f0640ea619683d240c67a0cc2fa GIT binary patch literal 10810 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 A%>V!Z literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/jumpserver/images/jbox-icons-ie6.gif b/apps/static/jbox/Skins2/jumpserver/images/jbox-icons-ie6.gif new file mode 100644 index 0000000000000000000000000000000000000000..201b912e0db150b0111539e1ec35b2555b618b60 GIT binary patch literal 2767 zcmeH``8yQ)0>)>tj3vz^Mq`^{DEp8mq3)QmRW3q{W63g>q|Oiz33o=**y0Q!GaWUS ztb<6XEMs3P$=cXMLMj?@bkg^nbN`9^%YA=%pZB--c|Py++MTpDJLdZcf`x2D{t*Cx z*Q8j`qEsZnJZw`gZdWPkP%Z6LtLVX1_GvzPsr~r1PW_O6{g6T9h+)I9VdIF=^Ks*5 z;o;WFBh5n7w&|lCv&VWCEPED?_bi-vwL*TmOn$XOd9`Bw`lHRzXZztVCr39I*yC}E&S#*F8Vt-k8LUBVaE@;pL&xoMa8nmAR zU1vehFQC^83|s+2F<>Yb499_SCV0yNl`1E#rPCJ)T=z+54CR}9{j zfCWBSs053Z;C&5PdJNXO!S)C6A{b0$fhjJSEdaBHV7>w@)_`vd;M?Ng@c%o)|LuQ6 z0JkFsg+S;K{eSBJ`2++3AW$h4duLv<0z#g9sP|Dmg%Lbs|9jF>epe#u;3iV_d`!o&l_EACAOt#T~@4|PzY_-CZe{w-qr>US3O+au$C&-(AUR0^CF-y8T}-- z`#kd%F(mr_Mz~F1=H%%t&yDcF5-zdYzk%bW9QAp+S@@%VbjDO1OiCFOs_L9w*GPj@7Kx0XoZ-H%vb zLEbf@BJ-sp3n1^HO8iTxf)wxTT1A=hMdu_hrrXmIktrk$*C72p5)+e*`moPoZk0UbPk_2mohmb zjkCT?lZ74?hs*4zdT=3rnL;{54o!l}D5QG?qbc8gOBAnC6Z92H!I!>aF)t=SM?5n`^^jZa*G8`Qu)UjbiHlhe((WloK5MdG zE<`hE1D`$65qIY6Vaag)I|kPlc#?`CQ_)6p6!P>o3vYK2=6Cyy>Fj=kvvgCxu$xBMLRMp`A)$VdO?R8B?~SnSI*^(E z4MWLeJ6E6Z`$|-h6`&|O{iN&R%w*Z38b7<<(*-UWnA*0Ac*0FRg|9l!Sw#n~m=);l ztMR6k%A;0CJ1-`DJsW!grt_Owkzb%OE5~m?$Ax5n@q}ykR2c)!Ak^um7<)F2j2UX_ zkQw%a=c%Rg2V%3W{&inOjEl}z_3m<5sJny3k2r%LQGl_TE&6TlHk;UoXPSo{Cd)vi zb|U%=y2`4rzZNNAR+$nPZyDV{Jt;)@xH&C&X2o?{ylqpHcG>IN_K;d$KQBd=<@;21G!7nH*R7wMBz@IVr^^KK|TOJ0Y)=Rgz`cSr` ze8M?VA?=W|yc=rOP0XrojmiiR=KessWpZxg4&@57HHg}hbF%)hRQ=cU(qd{OUw4)mknu&INkJp&Z!IKhVsUCoQbC z3TD*kU{E2&bMGaVYw45nOLES-3@iLuAFqVa9_z`AqpS7w-qEW1{s&*o#l%B41iBdy z`K$MjHrvHz-H;-e73JA-{mXIO5ivONNT(CsWB|2FW#W!AoLS$$+^e-XC+4(D#v~yF z;6Co3i*#HQ6KJvd*WUdk;!hUiAaHHcycB`wp+7W4iN$M9ISh7LtiC}Swfo`T7kk@s zYit4wyb&CP7?SRs@~PgxYV$%7dGMW}Wc3q@jE0`(>4^@$ zFn*4>vqwANBW9bthYR5PIPDzU@Uzkl7*b?im*IbQWxFI#3+jlE=vQcPQWdnmjEdB!W$Aymo literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/jumpserver/images/jbox-icons.png b/apps/static/jbox/Skins2/jumpserver/images/jbox-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..f72f2924021bf6a23d2df61a42f109d7e49bcef3 GIT binary patch literal 6663 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 Rj`9Ei002ovPDHLkV1new3K;+Z literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/jumpserver/images/jbox-loading1.gif b/apps/static/jbox/Skins2/jumpserver/images/jbox-loading1.gif new file mode 100644 index 0000000000000000000000000000000000000000..5e0834f1d5ae6acf111e40689c95b6dc88b0018e GIT binary patch literal 3199 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/jumpserver/images/jbox-loading2.gif b/apps/static/jbox/Skins2/jumpserver/images/jbox-loading2.gif new file mode 100644 index 0000000000000000000000000000000000000000..209124ab6675551f79f03b15132cdc04b10c7810 GIT binary patch literal 4167 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/jumpserver/images/jbox-loading3.gif b/apps/static/jbox/Skins2/jumpserver/images/jbox-loading3.gif new file mode 100644 index 0000000000000000000000000000000000000000..770540141dc1dd61708274fa044523cc4c02fef2 GIT binary patch literal 8778 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 literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/jumpserver/images/jbox-title-icon.gif b/apps/static/jbox/Skins2/jumpserver/images/jbox-title-icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..b9c772fb5dd615a76731d4c119ff9fe5ea34ea5e GIT binary patch literal 73 zcmZ?wbhEHbBe?# S{fN*C-Grs4uTF_ESOWmk-xUJ@ literal 0 HcmV?d00001 diff --git a/apps/static/jbox/Skins2/jumpserver/jbox.css b/apps/static/jbox/Skins2/jumpserver/jbox.css new file mode 100644 index 000000000..81ba8cc10 --- /dev/null +++ b/apps/static/jbox/Skins2/jumpserver/jbox.css @@ -0,0 +1,41 @@ +@charset "utf-8"; + +*:focus {outline: none;} +/* fade */ +.jbox-fade{background-color:#000000;} +/* drag */ +.jbox-drag{border:1px dashed #0097d4;} +/* jbox */ +div.jbox {padding:0px;border:none;font-size:12px;} +/* border */ +div.jbox .jbox-border{background: none repeat scroll 0 0 #000000;filter:alpha(opacity=20);-moz-opacity:0.2;opacity:0.2;} +/* container */ +div.jbox .jbox-container{background-color:#ffffff;border:1px solid #999999;} +/* title-panel */ +div.jbox .jbox-title-panel{background: #2f4050;background: -webkit-gradient(linear, left top, left bottom, from(#2f4050), to(#2f4050));background: -moz-linear-gradient(top, #2f4050, #2f4050);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#2f4050', endColorstr='#2f4050');border-bottom:1px solid #999999;} +div.jbox .jbox-title{font-weight:bold;color:#ffffff;} +div.jbox .jbox-title-icon{background:url(images/jbox-title-icon.gif) no-repeat scroll 3px 5px transparent;} +div.jbox .jbox-close,div.jbox .jbox-close-hover{background:url(images/jbox-close1.gif) no-repeat scroll 0px 0px transparent;} +div.jbox .jbox-close-hover{background-position:-16px 0;} +/* content */ +div.jbox .jbox-content{min-height:24px;line-height:18px;color:#444444;} +div.jbox .jbox-content-loading{background-color:#E6E6E6;} +div.jbox .jbox-content-loading-image{background:url(images/jbox-content-loading.gif) no-repeat bottom center;} +/* button-panel */ +div.jbox .jbox-button-panel{border-top:1px solid #CCCCCC;background-color: #EEEEEE;} +div.jbox .jbox-bottom-text{text-indent:10px;color:#444444;} +div.jbox .jbox-button{background: #0097d4;background: -webkit-gradient(linear, left top, left bottom, from(#2f4050), to(#2f4050));background: -moz-linear-gradient(top, #2f4050, #2f4050);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#2f4050', endColorstr='#2f4050');border:#004b6a 1px solid;color:#fff;border-radius:3px 3px 3px 3px;margin:1px 7px 0px 0px;height:22px;cursor:default;} +div.jbox .jbox-button-hover{background: #0097d4;background: -webkit-gradient(linear, left top, left bottom, from(#0097d4), to(#005b7f));background: -moz-linear-gradient(top, #0097d4, #005b7f);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0097d4', endColorstr='#005b7f');} +div.jbox .jbox-button-active{background: -webkit-gradient(linear, left top, left bottom, from(#005b7f), to(#0097d4));background: -moz-linear-gradient(top, #005b7f, #0097d4);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#005b7f', endColorstr='#0097d4');} +div.jbox-warning .jbox .jbox-button-panel{background-color: #FFFFFF;} +/* tip-color */ +div.jbox .jbox-tip-color{background: #0097d4;background: -webkit-gradient(linear, left top, left bottom, from(#0097d4), to(#005b7f));background: -moz-linear-gradient(top, #0097d4, #005b7f);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0097d4', endColorstr='#005b7f');border-color:#004b6a;border-radius:3px 3px 3px 3px;color:#fff;} +/* icons */ +div.jbox span.jbox-icon{background:url(images/jbox-icons.png) no-repeat scroll 0 0 transparent;_background:url(images/jbox-icons-ie6.gif) no-repeat scroll 0 0 transparent;} +div.jbox span.jbox-icon-info {background-position:0 0;} +div.jbox span.jbox-icon-question {background-position:-36px 0;} +div.jbox span.jbox-icon-success {background-position:-72px 0;} +div.jbox span.jbox-icon-warning {background-position:-108px 0;} +div.jbox span.jbox-icon-error {background-position:-144px 0;} +div.jbox span.jbox-icon-none {display: none; overflow:hidden;} +div.jbox span.jbox-icon-loading {background:url(images/jbox-loading1.gif) no-repeat scroll 0 0 transparent;} \ No newline at end of file diff --git a/apps/static/jbox/Skins2/样式说明(以Green皮肤为例).css b/apps/static/jbox/Skins2/样式说明(以Green皮肤为例).css new file mode 100644 index 000000000..b05cbe3e6 --- /dev/null +++ b/apps/static/jbox/Skins2/样式说明(以Green皮肤为例).css @@ -0,0 +1,44 @@ +@charset "utf-8"; +/* + ʾCSS ʽֻ޸ɫԣͼƬĵַͼƬСҪĬϵһ£border:dotted solid double dashed +*/ +*:focus {outline: none;} +/* fade */ +.jbox-fade{background-color:#000000;} /* */ +/* drag */ +.jbox-drag{border:1px dashed #89C01D;} /* ϶߿ */ +/* jbox */ +div.jbox {padding:0px;border:none;font-size:12px;} /* ڻʽҪ */ +/* border */ +div.jbox .jbox-border{background: none repeat scroll 0 0 #000000;filter:alpha(opacity=20);-moz-opacity:0.2;opacity:0.2;} /* ߿ʽ */ +/* container */ +div.jbox .jbox-container{background-color:#ffffff;border:1px solid #999999;} /* ڱ߿ڴ */ +/* title-panel */ +div.jbox .jbox-title-panel{background: #86ae00;background: -webkit-gradient(linear, left top, left bottom, from(#92b61a), to(#6b8b00));background: -moz-linear-gradient(top, #92b61a, #6b8b00);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#92b61a', endColorstr='#6b8b00');border-bottom:1px solid #999999;} /* 壬Ҫױ߿Ϊ0 */ +div.jbox .jbox-title{font-weight:bold;color:#ffffff;} /* */ +div.jbox .jbox-title-icon{background:url(images/jbox-title-icon.gif) no-repeat scroll 3px 5px transparent;} /* ͼ */ +div.jbox .jbox-close,div.jbox .jbox-close-hover{background:url(images/jbox-close1.gif) no-repeat scroll 0px 0px transparent;} /* رհť */ +div.jbox .jbox-close-hover{background-position:-16px 0;} +/* content */ +div.jbox .jbox-content{min-height:24px;line-height:18px;color:#444444;} /* */ +div.jbox .jbox-content-loading{background-color:#E6E6E6;} /* ajaxiframeʱloading */ +div.jbox .jbox-content-loading-image{background:url(images/jbox-content-loading.gif) no-repeat bottom center;} /* ajaxiframeʱloadingмĶ̬ͼƬ */ +/* button-panel */ +div.jbox-warning .jbox .jbox-button-panel{background-color: #FFFFFF;} /* δرմʱʱťıɫ */ +div.jbox .jbox-button-panel{border-top:1px solid #CCCCCC;background-color: #EEEEEE;} /* ť壬Ҫ߿Ϊ0 */ +div.jbox .jbox-bottom-text{text-indent:10px;color:#444444;} /* ť */ + /* °ťʽ */ +div.jbox .jbox-button{background: #86ae00;background: -webkit-gradient(linear, left top, left bottom, from(#92b61a), to(#6b8b00));background: -moz-linear-gradient(top, #92b61a, #6b8b00);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#92b61a', endColorstr='#6b8b00');border:#435700 1px solid;color:#fff;border-radius:3px 3px 3px 3px;margin:1px 7px 0px 0px;height:22px;cursor:default;} +div.jbox .jbox-button-hover{background: #86ae00;background: -webkit-gradient(linear, left top, left bottom, from(#86ae00), to(#506800));background: -moz-linear-gradient(top, #86ae00, #506800);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#86ae00', endColorstr='#506800');} +div.jbox .jbox-button-active{background: -webkit-gradient(linear, left top, left bottom, from(#506800), to(#86ae00));background: -moz-linear-gradient(top, #506800, #86ae00);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#506800', endColorstr='#86ae00');} +/* tip-color */ +div.jbox .jbox-tip-color{background: #86ae00;background: -webkit-gradient(linear, left top, left bottom, from(#86ae00), to(#506800));background: -moz-linear-gradient(top, #86ae00, #506800);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#86ae00', endColorstr='#506800');border-color:#435700;border-radius:3px 3px 3px 3px;color:#fff;} /* ʾɫ */ +/* icons */ +div.jbox span.jbox-icon{background:url(images/jbox-icons.png) no-repeat scroll 0 0 transparent;_background:url(images/jbox-icons-ie6.gif) no-repeat scroll 0 0 transparent;} /* ͼʽ */ +div.jbox span.jbox-icon-info {background-position:0 0;} +div.jbox span.jbox-icon-question {background-position:-36px 0;} +div.jbox span.jbox-icon-success {background-position:-72px 0;} +div.jbox span.jbox-icon-warning {background-position:-108px 0;} +div.jbox span.jbox-icon-error {background-position:-144px 0;} +div.jbox span.jbox-icon-none {display: none; overflow:hidden;} +div.jbox span.jbox-icon-loading {background:url(images/jbox-loading1.gif) no-repeat scroll 0 0 transparent;} diff --git a/apps/static/jbox/i18n/jquery.jBox-zh-CN.js b/apps/static/jbox/i18n/jquery.jBox-zh-CN.js new file mode 100644 index 000000000..7783f954a --- /dev/null +++ b/apps/static/jbox/i18n/jquery.jBox-zh-CN.js @@ -0,0 +1,77 @@ + +/* jBox 全局设置 */ +var jBoxConfig = {}; + +jBoxConfig.defaults = { + id: null, /* 在页面中的唯一id,如果为null则自动生成随机id,一个id只会显示一个jBox */ + top: '15%', /* 窗口离顶部的距离,可以是百分比或像素(如 '100px') */ + border: 5, /* 窗口的外边框像素大小,必须是0以上的整数 */ + opacity: 0.1, /* 窗口隔离层的透明度,如果设置为0,则不显示隔离层 */ + timeout: 0, /* 窗口显示多少毫秒后自动关闭,如果设置为0,则不自动关闭 */ + showType: 'fade', /* 窗口显示的类型,可选值有:show、fade、slide */ + showSpeed: 'fast', /* 窗口显示的速度,可选值有:'slow'、'fast'、表示毫秒的整数 */ + showIcon: true, /* 是否显示窗口标题的图标,true显示,false不显示,或自定义的CSS样式类名(以为图标为背景) */ + showClose: true, /* 是否显示窗口右上角的关闭按钮 */ + draggable: true, /* 是否可以拖动窗口 */ + dragLimit: true, /* 在可以拖动窗口的情况下,是否限制在可视范围 */ + dragClone: false, /* 在可以拖动窗口的情况下,鼠标按下时窗口是否克隆窗口 */ + persistent: true, /* 在显示隔离层的情况下,点击隔离层时,是否坚持窗口不关闭 */ + showScrolling: true, /* 是否显示浏览的滚动条 */ + ajaxData: {}, /* 在窗口内容使用get:或post:前缀标识的情况下,ajax post的数据,例如:{ id: 1 } 或 "id=1" */ + iframeScrolling: 'auto', /* 在窗口内容使用iframe:前缀标识的情况下,iframe的scrolling属性值,可选值有:'auto'、'yes'、'no' */ + + title: 'jBox', /* 窗口的标题 */ + width: 350, /* 窗口的宽度,值为'auto'或表示像素的整数 */ + height: 'auto', /* 窗口的高度,值为'auto'或表示像素的整数 */ + bottomText: '', /* 窗口的按钮左边的内容,当没有按钮时此设置无效 */ + buttons: { '确定': 'ok' }, /* 窗口的按钮 */ + buttonsFocus: 0, /* 表示第几个按钮为默认按钮,索引从0开始 */ + loaded: function (h) { }, /* 窗口加载完成后执行的函数,需要注意的是,如果是ajax或iframe也是要等加载完http请求才算窗口加载完成,参数h表示窗口内容的jQuery对象 */ + submit: function (v, h, f) { return true; }, /* 点击窗口按钮后的回调函数,返回true时表示关闭窗口,参数有三个,v表示所点的按钮的返回值,h表示窗口内容的jQuery对象,f表示窗口内容里的form表单键值 */ + closed: function () { } /* 窗口关闭后执行的函数 */ +}; + +jBoxConfig.stateDefaults = { + content: '', /* 状态的内容,不支持前缀标识 */ + buttons: { '确定': 'ok' }, /* 状态的按钮 */ + buttonsFocus: 0, /* 表示第几个按钮为默认按钮,索引从0开始 */ + submit: function (v, h, f) { return true; } /* 点击状态按钮后的回调函数,返回true时表示关闭窗口,参数有三个,v表示所点的按钮的返回值,h表示窗口内容的jQuery对象,f表示窗口内容里的form表单键值 */ +}; + +jBoxConfig.tipDefaults = { + content: '', /* 提示的内容,不支持前缀标识 */ + icon: 'info', /* 提示的图标,可选值有'info'、'success'、'warning'、'error'、'loading',默认值为'info',当为'loading'时,timeout值会被设置为0,表示不会自动关闭。 */ + top: '40%', /* 提示离顶部的距离,可以是百分比或像素(如 '100px') */ + width: 'auto', /* 提示的高度,值为'auto'或表示像素的整数 */ + height: 'auto', /* 提示的高度,值为'auto'或表示像素的整数 */ + opacity: 0, /* 窗口隔离层的透明度,如果设置为0,则不显示隔离层 */ + timeout: 3000, /* 提示显示多少毫秒后自动关闭,必须是大于0的整数 */ + closed: function () { } /* 提示关闭后执行的函数 */ +}; + +jBoxConfig.messagerDefaults = { + content: '', /* 信息的内容,不支持前缀标识 */ + title: 'jBox', /* 信息的标题 */ + icon: 'none', /* 信息图标,值为'none'时为不显示图标,可选值有'none'、'info'、'question'、'success'、'warning'、'error' */ + width: 350, /* 信息的高度,值为'auto'或表示像素的整数 */ + height: 'auto', /* 信息的高度,值为'auto'或表示像素的整数 */ + timeout: 3000, /* 信息显示多少毫秒后自动关闭,如果设置为0,则不自动关闭 */ + showType: 'slide', /* 信息显示的类型,可选值有:show、fade、slide */ + showSpeed: 600, /* 信息显示的速度,可选值有:'slow'、'fast'、表示毫秒的整数 */ + border: 0, /* 信息的外边框像素大小,必须是0以上的整数 */ + buttons: {}, /* 信息的按钮 */ + buttonsFocus: 0, /* 表示第几个按钮为默认按钮,索引从0开始 */ + loaded: function (h) { }, /* 窗口加载完成后执行的函数,参数h表示窗口内容的jQuery对象 */ + submit: function (v, h, f) { return true; }, /* 点击信息按钮后的回调函数,返回true时表示关闭窗口,参数有三个,v表示所点的按钮的返回值,h表示窗口内容的jQuery对象,f表示窗口内容里的form表单键值 */ + closed: function () { } /* 信息关闭后执行的函数 */ +}; + +jBoxConfig.languageDefaults = { + close: '关闭', /* 窗口右上角关闭按钮提示 */ + ok: '确定', /* $.jBox.prompt() 系列方法的“确定”按钮文字 */ + yes: '是', /* $.jBox.warning() 方法的“是”按钮文字 */ + no: '否', /* $.jBox.warning() 方法的“否”按钮文字 */ + cancel: '取消' /* $.jBox.confirm() 和 $.jBox.warning() 方法的“取消”按钮文字 */ +}; + +$.jBox.setDefaults(jBoxConfig); diff --git a/apps/static/jbox/jquery.jBox-2.3.min.js b/apps/static/jbox/jquery.jBox-2.3.min.js new file mode 100644 index 000000000..37e8aa685 --- /dev/null +++ b/apps/static/jbox/jquery.jBox-2.3.min.js @@ -0,0 +1,11 @@ +/* +* jQuery jBox 2.3 +* http://www.kudystudio.com +* Author: kudy chen (kudychen@gmail.com) +* +* Copyright 2011, kudy studio +* Dual licensed under the MIT or GPL Version 3 licenses. +* +* Last Modified: 2011-11-11 +*/ +;eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('(8(a){a.7=8(b,c){c=a.1n({},a.7.17,c);c.1M=c.1V>9;c.1p=c.1p||1q;c.1A=c.1A||1q;5(b==1y){b=\'\'};5(c.W<9){c.W=9};5(c.1t==1y){c.1t=\'51\'+2U.52(2U.3i()*4Z)};6 d=(a.1U.2e&&3u(a.1U.3a)<3r);6 e=a(\'#\'+c.1t);5(e.1I>9){c.1k=a.7.17.1k++;e.16({1k:c.1k});e.10(\'#4\').16({1k:c.1k+1h});1j e};6 f={2g:\'\',1x:\'\',1e:\'\',2j:b.50==53};5(!f.2j){b=b+\'\';6 N=b.56();5(N.1X(\'1t:\')==9)f.1x=\'4t\';1b 5(N.1X(\'4C:\')==9)f.1x=\'35\';1b 5(N.1X(\'57:\')==9)f.1x=\'30\';1b 5(N.1X(\'1F:\')==9)f.1x=\'2w\';1b 5(N.1X(\'1e:\')==9)f.1x=\'3h\';1b{b=\'1e:\'+b;f.1x=\'3h\'};b=b.54(b.1X(":")+1h,b.1I)};5(!c.1p&&!c.1A&&!c.4s){a(a.1U.2e?\'1e\':\'1z\').3c(\'11\',\'2a:2l;1f-27:55;\')};6 g=!c.1p&&!(c.1o==1y);6 h=f.1x==\'35\'||f.1x==\'30\'||f.1x==\'2w\';6 i=1L c.14==\'36\'?(c.14-4Y)+\'19\':"4R%";6 j=[];j.X(\'\');5(c.1M){5((d&&a(\'1F\').1I>9)||a(\'4S, 4P\').1I>9){j.X(\'<1F 1t="4-24" 1a="4-24" 3y="3M:3X" 11="1D:2R;1s:1B;z-3t:-1;">\')}1b{5(d){a(\'3Z\').16(\'3L\',\'2l\')};j.X(\'\')}};j.X(\'\');5(c.1Y){j.X(\'\')};j.X(\'\');j.X(\'\');j.X(\'\');j.X(\'<4p W="0" 4X="0" 4U="0" 11="1E:1c;1f:1c;W:1d;">\');5(c.W>9){j.X(\'<2n>\');j.X(\'<1u 1a="4-W" 11="1E:1c;1f:1c;W:1d;W-3d:\'+c.W+\'19 0 0 0;14:\'+c.W+\'19;Y:\'+c.W+\'19;">\');j.X(\'<1u 1a="4-W" 11="1E:1c;1f:1c;W:1d;Y:\'+c.W+\'19;2a: 2l;">\');j.X(\'<1u 1a="4-W" 11="1E:1c;1f:1c;W:1d;W-3d:0 \'+c.W+\'19 0 0;14:\'+c.W+\'19;Y:\'+c.W+\'19;">\');j.X(\'\')};j.X(\'<2n>\');j.X(\'<1u 1a="4-W" 11="1E:1c;1f:1c;W:1d;">\');j.X(\'<1u 4V="18" 11="1E:1c;1f:1c;W:1d;">\');j.X(\'\');j.X(\'\');5(g){j.X(\'\');j.X(\'\'+(c.1o==\'\'?\'&5p;\':c.1o)+\'\');j.X(\'\')};j.X(\'\');j.X(\'\');j.X(\'\');j.X(\'<1u 1a="4-W" 11="1E:1c;1f:1c;W:1d;">\');j.X(\'\');5(c.W>9){j.X(\'<2n>\');j.X(\'<1u 1a="4-W" 11="1E:1c;1f:1c;W:1d;W-3d:0 0 0 \'+c.W+\'19; 14:\'+c.W+\'19; Y:\'+c.W+\'19;">\');j.X(\'<1u 1a="4-W" 11="1E:1c;1f:1c;W:1d;Y:\'+c.W+\'19;2a: 2l;">\');j.X(\'<1u 1a="4-W" 11="1E:1c;1f:1c;W:1d;W-3d:0 0 \'+c.W+\'19 0; 14:\'+c.W+\'19; Y:\'+c.W+\'19;">\');j.X(\'\')};j.X(\'\');j.X(\'\');j.X(\'\');6 k=\'<1F 2h="4-1F" 1t="4-1F" 14="2v%" Y="2v%" 5i="0" 5b="0" 5c="0" 59="\'+c.4r+\'">\';6 l=a(2f);6 m=a(1H.1z);6 n=a(j.2m(\'\')).5a(m);6 o=n.2r(\'#4\');6 p=n.2r(\'#4-24\');6 q=n.2r(\'#4-3m\');5(!f.2j){3H(f.1x){1R"4t":f.1e=a(\'#\'+b).1e();1K;1R"35":1R"30":f.1e=\'\';f.2g=b;1K;1R"3h":f.1e=b;1K;1R"2w":f.1e=k;5(b.1X(\'#\')==-1h){f.2g=b+(b.1X(\'?\')==-1h?\'?39\':\'&39\')+2U.3i()}1b{6 N=b.5d(\'#\');f.2g=N[9]+(N[9].1X(\'?\')==-1h?\'?39\':\'&39\')+2U.3i()+\'#\'+N[1h]};1K};b={5g:{13:f.1e,1C:c.1C,2o:c.2o,1W:c.1W}}};6 r=[];6 s=o.10(\'.4-2W-1o\').3N(1i);6 t=o.10(\'.4-2W-1l\').3N(1i);6 u=a.1U.2e?\'3j-Y:3V;1f:1c 3O 1c 3O;\':\'1f:1c 2N 1c 2N;\';a.2C(b,8(N,O){5(f.2j){O=a.1n({},a.7.2O,O)};b[N]=O;5(O.1C==1y){O.1C={}};6 P=1q;a.2C(O.1C,8(T,U){P=1i});6 Q=\'1m\';5(1L c.Y==\'36\'){Q=c.Y;5(g){Q=Q-s};5(P){Q=Q-t};Q=(Q-1h)+\'19\'};6 R=\'\';6 S=\'2s\';5(!f.2j&&h){6 T=c.Y;5(1L c.Y==\'36\'){5(g){T=T-s};5(P){T=T-t};S=((T/2X)*1N)+\'19\';T=(T-1h)+\'19\'};R=[\'\',\'\',\'\'].2m(\'\')};r.X(\'\');r.X(\'\'+R+\'\'+O.13+\'\');r.X(\'\');5(!c.1p){r.X(\'<26 1a="4-29-1T" 11="3W:1g;1D:2R;3j-Y:2s;">\')};a.2C(O.1C,8(T,U){r.X(\'<1l 1a="4-1l" 31="\'+U+\'" 11="\'+u+\'">\'+T+\'\')});r.X(\'\')});o.10(\'#4-2T\').1e(r.2m(\'\')).2r(\'.4-1G:3k\').16(\'1D\',\'2R\');5(h){6 N=o.10(\'#4-13\').16({1s:(d)?"1B":"32",1g:-4H})};a.2C(b,8(N,O){6 P=o.10(\'#4-1G-\'+N);P.2r(\'.4-1l-23\').2r(\'1l\').2c(8(){6 Q=P.10(\'#4-13\');6 R=O.1C[a(21).1T()];6 S={};a.2C(o.10(\'#4-2T :4h\').4M(),8(U,V){5(S[V.2h]===1y){S[V.2h]=V.31}1b 5(1L S[V.2h]==4L){S[V.2h].X(V.31)}1b{S[V.2h]=[S[V.2h],V.31]}});6 T=O.1W(R,Q,S);5(T===1y||T){I()}}).1P(\'2t\',8(){a(21).2x(\'4-1l-3x\')}).1P(\'4A\',8(){a(21).2I(\'4-1l-3x\')}).1P(\'4G\',8(){a(21).2x(\'4-1l-2E\')}).1P(\'4O\',8(){a(21).2I(\'4-1l-3x\').2I(\'4-1l-2E\')});P.10(\'.4-1l-23 1l:2V(\'+O.2o+\')\').2x(\'4-1l-1O\')});6 v=8(){n.16({18:l.3e()});5(c.1A){o.16({1s:(d)?"1B":"32",27:1h,29:1h})}};6 w=8(){6 N=l.14();1j 1H.1z.3I1h){4I(O);n.2I(\'4-25\')}},4N)}1b{I()}};6 z=8(N){5(c.1p||c.1A){1j 1q};6 O=(2f.4f)?4f.4g:N.4g;5(O==4F){I()};5(O==5Z){6 P=a(\':4h:5Y:2p\',n);6 Q=!N.4e&&N.1r==P[P.1I-1h];6 R=N.4e&&N.1r==P[9];5(Q||R){38(8(){5(!P)1j;6 S=P[R===1i?P.1I-1h:9];5(S)S.1O()},2G);1j 1q}}};6 A=8(){5(c.1M){p.16({1s:"1B",Y:c.1p?x():l.Y(),14:d?l.14():"2v%",18:9,1g:9,27:9,29:9})}};6 B=8(){5(c.1A){o.16({1s:(d)?"1B":"32",27:1h,29:1h})}1b{q.16({18:c.18});o.16({1s:"1B",18:q.3f().18+(c.1p?l.3e():9),1g:((l.14()-o.3S())/1N)})};5((c.1M&&!c.1p)||(!c.1M&&!c.1p&&!c.1A)){n.16({1s:(d)?"1B":"32",Y:c.1M?l.Y():9,14:"2v%",18:(d)?l.3e():9,1g:9,27:9,29:9})};A()};6 C=8(){c.1k=a.7.17.1k++;n.16({1k:c.1k});o.16({1k:c.1k+1h})};6 D=8(){c.1k=a.7.17.1k++;n.16({1k:c.1k});o.16({1D:"1d",1k:c.1k+1h});5(c.1M){p.16({1D:"1d",1k:c.1k,1V:c.1V})}};6 E=8(N){6 O=N.1w;O.1r.10(\'1F\').2K();5(c.22){O.1r.2u().16({1g:O.1r.16(\'1g\'),18:O.1r.16(\'18\'),61:-1N,60:-1N,14:O.1r.14()+1N,Y:O.1r.Y()+1N}).1Z()};1j 1q};6 F=8(N){6 O=N.1w;6 P=O.49+N.4c-O.43;6 Q=O.4y+N.48-O.4a;5(c.4o){6 R=1h;6 S=1H.46.3C-N.1w.1r.Y()-1h;6 T=1h;6 U=1H.46.3I-N.1w.1r.14()-1h;5(QS)Q=S-(c.22?1N:9);5(PU)P=U-(c.22?1N:9)};5(c.22){O.1r.2u().16({1g:P,18:Q})}1b{O.1r.16({1g:P,18:Q})};1j 1q};6 G=8(N){a(1H).2i(\'.1Y\');5(c.22){6 O=N.1w.1r.2u().2K();N.1w.1r.16({1g:O.16(\'1g\'),18:O.16(\'18\')}).10(\'1F\').1Z()}1b{N.1w.1r.10(\'1F\').1Z()};1j 1q};6 H=8(N){6 O=N.1w.1r.1s();6 P={1r:N.1w.1r,43:N.4c,4a:N.48,49:O.1g,4y:O.18};a(1H).1P(\'2t.1Y\',P,E).1P(\'5V.1Y\',P,F).1P(\'4A.1Y\',P,G)};6 I=8(){5(!c.1p&&!c.1A){5(a(\'.4-1z\').1I==1h){a(a.1U.2e?\'1e\':\'1z\').5U(\'11\')};J()}1b{5(c.1p){6 1v=a(1H.1z).1w(\'1v\');5(1v&&1v.2F==1i){q.16(\'18\',1v.33.18);6 N=q.3f().18+l.3e();5(N==o.3f().18){J()}1b{o.10(\'#4-13\').1e(1v.33.13.5X(2X)).5W().16({1g:((l.14()-o.3S())/1N)}).41({18:N,1V:0.1},3J,J)}}1b{o.41({18:\'-=62\',1V:9},3J,J)}}1b{3H(c.2J){1R\'3D\':o.4b(c.20,J);1K;1R\'24\':o.3P(c.20,J);1K;1R\'1Z\':3R:o.2K(c.20,J);1K}}}};6 J=8(){l.2i(\'3U\',A);5(c.1Y&&!c.1p&&!c.1A){o.10(\'.4-1o-23\').2i(\'2t\',H)};5(f.1x!=\'2w\'){o.10(\'#4-1F\').3c({\'3y\':\'3M:3X\'})};o.1e(\'\').3F();5(d&&!c.1p){m.2i(\'3T\',v)};5(c.1M){p.3P(\'37\',8(){p.2i(\'2c\',y).2i(\'2t\',C).1e(\'\').3F()})};n.2i(\'3Y 3K\',z).1e(\'\').3F();5(d&&c.1M){a(\'3Z\').16(\'3L\',\'2p\')};5(1L c.2H==\'8\'){c.2H()}};6 K=8(){5(c.1Q>9){o.1w(\'3B\',2f.38(I,c.1Q));5(c.1A){o.2E(8(){2f.63(o.1w(\'3B\'))},8(){o.1w(\'3B\',2f.38(I,c.1Q))})}}};6 L=8(){5(1L c.2Y==\'8\'){c.2Y(o.10(\'.4-1G:2p\').10(\'.4-13\'))}};5(!f.2j){3H(f.1x){1R"35":1R"30":a.64({1x:f.1x,2g:f.2g,1w:c.3g==1y?{}:c.3g,5B:\'1e\',5A:1q,2y:8(N,O){o.10(\'#4-13\').16({1s:"3Q"}).1e(N).1Z().2u().2K();L()},2z:8(){o.10(\'#4-13-2B\').1e(\'5z 5C.\')}});1K;1R"2w":o.10(\'#4-1F\').3c({\'3y\':f.2g}).1P("5F",8(N){a(21).5E().16({1s:"3Q"}).1Z().2u().2K();o.10(\'#4-2T .4-1G:3k .4-1l-1O\').1O();L()});1K;3R:o.10(\'#4-13\').1Z();1K}};B();D();5(d&&!c.1p){l.3T(v)};5(c.1M){p.2c(y)};l.3U(A);n.1P(\'3Y 3K\',z);o.10(\'.4-1J\').2c(I);5(c.1M){p.4u(\'37\')};6 M=\'1Z\';5(c.2J==\'3D\'){M=\'44\'}1b 5(c.2J==\'24\'){M=\'4u\'};5(c.1A){o[M](c.20,K)}1b{6 1v=a(1H.1z).1w(\'1v\');5(1v&&1v.2F==1i){a(1H.1z).1w(\'1v\',{2F:1q,33:{}});o.16(\'1D\',\'\')}1b{5(!f.2j&&h){o[M](c.20)}1b{o[M](c.20,L);}}};5(!c.1p){o.10(\'.4-29-1T\').1e(c.4E)}1b{o.10(\'.4-4v,.4-13\').2x(\'4-1v-4x\')};5(f.1x!=\'2w\'){o.10(\'#4-2T .4-1G:3k .4-1l-1O\').1O()}1b{o.1O()};5(!c.1A){K()};n.1P(\'2t\',C);5(c.1Y&&!c.1p&&!c.1A){o.10(\'.4-1o-23\').1P(\'2t\',{1r:o},H).16(\'4w\',\'5D\')};1j n};a.7.3a=2.3;a.7.17={1t:3A,18:"15%",1k:5u,W:2X,1V:0.1,1Q:9,2J:\'24\',20:\'37\',2L:1i,34:1i,1Y:1i,4o:1i,22:1q,4q:1i,4s:1i,3g:{},4r:\'1m\',1o:\'7\',14:3p,Y:\'1m\',4E:\'\',1C:{\'3z\':\'2b\'},2o:9,2Y:8(b){},1W:8(b,c,d){1j 1i},2H:8(){}};a.7.2O={13:\'\',1C:{\'3z\':\'2b\'},2o:9,1W:8(b,c,d){1j 1i}};a.7.2Q={13:\'\',12:\'28\',18:\'40%\',14:\'1m\',Y:\'1m\',1V:9,1Q:4B,2H:8(){}};a.7.2A={13:\'\',1o:\'7\',12:\'1d\',14:3p,Y:\'1m\',1Q:4B,2J:\'3D\',20:5t,W:9,1C:{},2o:9,2Y:8(){},1W:8(b,c,d){1j 1i},2H:8(){}};a.7.1S={1J:\'5s\',2b:\'3z\',3n:\'5v\',3q:\'5y\',2S:\'5x\'};a.7.5w=8(b){a.7.17=a.1n({},a.7.17,b.17);a.7.2O=a.1n({},a.7.2O,b.2O);a.7.2Q=a.1n({},a.7.2Q,b.2Q);a.7.2A=a.1n({},a.7.2A,b.2A);a.7.1S=a.1n({},a.7.1S,b.1S)};a.7.2D=8(){1j a(\'.4-1z\').2V(a(\'.4-1z\').1I-1h)};a.7.5P=8(b){6 c=(1L b==\'3v\')?a(\'#\'+b):a.7.2D();1j c.10(\'#4-1F\').4C(9)};a.7.5O=8(){1j a.7.3b().10(\'.4-13\').1e()};a.7.5N=8(b){1j a.7.3b().10(\'.4-13\').1e(b)};a.7.3b=8(b){5(b==1y){1j a.7.2D().10(\'.4-1G:2p\')}1b{1j a.7.2D().10(\'#4-1G-\'+b)}};a.7.5Q=8(){1j a.7.3b().3c(\'1t\').5T(\'4-1G-\',\'\')};a.7.3w=8(b,c){6 d=a.7.2D();5(d!=1y&&d!=3A){6 e;b=b||1q;d.10(\'.4-1G\').4b(\'37\');5(1L b==\'3v\'){e=d.10(\'#4-1G-\'+b)}1b{e=b?d.10(\'.4-1G:2p\').2F():d.10(\'.4-1G:2p\').2u()};e.44(3p,8(){2f.38(8(){e.10(\'.4-1l-1O\').1O();5(c!=1y){e.10(\'.4-13\').1e(c)}},5S)})}};a.7.5R=8(b){a.7.3w(1i,b)};a.7.5I=8(b){a.7.3w(1q,b)};a.7.1J=8(b,c){b=b||1q;c=c||\'1z\';5(1L b==\'3v\'){a(\'#\'+b).10(\'.4-1J\').2c()}1b{6 d=a(\'.4-\'+c);5(b){5H(6 e=9,l=d.1I;e9){d.2V(d.1I-1h).10(\'.4-1J\').2c()}}}};a.7.5G=8(b,c,d,e,f){6 17={13:b,1o:c,14:d,Y:e};f=a.1n({},17,f);f=a.1n({},a.7.17,f);a.7(f.13,f)};a.7.2d=8(b,c,d,e){6 17={13:b,1o:c,12:d,1C:3s(\'({ "\'+a.7.1S.2b+\'": "2b" })\')};e=a.1n({},17,e);e=a.1n({},a.7.17,e);5(e.W<9){e.W=9};5(e.12!=\'28\'&&e.12!=\'25\'&&e.12!=\'2y\'&&e.12!=\'2z\'&&e.12!=\'3G\'){1f=\'\';e.12=\'1d\'};6 f=e.1o==1y?2G:4j;6 g=e.12==\'1d\'?\'Y:1m;\':\'2P-Y:2M;\'+((a.1U.2e&&3u(a.1U.3a)<3r)?\'Y:1m !4l;Y:2v%;4n:2M;\':\'Y:1m;\');6 h=[];h.X(\'1e:\');h.X(\'\');h.X(\'<26 1a="4-12 4-12-\'+e.12+\'" 11="1s:1B; 18:\'+(f+e.W)+\'19;1g:\'+(2G+e.W)+\'19; 14:2q; Y:2q;">\');h.X(e.13);h.X(\'\');e.13=h.2m(\'\');a.7(e.13,e)};a.7.5J=8(b,c,d){a.7.2d(b,c,\'1d\',d)};a.7.28=8(b,c,d){a.7.2d(b,c,\'28\',d)};a.7.2y=8(b,c,d){a.7.2d(b,c,\'2y\',d)};a.7.2z=8(b,c,d){a.7.2d(b,c,\'2z\',d)};a.7.5M=8(b,c,d,e){6 17={1C:3s(\'({ "\'+a.7.1S.2b+\'": "2b", "\'+a.7.1S.2S+\'": "2S" })\')};5(d!=1y&&1L d==\'8\'){17.1W=d}1b{17.1W=8(f,g,h){1j 1i}};e=a.1n({},17,e);a.7.2d(b,c,\'3G\',e)};a.7.25=8(b,c,d,e){6 17={1C:3s(\'({ "\'+a.7.1S.3n+\'": "3n", "\'+a.7.1S.3q+\'": "3q", "\'+a.7.1S.2S+\'": "2S" })\')};5(d!=1y&&1L d==\'8\'){17.1W=d}1b{17.1W=8(f,g,h){1j 1i}};e=a.1n({},17,e);a.7.2d(b,c,\'25\',e)};a.7.1v=8(b,c,d){6 17={13:b,12:c,1V:9,W:9,34:1q,1C:{},1p:1i};5(17.12==\'2B\'){17.1Q=9;17.1V=0.1};d=a.1n({},17,d);d=a.1n({},a.7.2Q,d);d=a.1n({},a.7.17,d);5(d.1Q<9){d.1Q=9};5(d.W<9){d.W=9};5(d.12!=\'28\'&&d.12!=\'25\'&&d.12!=\'2y\'&&d.12!=\'2z\'&&d.12!=\'2B\'){d.12=\'28\'};6 e=[];e.X(\'1e:\');e.X(\'\');e.X(\'<26 1a="4-12 4-12-\'+d.12+\'" 11="1s:1B;18:\'+(4d+d.W)+\'19;1g:\'+(4d+d.W)+\'19; 14:2q; Y:2q;">\');e.X(d.13);e.X(\'\');d.13=e.2m(\'\');5(a(\'.4-1v\').1I>9){a(1H.1z).1w(\'1v\',{2F:1i,33:d});a.7.4k()};5(d.3E!=1y){a(\'#\'+d.3E).1O();18.$(\'#\'+d.3E).1O()};a.7(d.13,d)};a.7.4k=8(){a.7.1J(1q,\'1v\')};a.7.3l=8(b,c,d,e){a.7.4i();6 17={13:b,1o:c,1Q:(d==1y?a.7.2A.1Q:d),1V:9,34:1i,1Y:1q,1A:1i};e=a.1n({},17,e);e=a.1n({},a.7.2A,e);6 f=a.1n({},a.7.17,{});f.1o=3A;e=a.1n({},f,e);5(e.W<9){e.W=9};5(e.12!=\'28\'&&e.12!=\'25\'&&e.12!=\'2y\'&&e.12!=\'2z\'&&e.12!=\'3G\'){1f=\'\';e.12=\'1d\'};6 g=e.1o==1y?2G:4j;6 h=e.12==\'1d\'?\'Y:1m;\':\'2P-Y:2M;\'+((a.1U.2e&&3u(a.1U.3a)<3r)?\'Y:1m !4l;Y:2v%;4n:2M;\':\'Y:1m;\');6 i=[];i.X(\'1e:\');i.X(\'\');i.X(\'<26 1a="4-12 4-12-\'+e.12+\'" 11="1s:1B; 18:\'+(g+e.W)+\'19;1g:\'+(2G+e.W)+\'19; 14:2q; Y:2q;">\');i.X(e.13);i.X(\'\');e.13=i.2m(\'\');a.7(e.13,e)};a.7.4i=8(){a.7.1J(1q,\'3l\')};2f.7=a.7})(5K);',62,377,'||||jbox|if|var|jBox|function|0x0|||||||||||||||||||||||||||||||||||||||||||||||||border|push|height|div|find|style|icon|content|width||css|defaults|top|px|class|else|0px|none|html|padding|left|0x1|true|return|zIndex|button|auto|extend|title|isTip|false|target|position|id|td|tip|data|type|undefined|body|isMessager|absolute|buttons|display|margin|iframe|state|document|length|close|break|typeof|showFade|0x2|focus|bind|timeout|case|languageDefaults|text|browser|opacity|submit|indexOf|draggable|show|showSpeed|this|dragClone|panel|fade|warning|span|right|info|bottom|overflow|ok|click|prompt|msie|window|url|name|unbind|isObject|align|hidden|join|tr|buttonsFocus|visible|32px|children|25px|mousedown|prev|100|IFRAME|addClass|success|error|messagerDefaults|loading|each|getBox|hover|next|0xa|closed|removeClass|showType|hide|showIcon|30px|10px|stateDefaults|min|tipDefaults|block|cancel|states|Math|eq|help|0x5|loaded|5px|POST|value|fixed|options|showClose|GET|number|fast|setTimeout|___t|version|getState|attr|radius|scrollTop|offset|ajaxData|HTML|random|line|first|messager|temp|yes|50px|0x15e|no|0x7|eval|index|parseInt|string|goToState|active|src|确定|null|autoClosing|clientHeight|slide|focusId|remove|question|switch|clientWidth|0x1f4|keypress|visibility|about|outerHeight|6px|fadeOut|static|default|outerWidth|scroll|resize|19px|float|blank|keydown|select||animate|center|startX|slideDown|1984|documentElement|drag|pageY|startLeft|startY|slideUp|pageX|0x4|shiftKey|event|keyCode|input|closeMessager|0x23|closeTip|important|0x28|_height|dragLimit|table|persistent|iframeScrolling|showScrolling|ID|fadeIn|container|cursor|color|startTop|15px|mouseup|0xbb8|get|0x6|bottomText|0x1b|mouseover|0x2710|clearInterval|toggleClass|setInterval|Array|serializeArray|0x64|mouseout|applet|background|90|object|ff3300|cellspacing|valign|fdisplay|cellpadding|0x32|0xf4240|constructor|jBox_|floor|Object|substring|17px|toLowerCase|post|onmouseover|scrolling|appendTo|marginwidth|frameborder|split|image|220px|state0|70px|marginheight|0x19|0x18|onmouseout|pointer|0x12|all|nbsp|ellipsis|word|关闭|0x258|0x7c0|是|setDefaults|取消|否|Loading|cache|dataType|Error|move|parent|load|open|for|prevState|alert|jQuery|18px|confirm|setContent|getContent|getIframe|getStateName|nextState|0x14|replace|removeAttr|mousemove|end|substr|enabled|0x9|marginTop|marginLeft|200|clearTimeout|ajax'.split('|'),0,{})); \ No newline at end of file diff --git a/apps/static/js/jquery-migrate-1.1.1.min.js b/apps/static/js/jquery-migrate-1.1.1.min.js new file mode 100644 index 000000000..7aa623713 --- /dev/null +++ b/apps/static/js/jquery-migrate-1.1.1.min.js @@ -0,0 +1,9 @@ +/*! + * jQuery Migrate - v1.1.1 - 2013-02-16 + * https://github.com/jquery/jquery-migrate + * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors; Licensed MIT + */ +(function(s,p,i){var D={};s.migrateWarnings=[];if(!s.migrateMute&&p.console&&console.log){console.log("JQMIGRATE: Logging is active")}if(s.migrateTrace===i){s.migrateTrace=true}s.migrateReset=function(){D={};s.migrateWarnings.length=0};function h(G){if(!D[G]){D[G]=true;s.migrateWarnings.push(G);if(p.console&&console.warn&&!s.migrateMute){console.warn("JQMIGRATE: "+G);if(s.migrateTrace&&console.trace){console.trace()}}}}function a(I,K,H,J){if(Object.defineProperty){try{Object.defineProperty(I,K,{configurable:true,enumerable:true,get:function(){h(J);return H},set:function(L){h(J);H=L}});return}catch(G){}}s._definePropertyBroken=true;I[K]=H}if(document.compatMode==="BackCompat"){h("jQuery is not compatible with Quirks Mode")}var f=s("",{size:1}).attr("size")&&s.attrFn,x=s.attr,w=s.attrHooks.value&&s.attrHooks.value.get||function(){return null},j=s.attrHooks.value&&s.attrHooks.value.set||function(){return i},t=/^(?:input|button)$/i,y=/^[238]$/,B=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,k=/^(?:checked|selected)$/i;a(s,"attrFn",f||{},"jQuery.attrFn is deprecated");s.attr=function(K,I,L,J){var H=I.toLowerCase(),G=K&&K.nodeType;if(J){if(x.length<4){h("jQuery.fn.attr( props, pass ) is deprecated")}if(K&&!y.test(G)&&(f?I in f:s.isFunction(s.fn[I]))){return s(K)[I](L)}}if(I==="type"&&L!==i&&t.test(K.nodeName)&&K.parentNode){h("Can't change the 'type' of an input or button in IE 6/7/8")}if(!s.attrHooks[H]&&B.test(H)){s.attrHooks[H]={get:function(N,M){var P,O=s.prop(N,M);return O===true||typeof O!=="boolean"&&(P=N.getAttributeNode(M))&&P.nodeValue!==false?M.toLowerCase():i},set:function(N,P,M){var O;if(P===false){s.removeAttr(N,M)}else{O=s.propFix[M]||M;if(O in N){N[O]=true}N.setAttribute(M,M.toLowerCase())}return M}};if(k.test(H)){h("jQuery.fn.attr('"+H+"') may use property instead of attribute") +}}return x.call(s,K,I,L)};s.attrHooks.value={get:function(H,G){var I=(H.nodeName||"").toLowerCase();if(I==="button"){return w.apply(this,arguments)}if(I!=="input"&&I!=="option"){h("jQuery.fn.attr('value') no longer gets properties")}return G in H?H.value:null},set:function(G,H){var I=(G.nodeName||"").toLowerCase();if(I==="button"){return j.apply(this,arguments)}if(I!=="input"&&I!=="option"){h("jQuery.fn.attr('value', val) no longer sets properties")}G.value=H}};var q,E,z=s.fn.init,A=s.parseJSON,v=/^(?:[^<]*(<[\w\W]+>)[^>]*|#([\w\-]*))$/;s.fn.init=function(G,J,I){var H;if(G&&typeof G==="string"&&!s.isPlainObject(J)&&(H=v.exec(G))&&H[1]){if(G.charAt(0)!=="<"){h("$(html) HTML strings must start with '<' character")}if(J&&J.context){J=J.context}if(s.parseHTML){return z.call(this,s.parseHTML(s.trim(G),J,true),J,I)}}return z.apply(this,arguments)};s.fn.init.prototype=s.fn;s.parseJSON=function(G){if(!G&&G!==null){h("jQuery.parseJSON requires a valid JSON string");return null}return A.apply(this,arguments)};s.uaMatch=function(H){H=H.toLowerCase();var G=/(chrome)[ \/]([\w.]+)/.exec(H)||/(webkit)[ \/]([\w.]+)/.exec(H)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(H)||/(msie) ([\w.]+)/.exec(H)||H.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(H)||[];return{browser:G[1]||"",version:G[2]||"0"}};if(!s.browser){q=s.uaMatch(navigator.userAgent);E={};if(q.browser){E[q.browser]=true;E.version=q.version}if(E.chrome){E.webkit=true}else{if(E.webkit){E.safari=true}}s.browser=E}a(s,"browser",s.browser,"jQuery.browser is deprecated");s.sub=function(){function G(J,K){return new G.fn.init(J,K)}s.extend(true,G,this);G.superclass=this;G.fn=G.prototype=this();G.fn.constructor=G;G.sub=this.sub;G.fn.init=function I(J,K){if(K&&K instanceof s&&!(K instanceof G)){K=G(K)}return s.fn.init.call(this,J,K,H)};G.fn.init.prototype=G.fn;var H=G(document);h("jQuery.sub() is deprecated");return G};s.ajaxSetup({converters:{"text json":s.parseJSON}});var n=s.fn.data;s.fn.data=function(I){var H,G,J=this[0];if(J&&I==="events"&&arguments.length===1){H=s.data(J,I); +G=s._data(J,I);if((H===i||H===G)&&G!==i){h("Use of jQuery.fn.data('events') is deprecated");return G}}return n.apply(this,arguments)};var o=/\/(java|ecma)script/i,u=s.fn.andSelf||s.fn.addBack;s.fn.andSelf=function(){h("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()");return u.apply(this,arguments)};if(!s.clean){s.clean=function(G,H,N,J){H=H||document;H=!H.nodeType&&H[0]||H;H=H.ownerDocument||H;h("jQuery.clean() is deprecated");var K,I,L,O,M=[];s.merge(M,s.buildFragment(G,H).childNodes);if(N){L=function(P){if(!P.type||o.test(P.type)){return J?J.push(P.parentNode?P.parentNode.removeChild(P):P):N.appendChild(P)}};for(K=0;(I=M[K])!=null;K++){if(!(s.nodeName(I,"script")&&L(I))){N.appendChild(I);if(typeof I.getElementsByTagName!=="undefined"){O=s.grep(s.merge([],I.getElementsByTagName("script")),L);M.splice.apply(M,[K+1,0].concat(O));K+=O.length}}}}return M}}var c=s.event.add,b=s.event.remove,g=s.event.trigger,r=s.fn.toggle,d=s.fn.live,m=s.fn.die,C="ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",e=new RegExp("\\b(?:"+C+")\\b"),F=/(?:^|\s)hover(\.\S+|)\b/,l=function(G){if(typeof(G)!=="string"||s.event.special.hover){return G}if(F.test(G)){h("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'")}return G&&G.replace(F,"mouseenter$1 mouseleave$1")};if(s.event.props&&s.event.props[0]!=="attrChange"){s.event.props.unshift("attrChange","attrName","relatedNode","srcElement")}if(s.event.dispatch){a(s.event,"handle",s.event.dispatch,"jQuery.event.handle is undocumented and deprecated")}s.event.add=function(J,H,I,K,G){if(J!==document&&e.test(H)){h("AJAX events should be attached to document: "+H)}c.call(this,J,l(H||""),I,K,G)};s.event.remove=function(K,I,J,G,H){b.call(this,K,l(I)||"",J,G,H)};s.fn.error=function(){var G=Array.prototype.slice.call(arguments,0);h("jQuery.fn.error() is deprecated");G.splice(0,0,"error");if(arguments.length){return this.bind.apply(this,G)}this.triggerHandler.apply(this,G);return this};s.fn.toggle=function(K,I){if(!s.isFunction(K)||!s.isFunction(I)){return r.apply(this,arguments) +}h("jQuery.fn.toggle(handler, handler...) is deprecated");var H=arguments,G=K.guid||s.guid++,J=0,L=function(M){var N=(s._data(this,"lastToggle"+K.guid)||0)%J;s._data(this,"lastToggle"+K.guid,N+1);M.preventDefault();return H[N].apply(this,arguments)||false};L.guid=G;while(J35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(m($){$.d=m(j,8){8=$.R({},$.d.H,8);8.1h=8.1z>0;8.12=8.12||V;8.1j=8.1j||V;c(j==14){j=\'\'}c(8.n<0){8.n=0}c(8.11==14){8.11=\'5e\'+30.5c(30.3H()*5j)}g 1o=($.1w.1Q&&41($.1w.2Y)<7);g 2B=$(\'#\'+8.11);c(2B.1t>0){8.O=$.d.H.O++;2B.E({O:8.O});2B.x(\'#b\').E({O:8.O+1});Q 2B}g q={2b:\'\',17:\'\',s:\'\',1T:j.5i==55};c(!q.1T){j=j+\'\';g 2f=j.56();c(2f.1E(\'11:\')==0)q.17=\'4g\';J c(2f.1E(\'4L:\')==0)q.17=\'34\';J c(2f.1E(\'5J:\')==0)q.17=\'33\';J c(2f.1E(\'19:\')==0)q.17=\'2q\';J c(2f.1E(\'s:\')==0)q.17=\'3X\';J{j=\'s:\'+j;q.17=\'3X\'}j=j.5I(j.1E(":")+1,j.1t)}g 3f=!8.12&&!(8.B==14);g 37=q.17==\'34\'||q.17==\'33\'||q.17==\'2q\';g 4k=1n 8.D==\'3a\'?(8.D-50)+\'G\':"5H%";g C=[];C.o(\'\');c(8.1h){c((1o&&$(\'19\').1t>0)||$(\'3V, 5r\').1t>0){C.o(\'<19 11="b-1F" I="b-1F" 3t="4v:52" A="1e:2G;P:1a;z-3r:-1;">\')}J{c(1o){$(\'4Z\').E(\'4X\',\'21\')}C.o(\'\')}}C.o(\'\');c(8.1D){C.o(\'\')}C.o(\'\');C.o(\'\');C.o(\'\');C.o(\'<4h n="0" 5v="0" 5w="0" A="1f:L;M:L;n:K;">\');c(8.n>0){C.o(\'<2r>\');C.o(\'\');C.o(\'\');C.o(\'\');C.o(\'\')}C.o(\'<2r>\');C.o(\'\');C.o(\'\');C.o(\'\');C.o(\'\');c(3f){C.o(\'\');C.o(\'\'+(8.B==\'\'?\'&5E;\':8.B)+\'\');C.o(\'\')}C.o(\'\');C.o(\'\');C.o(\'\');C.o(\'\');C.o(\'\');c(8.n>0){C.o(\'<2r>\');C.o(\'\');C.o(\'\');C.o(\'\');C.o(\'\')}C.o(\'\');C.o(\'\');C.o(\'\');g 4d=\'<19 1X="b-19" 11="b-19" D="1V%" p="1V%" 5B="0" 5C="0" 5D="0" 5m="\'+8.4I+\'">\';g $U=$(U);g $1b=$(1B.1b);g $16=$(C.2l(\'\')).58($1b);g $r=$16.2g(\'#b\');g $1U=$16.2g(\'#b-1F\');g $2P=$16.2g(\'#b-3S\');c(!q.1T){3q(q.17){1q"4g":q.s=$(\'#\'+j).s();1m;1q"34":1q"33":q.s=\'\';q.2b=j;1m;1q"3X":q.s=j;1m;1q"2q":q.s=4d;c(j.1E(\'#\')==-1){q.2b=j+(j.1E(\'?\')==-1?\'?2W=\':\'&2W=\')+30.3H()}J{g 2R=j.5l(\'#\');q.2b=2R[0]+(2R[0].1E(\'?\')==-1?\'?2W=\':\'&2W=\')+30.3H()+\'#\'+2R[1]}1m}j={5k:{j:q.s,1c:8.1c,2i:8.2i,Z:8.Z}}}g 1i=[];g 3M=$r.x(\'.b-3c-B\').4e(N);g 3T=$r.x(\'.b-3c-S\').4e(N);g 4c=$.1w.1Q?\'3B-p:4m;M:L 4f L 4f;\':\'M:L 2J L 2J;\';$.2L(j,m(1v,1k){c(q.1T){1k=$.R({},$.d.2C,1k)}j[1v]=1k;c(1k.1c==14){1k.1c={}}g 2M=V;$.2L(1k.1c,m(k,v){2M=N});g 1x=\'T\';c(1n 8.p==\'3a\'){1x=8.p;c(3f){1x=1x-3M}c(2M){1x=1x-3T}1x=(1x-1)+\'G\'}g 3I=\'\';g 3O=\'2F\';c(!q.1T&&37){g 1A=8.p;c(1n 8.p==\'3a\'){c(3f){1A=1A-3M}c(2M){1A=1A-3T}3O=((1A/5)*2)+\'G\';1A=(1A-1)+\'G\'}3I=[\'\',\'\',\'\'].2l(\'\')}1i.o(\'\');1i.o(\'\'+3I+\'\'+1k.j+\'\');1i.o(\'\');c(!8.12){1i.o(\'<1P I="b-1W-1C" A="4s:F;1e:2G;3B-p:2F;">\')}$.2L(1k.1c,m(k,v){1i.o(\'\'+k+\'\')});1i.o(\'\')});$r.x(\'#b-1i\').s(1i.2l(\'\')).2g(\'.b-Y:3W\').E(\'1e\',\'2G\');c(37){g $19=$r.x(\'#b-j\').E({P:(1o)?"1a":"3d",F:-6h})}$.2L(j,m(1v,1k){g $Y=$r.x(\'#b-Y-\'+1v);$Y.2g(\'.b-S-1M\').2g(\'S\').23(m(){g 3V=$Y.x(\'#b-j\');g 4t=1k.1c[$(1L).1C()];g 1N={};$.2L($r.x(\'#b-1i :4n\').6d(),m(i,1y){c(1N[1y.1X]===14){1N[1y.1X]=1y.3e}J c(1n 1N[1y.1X]==6e){1N[1y.1X].o(1y.3e)}J{1N[1y.1X]=[1N[1y.1X],1y.3e]}});g 1J=1k.Z(4t,3V,1N);c(1J===14||1J){2a()}}).1u(\'2d\',m(){$(1L).2w(\'b-S-3h\')}).1u(\'49\',m(){$(1L).2z(\'b-S-3h\')}).1u(\'5R\',m(){$(1L).2w(\'b-S-2x\')}).1u(\'5S\',m(){$(1L).2z(\'b-S-3h\').2z(\'b-S-2x\')});$Y.x(\'.b-S-1M S:39(\'+1k.2i+\')\').2w(\'b-S-1p\')});g 3k=m(){$16.E({t:$U.2X()});c(8.1j){$r.E({P:(1o)?"1a":"3d",1Y:1,1W:1})}};g 3g=m(){c(!8.1h){Q}c(8.4M){g i=0;$16.2w(\'b-1R\');g 4r=5N(m(){$16.5O(\'b-1R\');c(i++>1){5U(4r);$16.2z(\'b-1R\')}},1V)}J{2a()}};g 3i=m(e){c(8.12||8.1j){Q V}g 3j=(U.3y)?3y.4q:e.4q;c(3j==27){2a()}c(3j==9){g $2c=$(\':4n:5Z:2e\',$16);g 4p=!e.4o&&e.W==$2c[$2c.1t-1];g 3u=e.4o&&e.W==$2c[0];c(4p||3u){2Z(m(){c(!$2c)Q;g 3l=$2c[3u===N?$2c.1t-1:0];c(3l)3l.1p()},10);Q V}}};g 2S=m(){c(8.1h){$.d.2U++;$($.1w.1Q?\'s\':\'1b\').32(\'A\',\'1K:21;M-1Y:4W;\');$1U.E({P:"1a",p:8.12?64:$U.p(),D:1o?$U.D():"1V%",t:0,F:0,1Y:0,1W:0})}};g 4D=m(){c(8.1j){$r.E({P:(1o)?"1a":"3d",1Y:1,1W:1})}J{$2P.E({t:8.t});$r.E({P:"1a",t:$2P.3E().t+(8.12?$U.2X():0),F:(($U.D()-$r.51())/2)})}c((8.1h&&!8.12)||(!8.1h&&!8.12&&!8.1j)){$16.E({P:(1o)?"1a":"3d",p:8.1h?$U.p():0,D:"1V%",t:(1o)?$U.2X():0,F:0,1Y:0,1W:0})}2S()};g 3Z=m(){8.O=$.d.H.O++;$16.E({O:8.O});$r.E({O:8.O+1})};g 4E=m(){8.O=$.d.H.O++;$16.E({O:8.O});$r.E({1e:"K",O:8.O+1});c(8.1h){$1U.E({1e:"K",O:8.O,1z:8.1z})}};g 4b=m(e){g 1g=e.q;1g.W.x(\'19\').2D();c(8.1G){1g.W.2o().E({F:1g.W.E(\'F\'),t:1g.W.E(\'t\'),60:-2,63:-2,D:1g.W.D()+2,p:1g.W.p()+2}).1O()}Q V};g 48=m(e){g 1g=e.q;g F=1g.47+e.44-1g.42;g t=1g.46+e.43-1g.45;c(8.4N){g 3s=1;g 3m=1B.4u.62-e.q.W.p()-1;g 3o=1;g 3p=1B.4u.5M-e.q.W.D()-1;c(t<3s)t=3s+(8.1G?2:0);c(t>3m)t=3m-(8.1G?2:0);c(F<3o)F=3o+(8.1G?2:0);c(F>3p)F=3p-(8.1G?2:0)}c(8.1G){1g.W.2o().E({F:F,t:t})}J{1g.W.E({F:F,t:t})}Q V};g 4a=m(e){$(1B).28(\'.1D\');c(8.1G){g 2E=e.q.W.2o().2D();e.q.W.E({F:2E.E(\'F\'),t:2E.E(\'t\')}).x(\'19\').1O()}J{e.q.W.x(\'19\').1O()}Q V};g 3G=m(e){g P=e.q.W.P();g q={W:e.q.W,42:e.44,45:e.43,47:P.F,46:P.t};$(1B).1u(\'2d.1D\',q,4b).1u(\'6i.1D\',q,48).1u(\'49.1D\',q,4a)};g 2a=m(){c(8.1h){c($.d.2U==1){$($.1w.1Q?\'s\':\'1b\').4U(\'A\')};$.d.2U--}c(8.12){g 13=$(1B.1b).q(\'13\');c(13&&13.1r==N){$2P.E(\'t\',13.8.t);g t=$2P.3E().t+$U.2X();c(t==$r.3E().t){26()}J{$r.x(\'#b-j\').s(13.8.j.68(5)).69().E({F:(($U.D()-$r.51())/2)}).53({t:t,1z:0.1},4Y,26)}}J{$r.53({t:\'-=6a\',1z:0},4Y,26)}}J{3q(8.2y){1q\'3P\':$r.4Q(8.1H,26);1m;1q\'1F\':$r.4V(8.1H,26);1m;1q\'1O\':4C:$r.2D(8.1H,26);1m}}};g 26=m(){$($.1w.1Q?\'s\':\'1b\').4U(\'A\',\'1K:21;M-1Y:4W;\');$U.28(\'4B\',2S);c(8.1D&&!8.12&&!8.1j){$r.x(\'.b-B-1M\').28(\'2d\',3G)}c(q.17!=\'2q\'){$r.x(\'#b-19\').32({\'3t\':\'4v:52\'})}$r.s(\'\').3z();c(1o&&!8.12){$1b.28(\'4F\',3k)}c(8.1h){$1U.4V(\'2V\',m(){$1U.28(\'23\',3g).28(\'2d\',3Z).s(\'\').3z()})}$16.28(\'4A 4w\',3i).s(\'\').3z();c(1o&&8.1h){$(\'4Z\').E(\'4X\',\'2e\')}c(1n 8.1J==\'m\'){8.1J()}};g 2m=m(){c(8.1d>0){$r.q(\'2m\',U.2Z(2a,8.1d));c(8.1j){$r.2x(m(){U.6g($r.q(\'2m\'))},m(){$r.q(\'2m\',U.2Z(2a,8.1d))})}}};g 1I=m(){c(1n 8.1I==\'m\'){8.1I($r.x(\'.b-Y:2e\').x(\'.b-j\'))}};c(!q.1T){3q(q.17){1q"34":1q"33":$.66({17:q.17,2b:q.2b,q:8.3J==14?{}:8.3J,5T:\'s\',5Q:V,2h:m(q,5P){$r.x(\'#b-j\').E({P:"4R"}).s(q).1O().2o().2D();1I()},2n:m(){$r.x(\'#b-j-2t\').s(\'5V 5W.\')}});1m;1q"2q":$r.x(\'#b-19\').32({\'3t\':q.2b}).1u("5Y",m(3y){$(1L).5X().E({P:"4R"}).1O().2o().2D();$r.x(\'#b-1i .b-Y:3W .b-S-1p\').1p();1I()});1m;4C:$r.x(\'#b-j\').1O();1m}}4D();4E();c(1o&&!8.12){$U.4F(3k)}c(8.1h){$1U.23(3g)}$U.4B(2S);$16.1u(\'4A 4w\',3i);$r.x(\'.b-1l\').23(2a);c(8.1h){$1U.4x(\'2V\')};g 2u=\'1O\';c(8.2y==\'3P\'){2u=\'4O\'}J c(8.2y==\'1F\'){2u=\'4x\'}c(8.1j){$r[2u](8.1H,2m)}J{g 13=$(1B.1b).q(\'13\');c(13&&13.1r==N){$(1B.1b).q(\'13\',{1r:V,8:{}});$r.E(\'1e\',\'\')}J{c(!q.1T&&37){$r[2u](8.1H)}J{$r[2u](8.1H,1I)}}}c(!8.12){$r.x(\'.b-1W-1C\').s(8.4J)}J{$r.x(\'.b-4z,.b-j\').2w(\'b-13-4G\')}c(q.17!=\'2q\'){$r.x(\'#b-1i .b-Y:3W .b-S-1p\').1p()}J{$r.1p()}c(!8.1j){2m()}$16.1u(\'2d\',3Z);c(8.1D&&!8.12&&!8.1j){$r.x(\'.b-B-1M\').1u(\'2d\',{W:$r},3G).E(\'4H\',\'6c\')}Q $16};$.d.2Y=2.3;$.d.H={11:3L,t:"15%",O:3C,n:5,1z:0.1,1d:0,2y:\'1F\',1H:\'2V\',2K:N,31:N,1D:N,4N:N,1G:V,4M:N,5L:N,3J:{},4I:\'T\',B:\'d\',D:3Y,p:\'T\',4J:\'\',1c:{\'确定\':\'29\'},2i:0,1I:m(h){},Z:m(v,h,f){Q N},1J:m(){}};$.d.2C={j:\'\',1c:{\'确定\':\'29\'},2i:0,Z:m(v,h,f){Q N}};$.d.2O={j:\'\',w:\'1Z\',t:\'40%\',D:\'T\',p:\'T\',1z:0,1d:4K,1J:m(){}};$.d.2k={j:\'\',B:\'d\',w:\'K\',D:3Y,p:\'T\',1d:4K,2y:\'3P\',1H:6f,n:0,1c:{},2i:0,1I:m(){},Z:m(v,h,f){Q N},1J:m(){}};$.d.1s={1l:\'关闭\',29:\'确定\',3w:\'是\',3x:\'否\',2N:\'取消\'};$.d.5z=m(2j){$.d.H=$.R({},$.d.H,2j.H);$.d.2C=$.R({},$.d.2C,2j.2C);$.d.2O=$.R({},$.d.2O,2j.2O);$.d.2k=$.R({},$.d.2k,2j.2k);$.d.1s=$.R({},$.d.1s,2j.1s)};$.d.2Q=m(){Q $(\'.b-1b\').39($(\'.b-1b\').1t-1)};$.d.5f=m(3N){g r=(1n 3N==\'3U\')?$(\'#\'+3N):$.d.2Q();Q r.x(\'#b-19\').4L(0)};$.d.5d=m(){Q $.d.3b().x(\'.b-j\').s()};$.d.5g=m(j){Q $.d.3b().x(\'.b-j\').s(j)};$.d.3b=m(3D){c(3D==14){Q $.d.2Q().x(\'.b-Y:2e\')}J{Q $.d.2Q().x(\'#b-Y-\'+3D)}};$.d.5h=m(){Q $.d.3b().32(\'11\').5b(\'b-Y-\',\'\')};$.d.3A=m(1v,1S){g r=$.d.2Q();c(r!=14&&r!=3L){g $1r;1v=1v||V;r.x(\'.b-Y\').4Q(\'2V\');c(1n 1v==\'3U\'){$1r=r.x(\'#b-Y-\'+1v)}J{$1r=1v?r.x(\'.b-Y:2e\').1r():r.x(\'.b-Y:2e\').2o()}$1r.4O(3Y,m(){U.2Z(m(){$1r.x(\'.b-S-1p\').1p();c(1S!=14){$1r.x(\'.b-j\').s(1S)}},20)})}};$.d.54=m(1S){$.d.3A(N,1S)};$.d.57=m(1S){$.d.3A(V,1S)};$.d.1l=m(2v,38){2v=2v||V;38=38||\'1b\';c(1n 2v==\'3U\'){$(\'#\'+2v).x(\'.b-1l\').23()}J{g 2s=$(\'.b-\'+38);c(2v){59(g i=0,l=2s.1t;i0){2s.39(2s.1t-1).x(\'.b-1l\').23()}}}};$.d.5A=m(j,B,D,p,8){g H={j:j,B:B,D:D,p:p};8=$.R({},H,8);8=$.R({},$.d.H,8);$.d(8.j,8)};$.d.22=m(j,B,w,8){g H={j:j,B:B,w:w,1c:3v(\'({ "\'+$.d.1s.29+\'": "29" })\')};8=$.R({},H,8);8=$.R({},$.d.H,8);c(8.n<0){8.n=0}c(8.w!=\'1Z\'&&8.w!=\'1R\'&&8.w!=\'2h\'&&8.w!=\'2n\'&&8.w!=\'3F\'){M=\'\';8.w=\'K\'}g t=8.B==14?10:50;g 2T=8.w==\'K\'?\'p:T;\':\'2I-p:2H;\'+(($.1w.1Q&&41($.1w.2Y)<7)?\'p:T !4y;p:1V%;4S:2H;\':\'p:T;\');g s=[];s.o(\'s:\');s.o(\'\');s.o(\'<1P I="b-w b-w-\'+8.w+\'" A="P:1a; t:\'+(t+8.n)+\'G;F:\'+(10+8.n)+\'G; D:2p; p:2p;">\');s.o(8.j);s.o(\'\');8.j=s.2l(\'\');$.d(8.j,8)};$.d.5q=m(j,B,8){$.d.22(j,B,\'K\',8)};$.d.1Z=m(j,B,8){$.d.22(j,B,\'1Z\',8)};$.d.2h=m(j,B,8){$.d.22(j,B,\'2h\',8)};$.d.2n=m(j,B,8){$.d.22(j,B,\'2n\',8)};$.d.5u=m(j,B,Z,8){g H={1c:3v(\'({ "\'+$.d.1s.29+\'": "29", "\'+$.d.1s.2N+\'": "2N" })\')};c(Z!=14&&1n Z==\'m\'){H.Z=Z}J{H.Z=m(v,h,f){Q N}}8=$.R({},H,8);$.d.22(j,B,\'3F\',8)};$.d.1R=m(j,B,Z,8){g H={1c:3v(\'({ "\'+$.d.1s.3w+\'": "3w", "\'+$.d.1s.3x+\'": "3x", "\'+$.d.1s.2N+\'": "2N" })\')};c(Z!=14&&1n Z==\'m\'){H.Z=Z}J{H.Z=m(v,h,f){Q N}}8=$.R({},H,8);$.d.22(j,B,\'1R\',8)};$.d.13=m(j,w,8){g H={j:j,w:w,1z:0,n:0,31:V,1c:{},12:N};c(H.w==\'2t\'){H.1d=0;H.1z=0.1}8=$.R({},H,8);8=$.R({},$.d.2O,8);8=$.R({},$.d.H,8);c(8.1d<0){8.1d=0}c(8.n<0){8.n=0}c(8.w!=\'1Z\'&&8.w!=\'1R\'&&8.w!=\'2h\'&&8.w!=\'2n\'&&8.w!=\'2t\'){8.w=\'1Z\'}g s=[];s.o(\'s:\');s.o(\'\');s.o(\'<1P I="b-w b-w-\'+8.w+\'" A="P:1a;t:\'+(4+8.n)+\'G;F:\'+(4+8.n)+\'G; D:2p; p:2p;">\');s.o(8.j);s.o(\'\');8.j=s.2l(\'\');c($(\'.b-13\').1t>0){$(1B.1b).q(\'13\',{1r:N,8:8});$.d.4P()}c(8.3R!=14){$(\'#\'+8.3R).1p();t.$(\'#\'+8.3R).1p()};$.d(8.j,8)};$.d.4P=m(){$.d.1l(V,\'13\')};$.d.3Q=m(j,B,1d,8){$.d.4l();g H={j:j,B:B,1d:(1d==14?$.d.2k.1d:1d),1z:0,31:N,1D:V,1j:N};8=$.R({},H,8);8=$.R({},$.d.2k,8);g 3K=$.R({},$.d.H,{});3K.B=3L;8=$.R({},3K,8);c(8.n<0){8.n=0}c(8.w!=\'1Z\'&&8.w!=\'1R\'&&8.w!=\'2h\'&&8.w!=\'2n\'&&8.w!=\'3F\'){M=\'\';8.w=\'K\'}g t=8.B==14?10:35;g 2T=8.w==\'K\'?\'p:T;\':\'2I-p:2H;\'+(($.1w.1Q&&41($.1w.2Y)<7)?\'p:T !4y;p:1V%;4S:2H;\':\'p:T;\');g s=[];s.o(\'s:\');s.o(\'\');s.o(\'<1P I="b-w b-w-\'+8.w+\'" A="P:1a; t:\'+(t+8.n)+\'G;F:\'+(10+8.n)+\'G; D:2p; p:2p;">\');s.o(8.j);s.o(\'\');8.j=s.2l(\'\');$.d(8.j,8)};$.d.4l=m(){$.d.1l(V,\'3Q\')};$.d.2U=0;U.d=$.d})(65);',62,391,'||||||||options|||jbox|if|jBox|||var|||content|||function|border|push|height|data|box|html|top|div||icon|find|||style|title|boxHtml|width|css|left|px|defaults|class|else|none|0px|padding|true|zIndex|position|return|extend|button|auto|window|false|target|td|state|submit||id|isTip|tip|undefined||boxBody|type||iframe|absolute|body|buttons|timeout|display|margin|dragData|showFade|states|isMessager|stateOptions|close|break|typeof|isIE6|focus|case|next|languageDefaults|length|bind|stateName|browser|contentHeight|obj|opacity|loadingHeight|document|text|draggable|indexOf|fade|dragClone|showSpeed|loaded|closed|overflow|this|panel|formInputs|show|span|msie|warning|stateContent|isObject|boxFade|100|bottom|name|right|info||hidden|prompt|click|||removeBoxImpl||unbind|ok|removeBox|url|inputels|mousedown|visible|tempContent|children|success|buttonsFocus|configs|messagerDefaults|join|autoClosing|error|prev|32px|IFRAME|tr|boxs|loading|showFunc|token|addClass|hover|showType|removeClass|align|prevBox|stateDefaults|hide|drag|25px|block|30px|min|10px|showIcon|each|withButtons|cancel|tipDefaults|boxTemp|getBox|arr|setFade|minHeight|FadeBoxCount|fast|___t|scrollTop|version|setTimeout|Math|showClose|attr|POST|GET||radius|isRequest|boxType|eq|number|getState|help|fixed|value|withTitle|fadeClicked|active|keyPressEventHandler|key|ie6scroll|el|maxTop|50px|minLeft|maxLeft|switch|index|minTop|src|back|eval|yes|no|event|remove|goToState|line|1984|stateNmae|offset|question|onMouseDown|random|loadingHtml|ajaxData|tempDefaults|null|helpTitleHeight|jBoxId|loadingImageTop|slide|messager|focusId|temp|helpButtonHeight|string|object|first|HTML|350|setTop||parseInt|startX|pageY|pageX|startY|startTop|startLeft|doMove|mouseup|doUp|doDown|ieButtonFix|iframeHtml|outerHeight|6px|ID|table|5px|15px|titleWidth|closeMessager|19px|input|shiftKey|fwd|keyCode|intervalid|float|clicked|documentElement|about|keypress|fadeIn|important|container|keydown|resize|default|positionBox|styleBox|scroll|color|cursor|iframeScrolling|bottomText|3000|get|persistent|dragLimit|slideDown|closeTip|slideUp|static|_height|center|removeAttr|fadeOut|17px|visibility|500|select||outerWidth|blank|animate|nextState|Object|toLowerCase|prevState|appendTo|for|18px|replace|floor|getContent|jBox_|getIframe|setContent|getStateName|constructor|1000000|state0|split|scrolling|ff3300|pointer|background|alert|applet|onmouseout|onmouseover|confirm|cellpadding|cellspacing|valign|ellipsis|setDefaults|open|marginheight|marginwidth|frameborder|nbsp|all|word|90|substring|post|fdisplay|showScrolling|clientWidth|setInterval|toggleClass|textStatus|cache|mouseover|mouseout|dataType|clearInterval|Loading|Error|parent|load|enabled|marginLeft|70px|clientHeight|marginTop|5000|jQuery|ajax|220px|substr|end|200|image|move|serializeArray|Array|600|clearTimeout|10000|mousemove'.split('|'),0,{})) \ No newline at end of file diff --git a/apps/static/js/jquery.jBox-zh-CN.min.js b/apps/static/js/jquery.jBox-zh-CN.min.js new file mode 100644 index 000000000..527c6dc46 --- /dev/null +++ b/apps/static/js/jquery.jBox-zh-CN.min.js @@ -0,0 +1 @@ +var jBoxConfig={};jBoxConfig.defaults={id:null,top:"15%",border:5,opacity:0.50,timeout:0,showType:"fade",showSpeed:"fast",showIcon:false,showClose:true,draggable:true,dragLimit:false,dragClone:false,persistent:false,showScrolling:true,ajaxData:{},iframeScrolling:"auto",title:" 消息",width:350,height:"auto",bottomText:"",buttons:{"确定":"ok"},buttonsFocus:0,loaded:function(a){},submit:function(a,b,c){return true},closed:function(){}};jBoxConfig.stateDefaults={content:"",buttons:{"确定":"ok"},buttonsFocus:0,submit:function(a,b,c){return true}};jBoxConfig.tipDefaults={content:"",icon:"info",top:"53%",width:"auto",height:"auto",opacity:0,timeout:3000,closed:function(){}};jBoxConfig.messagerDefaults={content:"",title:"jBox",icon:"none",width:350,height:"auto",timeout:3000,showType:"slide",showSpeed:600,border:0,buttons:{},buttonsFocus:0,loaded:function(a){},submit:function(a,b,c){return true},closed:function(){}};jBoxConfig.languageDefaults={close:"关闭",ok:"确定",yes:"是",no:"否",cancel:"取消"};$.jBox.setDefaults(jBoxConfig); \ No newline at end of file diff --git a/apps/static/js/plugins/sweetalert/sweetalert.min.js b/apps/static/js/plugins/sweetalert/sweetalert.min.js new file mode 100644 index 000000000..3e4e7ff4c --- /dev/null +++ b/apps/static/js/plugins/sweetalert/sweetalert.min.js @@ -0,0 +1 @@ +!function(e,t,n){"use strict";!function o(e,t,n){function a(s,l){if(!t[s]){if(!e[s]){var i="function"==typeof require&&require;if(!l&&i)return i(s,!0);if(r)return r(s,!0);var u=new Error("Cannot find module '"+s+"'");throw u.code="MODULE_NOT_FOUND",u}var c=t[s]={exports:{}};e[s][0].call(c.exports,function(t){var n=e[s][1][t];return a(n?n:t)},c,c.exports,o,e,t,n)}return t[s].exports}for(var r="function"==typeof require&&require,s=0;s=0;)n=n.replace(" "+t+" "," ");e.className=n.replace(/^\s+|\s+$/g,"")}},i=function(e){var n=t.createElement("div");return n.appendChild(t.createTextNode(e)),n.innerHTML},u=function(e){e.style.opacity="",e.style.display="block"},c=function(e){if(e&&!e.length)return u(e);for(var t=0;t0?setTimeout(o,t):e.style.display="none"});o()},h=function(n){if("function"==typeof MouseEvent){var o=new MouseEvent("click",{view:e,bubbles:!1,cancelable:!0});n.dispatchEvent(o)}else if(t.createEvent){var a=t.createEvent("MouseEvents");a.initEvent("click",!1,!1),n.dispatchEvent(a)}else t.createEventObject?n.fireEvent("onclick"):"function"==typeof n.onclick&&n.onclick()},g=function(t){"function"==typeof t.stopPropagation?(t.stopPropagation(),t.preventDefault()):e.event&&e.event.hasOwnProperty("cancelBubble")&&(e.event.cancelBubble=!0)};a.hasClass=r,a.addClass=s,a.removeClass=l,a.escapeHtml=i,a._show=u,a.show=c,a._hide=d,a.hide=f,a.isDescendant=p,a.getTopMargin=m,a.fadeIn=v,a.fadeOut=y,a.fireClick=h,a.stopEventPropagation=g},{}],5:[function(t,o,a){Object.defineProperty(a,"__esModule",{value:!0});var r=t("./handle-dom"),s=t("./handle-swal-dom"),l=function(t,o,a){var l=t||e.event,i=l.keyCode||l.which,u=a.querySelector("button.confirm"),c=a.querySelector("button.cancel"),d=a.querySelectorAll("button[tabindex]");if(-1!==[9,13,32,27].indexOf(i)){for(var f=l.target||l.srcElement,p=-1,m=0;m"),i.innerHTML=e.html?e.text:s.escapeHtml(e.text||"").split("\n").join("
      "),e.text&&s.show(i),e.customClass)s.addClass(t,e.customClass),t.setAttribute("data-custom-class",e.customClass);else{var d=t.getAttribute("data-custom-class");s.removeClass(t,d),t.setAttribute("data-custom-class","")}if(s.hide(t.querySelectorAll(".sa-icon")),e.type&&!a.isIE8()){var f=function(){for(var o=!1,a=0;ao;o++)n=parseInt(e.substr(2*o,2),16),n=Math.round(Math.min(Math.max(0,n+n*t),255)).toString(16),a+=("00"+n).substr(n.length);return a};o.extend=a,o.hexToRgb=r,o.isIE8=s,o.logStr=l,o.colorLuminance=i},{}]},{},[1]),"function"==typeof define&&define.amd?define(function(){return sweetAlert}):"undefined"!=typeof module&&module.exports&&(module.exports=sweetAlert)}(window,document); \ No newline at end of file diff --git a/apps/templates/_foot_js.html b/apps/templates/_foot_js.html index 624d32a01..b9ca3b784 100644 --- a/apps/templates/_foot_js.html +++ b/apps/templates/_foot_js.html @@ -1,3 +1,4 @@ +{% load i18n %} {% load static %} @@ -52,5 +53,36 @@ $.ajaxSetup({ // textarea rows $('textarea').attr('rows', 5) + + + +//Sweet Alert for Delete +function obj_del(obj,name,url){ + swal({ + title: "{% trans 'Are you sure delete ??' %}", + //text: "You will not be able to recover this imaginary file!", + text: "【"+name+"】", + type: "warning", + showCancelButton: true, + cancelButtonText: "{% trans 'Cancel' %}", + confirmButtonColor: "#DD6B55", + confirmButtonText: "{% trans 'Yes, delete it!' %}", + closeOnConfirm: false + }, function () { + $.ajax({ + type : "post", + url : url, + data : { + // idc_id : idc_id + }, + success : function(data) { + swal("{% trans 'Deleted!' %}", "【"+name+"】"+"{% trans 'has been deleted.' %}", "success"); + $(obj).parent().parent().remove(); + }, + dataType : "text" + }); + }); +} + diff --git a/apps/templates/_head_css_js.html b/apps/templates/_head_css_js.html index bc968ca90..543d1e4a6 100644 --- a/apps/templates/_head_css_js.html +++ b/apps/templates/_head_css_js.html @@ -4,13 +4,25 @@ + - + + - - + + + + + + + + + + + + diff --git a/apps/users/templates/users/user_list.html b/apps/users/templates/users/user_list.html index d072faecc..d220a4a84 100644 --- a/apps/users/templates/users/user_list.html +++ b/apps/users/templates/users/user_list.html @@ -42,7 +42,8 @@ {% trans 'Update' %} - {% trans 'Delete' %} + + {% trans 'Delete' %} {% endfor %} diff --git a/apps/users/views.py b/apps/users/views.py index d5c691bf7..37aeddf23 100644 --- a/apps/users/views.py +++ b/apps/users/views.py @@ -10,7 +10,7 @@ from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.messages.views import SuccessMessageMixin from django.core.files.storage import default_storage from django.db.models import Q -from django.http import HttpResponseRedirect +from django.http import HttpResponseRedirect,HttpResponse from django.shortcuts import get_object_or_404, reverse, redirect from django.utils.decorators import method_decorator from django.utils.translation import ugettext as _ @@ -162,6 +162,19 @@ class UserDeleteView(AdminUserRequiredMixin, DeleteView): success_url = reverse_lazy('users:user-list') template_name = 'users/user_delete_confirm.html' + def delete(self, request, *args, **kwargs): + """ + Calls the delete() method on the fetched object and then + redirects to the success URL. + """ + self.object = self.get_object() + success_url = self.get_success_url() + if self.object.name == "admin" or self.object.id == request.session.get('_auth_user_id'): + pass + else: + self.object.delete() + + return HttpResponseRedirect(success_url) class UserDetailView(AdminUserRequiredMixin, DetailView): model = User From 1005fbabbd2f49ff312712c07b052a8963155283 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 14 Sep 2016 15:38:54 +0800 Subject: [PATCH 40/50] add assets manage Sweet Alert --- apps/assets/templates/assets/idc_list.html | 29 ++++++++++-- apps/static/jbox/Skins/Blue/Desktop.ini | 3 -- .../jbox/Skins/Blue/OneNote 目录.onetoc2 | Bin 4744 -> 0 bytes .../Skins/Blue/images/OneNote 目录.onetoc2 | Bin 3656 -> 0 bytes apps/static/jbox/Skins/Blue/images/Thumbs.db | Bin 19456 -> 0 bytes .../jbox/Skins/Blue/images/jbox-button1.png | Bin 338 -> 0 bytes .../jbox/Skins/Blue/images/jbox-button2.png | Bin 314 -> 0 bytes .../jbox/Skins/Blue/images/jbox-close1.gif | Bin 1221 -> 0 bytes .../jbox/Skins/Blue/images/jbox-close2.gif | Bin 791 -> 0 bytes .../Blue/images/jbox-content-loading.gif | Bin 10810 -> 0 bytes .../jbox/Skins/Blue/images/jbox-icons-ie6.gif | Bin 2767 -> 0 bytes .../jbox/Skins/Blue/images/jbox-icons.png | Bin 6588 -> 0 bytes .../jbox/Skins/Blue/images/jbox-loading1.gif | Bin 3199 -> 0 bytes .../jbox/Skins/Blue/images/jbox-loading2.gif | Bin 4167 -> 0 bytes .../jbox/Skins/Blue/images/jbox-loading3.gif | Bin 8778 -> 0 bytes .../Skins/Blue/images/jbox-title-icon.gif | Bin 73 -> 0 bytes apps/static/jbox/Skins/Blue/jbox.css | 43 ----------------- apps/static/jbox/Skins/Brown/Desktop.ini | 3 -- apps/static/jbox/Skins/Brown/images/Thumbs.db | Bin 19456 -> 0 bytes .../jbox/Skins/Brown/images/jbox-button1.png | Bin 338 -> 0 bytes .../jbox/Skins/Brown/images/jbox-button2.png | Bin 314 -> 0 bytes .../jbox/Skins/Brown/images/jbox-close1.gif | Bin 1221 -> 0 bytes .../jbox/Skins/Brown/images/jbox-close2.gif | Bin 791 -> 0 bytes .../Brown/images/jbox-content-loading.gif | Bin 10810 -> 0 bytes .../Skins/Brown/images/jbox-icons-ie6.gif | Bin 2767 -> 0 bytes .../jbox/Skins/Brown/images/jbox-icons.png | Bin 6588 -> 0 bytes .../jbox/Skins/Brown/images/jbox-loading1.gif | Bin 3199 -> 0 bytes .../jbox/Skins/Brown/images/jbox-loading2.gif | Bin 4167 -> 0 bytes .../jbox/Skins/Brown/images/jbox-loading3.gif | Bin 8778 -> 0 bytes .../Skins/Brown/images/jbox-title-icon.gif | Bin 73 -> 0 bytes apps/static/jbox/Skins/Brown/jbox.css | 43 ----------------- apps/static/jbox/Skins/Default/Desktop.ini | 3 -- apps/static/jbox/Skins/Default/Thumbs.db | Bin 4096 -> 0 bytes .../jbox/Skins/Default/images/Thumbs.db | Bin 33792 -> 0 bytes .../Skins/Default/images/jbox-button1.png | Bin 338 -> 0 bytes .../Skins/Default/images/jbox-button2.png | Bin 314 -> 0 bytes .../jbox/Skins/Default/images/jbox-close1.gif | Bin 1221 -> 0 bytes .../jbox/Skins/Default/images/jbox-close2.gif | Bin 791 -> 0 bytes .../Default/images/jbox-content-loading.gif | Bin 6610 -> 0 bytes .../Skins/Default/images/jbox-icons-ie6.gif | Bin 2767 -> 0 bytes .../jbox/Skins/Default/images/jbox-icons.png | Bin 6588 -> 0 bytes .../Skins/Default/images/jbox-loading1.gif | Bin 3199 -> 0 bytes .../Skins/Default/images/jbox-loading2.gif | Bin 4167 -> 0 bytes .../Skins/Default/images/jbox-loading3.gif | Bin 8778 -> 0 bytes .../Skins/Default/images/jbox-title-icon.gif | Bin 92 -> 0 bytes apps/static/jbox/Skins/Default/jbox.css | 43 ----------------- apps/static/jbox/Skins/Gray/Desktop.ini | 3 -- apps/static/jbox/Skins/Gray/images/Thumbs.db | Bin 19456 -> 0 bytes .../jbox/Skins/Gray/images/jbox-button1.png | Bin 338 -> 0 bytes .../jbox/Skins/Gray/images/jbox-button2.png | Bin 314 -> 0 bytes .../jbox/Skins/Gray/images/jbox-close1.gif | Bin 1221 -> 0 bytes .../jbox/Skins/Gray/images/jbox-close2.gif | Bin 791 -> 0 bytes .../Gray/images/jbox-content-loading.gif | Bin 10810 -> 0 bytes .../jbox/Skins/Gray/images/jbox-icons-ie6.gif | Bin 2767 -> 0 bytes .../jbox/Skins/Gray/images/jbox-icons.png | Bin 6588 -> 0 bytes .../jbox/Skins/Gray/images/jbox-loading1.gif | Bin 3199 -> 0 bytes .../jbox/Skins/Gray/images/jbox-loading2.gif | Bin 4167 -> 0 bytes .../jbox/Skins/Gray/images/jbox-loading3.gif | Bin 8778 -> 0 bytes .../Skins/Gray/images/jbox-title-icon.gif | Bin 73 -> 0 bytes apps/static/jbox/Skins/Gray/jbox.css | 43 ----------------- apps/static/jbox/Skins/GrayCool/Desktop.ini | 3 -- .../jbox/Skins/GrayCool/images/Thumbs.db | Bin 19456 -> 0 bytes .../Skins/GrayCool/images/jbox-button1.png | Bin 338 -> 0 bytes .../Skins/GrayCool/images/jbox-button2.png | Bin 314 -> 0 bytes .../Skins/GrayCool/images/jbox-close1.gif | Bin 1221 -> 0 bytes .../Skins/GrayCool/images/jbox-close2.gif | Bin 791 -> 0 bytes .../GrayCool/images/jbox-content-loading.gif | Bin 10810 -> 0 bytes .../Skins/GrayCool/images/jbox-icons-ie6.gif | Bin 2767 -> 0 bytes .../jbox/Skins/GrayCool/images/jbox-icons.png | Bin 6588 -> 0 bytes .../Skins/GrayCool/images/jbox-loading1.gif | Bin 3199 -> 0 bytes .../Skins/GrayCool/images/jbox-loading2.gif | Bin 4167 -> 0 bytes .../Skins/GrayCool/images/jbox-loading3.gif | Bin 8778 -> 0 bytes .../Skins/GrayCool/images/jbox-title-icon.gif | Bin 73 -> 0 bytes apps/static/jbox/Skins/GrayCool/jbox.css | 44 ------------------ apps/static/jbox/Skins/Green/Desktop.ini | 3 -- apps/static/jbox/Skins/Green/images/Thumbs.db | Bin 19456 -> 0 bytes .../jbox/Skins/Green/images/jbox-button1.png | Bin 338 -> 0 bytes .../jbox/Skins/Green/images/jbox-button2.png | Bin 314 -> 0 bytes .../jbox/Skins/Green/images/jbox-close1.gif | Bin 1221 -> 0 bytes .../jbox/Skins/Green/images/jbox-close2.gif | Bin 791 -> 0 bytes .../Green/images/jbox-content-loading.gif | Bin 10810 -> 0 bytes .../Skins/Green/images/jbox-icons-ie6.gif | Bin 2767 -> 0 bytes .../jbox/Skins/Green/images/jbox-icons.png | Bin 6588 -> 0 bytes .../jbox/Skins/Green/images/jbox-loading1.gif | Bin 3199 -> 0 bytes .../jbox/Skins/Green/images/jbox-loading2.gif | Bin 4167 -> 0 bytes .../jbox/Skins/Green/images/jbox-loading3.gif | Bin 8778 -> 0 bytes .../Skins/Green/images/jbox-title-icon.gif | Bin 73 -> 0 bytes apps/static/jbox/Skins/Green/jbox.css | 43 ----------------- apps/static/jbox/Skins/GreyBlue/Desktop.ini | 3 -- .../jbox/Skins/GreyBlue/images/Thumbs.db | Bin 19456 -> 0 bytes .../Skins/GreyBlue/images/jbox-button1.png | Bin 338 -> 0 bytes .../Skins/GreyBlue/images/jbox-button2.png | Bin 314 -> 0 bytes .../Skins/GreyBlue/images/jbox-close1.gif | Bin 1221 -> 0 bytes .../Skins/GreyBlue/images/jbox-close2.gif | Bin 791 -> 0 bytes .../GreyBlue/images/jbox-content-loading.gif | Bin 10810 -> 0 bytes .../Skins/GreyBlue/images/jbox-icons-ie6.gif | Bin 2767 -> 0 bytes .../jbox/Skins/GreyBlue/images/jbox-icons.png | Bin 6588 -> 0 bytes .../Skins/GreyBlue/images/jbox-loading1.gif | Bin 3199 -> 0 bytes .../Skins/GreyBlue/images/jbox-loading2.gif | Bin 4167 -> 0 bytes .../Skins/GreyBlue/images/jbox-loading3.gif | Bin 8778 -> 0 bytes .../Skins/GreyBlue/images/jbox-title-icon.gif | Bin 73 -> 0 bytes apps/static/jbox/Skins/GreyBlue/jbox.css | 43 ----------------- apps/static/jbox/Skins/Purple/Desktop.ini | 3 -- .../static/jbox/Skins/Purple/images/Thumbs.db | Bin 19456 -> 0 bytes .../jbox/Skins/Purple/images/jbox-button1.png | Bin 338 -> 0 bytes .../jbox/Skins/Purple/images/jbox-button2.png | Bin 314 -> 0 bytes .../jbox/Skins/Purple/images/jbox-close1.gif | Bin 1221 -> 0 bytes .../jbox/Skins/Purple/images/jbox-close2.gif | Bin 791 -> 0 bytes .../Purple/images/jbox-content-loading.gif | Bin 10810 -> 0 bytes .../Skins/Purple/images/jbox-icons-ie6.gif | Bin 2767 -> 0 bytes .../jbox/Skins/Purple/images/jbox-icons.png | Bin 6588 -> 0 bytes .../Skins/Purple/images/jbox-loading1.gif | Bin 3199 -> 0 bytes .../Skins/Purple/images/jbox-loading2.gif | Bin 4167 -> 0 bytes .../Skins/Purple/images/jbox-loading3.gif | Bin 8778 -> 0 bytes .../Skins/Purple/images/jbox-title-icon.gif | Bin 73 -> 0 bytes apps/static/jbox/Skins/Purple/jbox.css | 43 ----------------- apps/static/jbox/Skins/Red/Desktop.ini | 3 -- apps/static/jbox/Skins/Red/images/Thumbs.db | Bin 19456 -> 0 bytes .../jbox/Skins/Red/images/jbox-button1.png | Bin 338 -> 0 bytes .../jbox/Skins/Red/images/jbox-button2.png | Bin 314 -> 0 bytes .../jbox/Skins/Red/images/jbox-close1.gif | Bin 1221 -> 0 bytes .../jbox/Skins/Red/images/jbox-close2.gif | Bin 791 -> 0 bytes .../Skins/Red/images/jbox-content-loading.gif | Bin 10810 -> 0 bytes .../jbox/Skins/Red/images/jbox-icons-ie6.gif | Bin 2767 -> 0 bytes .../jbox/Skins/Red/images/jbox-icons.png | Bin 6588 -> 0 bytes .../jbox/Skins/Red/images/jbox-loading1.gif | Bin 3199 -> 0 bytes .../jbox/Skins/Red/images/jbox-loading2.gif | Bin 4167 -> 0 bytes .../jbox/Skins/Red/images/jbox-loading3.gif | Bin 8778 -> 0 bytes .../jbox/Skins/Red/images/jbox-title-icon.gif | Bin 73 -> 0 bytes apps/static/jbox/Skins/Red/jbox.css | 43 ----------------- apps/static/jbox/Skins/ShareBlue/Desktop.ini | 3 -- .../jbox/Skins/ShareBlue/images/Thumbs.db | Bin 19456 -> 0 bytes .../Skins/ShareBlue/images/jbox-button1.png | Bin 338 -> 0 bytes .../Skins/ShareBlue/images/jbox-button2.png | Bin 314 -> 0 bytes .../Skins/ShareBlue/images/jbox-close1.gif | Bin 1221 -> 0 bytes .../Skins/ShareBlue/images/jbox-close2.gif | Bin 791 -> 0 bytes .../ShareBlue/images/jbox-content-loading.gif | Bin 10810 -> 0 bytes .../Skins/ShareBlue/images/jbox-icons-ie6.gif | Bin 2767 -> 0 bytes .../Skins/ShareBlue/images/jbox-icons.png | Bin 6588 -> 0 bytes .../Skins/ShareBlue/images/jbox-loading1.gif | Bin 3199 -> 0 bytes .../Skins/ShareBlue/images/jbox-loading2.gif | Bin 4167 -> 0 bytes .../Skins/ShareBlue/images/jbox-loading3.gif | Bin 8778 -> 0 bytes .../ShareBlue/images/jbox-title-icon.gif | Bin 73 -> 0 bytes apps/static/jbox/Skins/ShareBlue/jbox.css | 43 ----------------- apps/static/jbox/Skins/ShareBrown/Desktop.ini | 3 -- .../jbox/Skins/ShareBrown/images/Thumbs.db | Bin 19456 -> 0 bytes .../Skins/ShareBrown/images/jbox-button1.png | Bin 338 -> 0 bytes .../Skins/ShareBrown/images/jbox-button2.png | Bin 314 -> 0 bytes .../Skins/ShareBrown/images/jbox-close1.gif | Bin 1221 -> 0 bytes .../Skins/ShareBrown/images/jbox-close2.gif | Bin 791 -> 0 bytes .../images/jbox-content-loading.gif | Bin 10810 -> 0 bytes .../ShareBrown/images/jbox-icons-ie6.gif | Bin 2767 -> 0 bytes .../Skins/ShareBrown/images/jbox-icons.png | Bin 6588 -> 0 bytes .../Skins/ShareBrown/images/jbox-loading1.gif | Bin 3199 -> 0 bytes .../Skins/ShareBrown/images/jbox-loading2.gif | Bin 4167 -> 0 bytes .../Skins/ShareBrown/images/jbox-loading3.gif | Bin 8778 -> 0 bytes .../ShareBrown/images/jbox-title-icon.gif | Bin 73 -> 0 bytes apps/static/jbox/Skins/ShareBrown/jbox.css | 43 ----------------- apps/static/jbox/Skins/ShareGreen/Desktop.ini | 3 -- .../jbox/Skins/ShareGreen/images/Thumbs.db | Bin 19456 -> 0 bytes .../Skins/ShareGreen/images/jbox-button1.png | Bin 338 -> 0 bytes .../Skins/ShareGreen/images/jbox-button2.png | Bin 314 -> 0 bytes .../Skins/ShareGreen/images/jbox-close1.gif | Bin 1221 -> 0 bytes .../Skins/ShareGreen/images/jbox-close2.gif | Bin 791 -> 0 bytes .../images/jbox-content-loading.gif | Bin 10810 -> 0 bytes .../ShareGreen/images/jbox-icons-ie6.gif | Bin 2767 -> 0 bytes .../Skins/ShareGreen/images/jbox-icons.png | Bin 6588 -> 0 bytes .../Skins/ShareGreen/images/jbox-loading1.gif | Bin 3199 -> 0 bytes .../Skins/ShareGreen/images/jbox-loading2.gif | Bin 4167 -> 0 bytes .../Skins/ShareGreen/images/jbox-loading3.gif | Bin 8778 -> 0 bytes .../ShareGreen/images/jbox-title-icon.gif | Bin 73 -> 0 bytes apps/static/jbox/Skins/ShareGreen/jbox.css | 43 ----------------- .../static/jbox/Skins/SharePurple/Desktop.ini | 3 -- .../jbox/Skins/SharePurple/images/Thumbs.db | Bin 19456 -> 0 bytes .../Skins/SharePurple/images/jbox-button1.png | Bin 338 -> 0 bytes .../Skins/SharePurple/images/jbox-button2.png | Bin 314 -> 0 bytes .../Skins/SharePurple/images/jbox-close1.gif | Bin 1221 -> 0 bytes .../Skins/SharePurple/images/jbox-close2.gif | Bin 791 -> 0 bytes .../images/jbox-content-loading.gif | Bin 10810 -> 0 bytes .../SharePurple/images/jbox-icons-ie6.gif | Bin 2767 -> 0 bytes .../Skins/SharePurple/images/jbox-icons.png | Bin 6588 -> 0 bytes .../SharePurple/images/jbox-loading1.gif | Bin 3199 -> 0 bytes .../SharePurple/images/jbox-loading2.gif | Bin 4167 -> 0 bytes .../SharePurple/images/jbox-loading3.gif | Bin 8778 -> 0 bytes .../SharePurple/images/jbox-title-icon.gif | Bin 73 -> 0 bytes apps/static/jbox/Skins/SharePurple/jbox.css | 43 ----------------- apps/static/jbox/Skins/ShareRed/Desktop.ini | 3 -- .../jbox/Skins/ShareRed/images/Thumbs.db | Bin 19456 -> 0 bytes .../Skins/ShareRed/images/jbox-button1.png | Bin 338 -> 0 bytes .../Skins/ShareRed/images/jbox-button2.png | Bin 314 -> 0 bytes .../Skins/ShareRed/images/jbox-close1.gif | Bin 1221 -> 0 bytes .../Skins/ShareRed/images/jbox-close2.gif | Bin 791 -> 0 bytes .../ShareRed/images/jbox-content-loading.gif | Bin 10810 -> 0 bytes .../Skins/ShareRed/images/jbox-icons-ie6.gif | Bin 2767 -> 0 bytes .../jbox/Skins/ShareRed/images/jbox-icons.png | Bin 6588 -> 0 bytes .../Skins/ShareRed/images/jbox-loading1.gif | Bin 3199 -> 0 bytes .../Skins/ShareRed/images/jbox-loading2.gif | Bin 4167 -> 0 bytes .../Skins/ShareRed/images/jbox-loading3.gif | Bin 8778 -> 0 bytes .../Skins/ShareRed/images/jbox-title-icon.gif | Bin 73 -> 0 bytes apps/static/jbox/Skins/ShareRed/jbox.css | 43 ----------------- .../Skins/样式说明(以Default皮肤为例).css | 44 ------------------ apps/static/jbox/Skins2/Blue/Desktop.ini | 3 -- apps/static/jbox/Skins2/Blue/images/Thumbs.db | Bin 33792 -> 0 bytes .../jbox/Skins2/Blue/images/jbox-close1.gif | Bin 1221 -> 0 bytes .../jbox/Skins2/Blue/images/jbox-close2.gif | Bin 791 -> 0 bytes .../Blue/images/jbox-content-loading.gif | Bin 10810 -> 0 bytes .../Skins2/Blue/images/jbox-icons-ie6.gif | Bin 2767 -> 0 bytes .../jbox/Skins2/Blue/images/jbox-icons.png | Bin 6663 -> 0 bytes .../jbox/Skins2/Blue/images/jbox-loading1.gif | Bin 3199 -> 0 bytes .../jbox/Skins2/Blue/images/jbox-loading2.gif | Bin 4167 -> 0 bytes .../jbox/Skins2/Blue/images/jbox-loading3.gif | Bin 8778 -> 0 bytes .../Skins2/Blue/images/jbox-title-icon.gif | Bin 73 -> 0 bytes apps/static/jbox/Skins2/Blue/jbox.css | 41 ---------------- apps/static/jbox/Skins2/Gray/Desktop.ini | 3 -- apps/static/jbox/Skins2/Gray/images/Thumbs.db | Bin 33792 -> 0 bytes .../jbox/Skins2/Gray/images/jbox-close1.gif | Bin 1221 -> 0 bytes .../jbox/Skins2/Gray/images/jbox-close2.gif | Bin 791 -> 0 bytes .../Gray/images/jbox-content-loading.gif | Bin 10810 -> 0 bytes .../Skins2/Gray/images/jbox-icons-ie6.gif | Bin 2767 -> 0 bytes .../jbox/Skins2/Gray/images/jbox-icons.png | Bin 6663 -> 0 bytes .../jbox/Skins2/Gray/images/jbox-loading1.gif | Bin 3199 -> 0 bytes .../jbox/Skins2/Gray/images/jbox-loading2.gif | Bin 4167 -> 0 bytes .../jbox/Skins2/Gray/images/jbox-loading3.gif | Bin 8778 -> 0 bytes .../Skins2/Gray/images/jbox-title-icon.gif | Bin 73 -> 0 bytes apps/static/jbox/Skins2/Gray/jbox.css | 41 ---------------- apps/static/jbox/Skins2/Green/Desktop.ini | 3 -- .../static/jbox/Skins2/Green/images/Thumbs.db | Bin 33792 -> 0 bytes .../jbox/Skins2/Green/images/jbox-close1.gif | Bin 1221 -> 0 bytes .../jbox/Skins2/Green/images/jbox-close2.gif | Bin 791 -> 0 bytes .../Green/images/jbox-content-loading.gif | Bin 6610 -> 0 bytes .../Skins2/Green/images/jbox-icons-ie6.gif | Bin 2767 -> 0 bytes .../jbox/Skins2/Green/images/jbox-icons.png | Bin 6663 -> 0 bytes .../Skins2/Green/images/jbox-loading1.gif | Bin 3199 -> 0 bytes .../Skins2/Green/images/jbox-loading2.gif | Bin 4167 -> 0 bytes .../Skins2/Green/images/jbox-loading3.gif | Bin 8778 -> 0 bytes .../Skins2/Green/images/jbox-title-icon.gif | Bin 92 -> 0 bytes apps/static/jbox/Skins2/Green/jbox.css | 41 ---------------- apps/static/jbox/Skins2/Pink/Desktop.ini | 3 -- apps/static/jbox/Skins2/Pink/images/Thumbs.db | Bin 33792 -> 0 bytes .../jbox/Skins2/Pink/images/jbox-close1.gif | Bin 1221 -> 0 bytes .../jbox/Skins2/Pink/images/jbox-close2.gif | Bin 791 -> 0 bytes .../Pink/images/jbox-content-loading.gif | Bin 10810 -> 0 bytes .../Skins2/Pink/images/jbox-icons-ie6.gif | Bin 2767 -> 0 bytes .../jbox/Skins2/Pink/images/jbox-icons.png | Bin 6663 -> 0 bytes .../jbox/Skins2/Pink/images/jbox-loading1.gif | Bin 3199 -> 0 bytes .../jbox/Skins2/Pink/images/jbox-loading2.gif | Bin 4167 -> 0 bytes .../jbox/Skins2/Pink/images/jbox-loading3.gif | Bin 8778 -> 0 bytes .../Skins2/Pink/images/jbox-title-icon.gif | Bin 73 -> 0 bytes apps/static/jbox/Skins2/Pink/jbox.css | 41 ---------------- apps/static/jbox/Skins2/Purple/Desktop.ini | 3 -- .../jbox/Skins2/Purple/images/Thumbs.db | Bin 33792 -> 0 bytes .../jbox/Skins2/Purple/images/jbox-close1.gif | Bin 1221 -> 0 bytes .../jbox/Skins2/Purple/images/jbox-close2.gif | Bin 791 -> 0 bytes .../Purple/images/jbox-content-loading.gif | Bin 10810 -> 0 bytes .../Skins2/Purple/images/jbox-icons-ie6.gif | Bin 2767 -> 0 bytes .../jbox/Skins2/Purple/images/jbox-icons.png | Bin 6663 -> 0 bytes .../Skins2/Purple/images/jbox-loading1.gif | Bin 3199 -> 0 bytes .../Skins2/Purple/images/jbox-loading2.gif | Bin 4167 -> 0 bytes .../Skins2/Purple/images/jbox-loading3.gif | Bin 8778 -> 0 bytes .../Skins2/Purple/images/jbox-title-icon.gif | Bin 73 -> 0 bytes apps/static/jbox/Skins2/Purple/jbox.css | 41 ---------------- apps/static/jbox/Skins2/Yellow/Desktop.ini | 3 -- .../jbox/Skins2/Yellow/images/Thumbs.db | Bin 33792 -> 0 bytes .../jbox/Skins2/Yellow/images/jbox-close1.gif | Bin 1221 -> 0 bytes .../jbox/Skins2/Yellow/images/jbox-close2.gif | Bin 791 -> 0 bytes .../Yellow/images/jbox-content-loading.gif | Bin 10810 -> 0 bytes .../Skins2/Yellow/images/jbox-icons-ie6.gif | Bin 2767 -> 0 bytes .../jbox/Skins2/Yellow/images/jbox-icons.png | Bin 6663 -> 0 bytes .../Skins2/Yellow/images/jbox-loading1.gif | Bin 3199 -> 0 bytes .../Skins2/Yellow/images/jbox-loading2.gif | Bin 4167 -> 0 bytes .../Skins2/Yellow/images/jbox-loading3.gif | Bin 8778 -> 0 bytes .../Skins2/Yellow/images/jbox-title-icon.gif | Bin 73 -> 0 bytes apps/static/jbox/Skins2/Yellow/jbox.css | 41 ---------------- .../jbox/Skins2/样式说明(以Green皮肤为例).css | 44 ------------------ apps/templates/_head_css_js.html | 10 ++-- 275 files changed, 31 insertions(+), 1005 deletions(-) delete mode 100644 apps/static/jbox/Skins/Blue/Desktop.ini delete mode 100644 apps/static/jbox/Skins/Blue/OneNote 目录.onetoc2 delete mode 100644 apps/static/jbox/Skins/Blue/images/OneNote 目录.onetoc2 delete mode 100644 apps/static/jbox/Skins/Blue/images/Thumbs.db delete mode 100644 apps/static/jbox/Skins/Blue/images/jbox-button1.png delete mode 100644 apps/static/jbox/Skins/Blue/images/jbox-button2.png delete mode 100644 apps/static/jbox/Skins/Blue/images/jbox-close1.gif delete mode 100644 apps/static/jbox/Skins/Blue/images/jbox-close2.gif delete mode 100644 apps/static/jbox/Skins/Blue/images/jbox-content-loading.gif delete mode 100644 apps/static/jbox/Skins/Blue/images/jbox-icons-ie6.gif delete mode 100644 apps/static/jbox/Skins/Blue/images/jbox-icons.png delete mode 100644 apps/static/jbox/Skins/Blue/images/jbox-loading1.gif delete mode 100644 apps/static/jbox/Skins/Blue/images/jbox-loading2.gif delete mode 100644 apps/static/jbox/Skins/Blue/images/jbox-loading3.gif delete mode 100644 apps/static/jbox/Skins/Blue/images/jbox-title-icon.gif delete mode 100644 apps/static/jbox/Skins/Blue/jbox.css delete mode 100644 apps/static/jbox/Skins/Brown/Desktop.ini delete mode 100644 apps/static/jbox/Skins/Brown/images/Thumbs.db delete mode 100644 apps/static/jbox/Skins/Brown/images/jbox-button1.png delete mode 100644 apps/static/jbox/Skins/Brown/images/jbox-button2.png delete mode 100644 apps/static/jbox/Skins/Brown/images/jbox-close1.gif delete mode 100644 apps/static/jbox/Skins/Brown/images/jbox-close2.gif delete mode 100644 apps/static/jbox/Skins/Brown/images/jbox-content-loading.gif delete mode 100644 apps/static/jbox/Skins/Brown/images/jbox-icons-ie6.gif delete mode 100644 apps/static/jbox/Skins/Brown/images/jbox-icons.png delete mode 100644 apps/static/jbox/Skins/Brown/images/jbox-loading1.gif delete mode 100644 apps/static/jbox/Skins/Brown/images/jbox-loading2.gif delete mode 100644 apps/static/jbox/Skins/Brown/images/jbox-loading3.gif delete mode 100644 apps/static/jbox/Skins/Brown/images/jbox-title-icon.gif delete mode 100644 apps/static/jbox/Skins/Brown/jbox.css delete mode 100644 apps/static/jbox/Skins/Default/Desktop.ini delete mode 100644 apps/static/jbox/Skins/Default/Thumbs.db delete mode 100644 apps/static/jbox/Skins/Default/images/Thumbs.db delete mode 100644 apps/static/jbox/Skins/Default/images/jbox-button1.png delete mode 100644 apps/static/jbox/Skins/Default/images/jbox-button2.png delete mode 100644 apps/static/jbox/Skins/Default/images/jbox-close1.gif delete mode 100644 apps/static/jbox/Skins/Default/images/jbox-close2.gif delete mode 100644 apps/static/jbox/Skins/Default/images/jbox-content-loading.gif delete mode 100644 apps/static/jbox/Skins/Default/images/jbox-icons-ie6.gif delete mode 100644 apps/static/jbox/Skins/Default/images/jbox-icons.png delete mode 100644 apps/static/jbox/Skins/Default/images/jbox-loading1.gif delete mode 100644 apps/static/jbox/Skins/Default/images/jbox-loading2.gif delete mode 100644 apps/static/jbox/Skins/Default/images/jbox-loading3.gif delete mode 100644 apps/static/jbox/Skins/Default/images/jbox-title-icon.gif delete mode 100644 apps/static/jbox/Skins/Default/jbox.css delete mode 100644 apps/static/jbox/Skins/Gray/Desktop.ini delete mode 100644 apps/static/jbox/Skins/Gray/images/Thumbs.db delete mode 100644 apps/static/jbox/Skins/Gray/images/jbox-button1.png delete mode 100644 apps/static/jbox/Skins/Gray/images/jbox-button2.png delete mode 100644 apps/static/jbox/Skins/Gray/images/jbox-close1.gif delete mode 100644 apps/static/jbox/Skins/Gray/images/jbox-close2.gif delete mode 100644 apps/static/jbox/Skins/Gray/images/jbox-content-loading.gif delete mode 100644 apps/static/jbox/Skins/Gray/images/jbox-icons-ie6.gif delete mode 100644 apps/static/jbox/Skins/Gray/images/jbox-icons.png delete mode 100644 apps/static/jbox/Skins/Gray/images/jbox-loading1.gif delete mode 100644 apps/static/jbox/Skins/Gray/images/jbox-loading2.gif delete mode 100644 apps/static/jbox/Skins/Gray/images/jbox-loading3.gif delete mode 100644 apps/static/jbox/Skins/Gray/images/jbox-title-icon.gif delete mode 100644 apps/static/jbox/Skins/Gray/jbox.css delete mode 100644 apps/static/jbox/Skins/GrayCool/Desktop.ini delete mode 100644 apps/static/jbox/Skins/GrayCool/images/Thumbs.db delete mode 100644 apps/static/jbox/Skins/GrayCool/images/jbox-button1.png delete mode 100644 apps/static/jbox/Skins/GrayCool/images/jbox-button2.png delete mode 100644 apps/static/jbox/Skins/GrayCool/images/jbox-close1.gif delete mode 100644 apps/static/jbox/Skins/GrayCool/images/jbox-close2.gif delete mode 100644 apps/static/jbox/Skins/GrayCool/images/jbox-content-loading.gif delete mode 100644 apps/static/jbox/Skins/GrayCool/images/jbox-icons-ie6.gif delete mode 100644 apps/static/jbox/Skins/GrayCool/images/jbox-icons.png delete mode 100644 apps/static/jbox/Skins/GrayCool/images/jbox-loading1.gif delete mode 100644 apps/static/jbox/Skins/GrayCool/images/jbox-loading2.gif delete mode 100644 apps/static/jbox/Skins/GrayCool/images/jbox-loading3.gif delete mode 100644 apps/static/jbox/Skins/GrayCool/images/jbox-title-icon.gif delete mode 100644 apps/static/jbox/Skins/GrayCool/jbox.css delete mode 100644 apps/static/jbox/Skins/Green/Desktop.ini delete mode 100644 apps/static/jbox/Skins/Green/images/Thumbs.db delete mode 100644 apps/static/jbox/Skins/Green/images/jbox-button1.png delete mode 100644 apps/static/jbox/Skins/Green/images/jbox-button2.png delete mode 100644 apps/static/jbox/Skins/Green/images/jbox-close1.gif delete mode 100644 apps/static/jbox/Skins/Green/images/jbox-close2.gif delete mode 100644 apps/static/jbox/Skins/Green/images/jbox-content-loading.gif delete mode 100644 apps/static/jbox/Skins/Green/images/jbox-icons-ie6.gif delete mode 100644 apps/static/jbox/Skins/Green/images/jbox-icons.png delete mode 100644 apps/static/jbox/Skins/Green/images/jbox-loading1.gif delete mode 100644 apps/static/jbox/Skins/Green/images/jbox-loading2.gif delete mode 100644 apps/static/jbox/Skins/Green/images/jbox-loading3.gif delete mode 100644 apps/static/jbox/Skins/Green/images/jbox-title-icon.gif delete mode 100644 apps/static/jbox/Skins/Green/jbox.css delete mode 100644 apps/static/jbox/Skins/GreyBlue/Desktop.ini delete mode 100644 apps/static/jbox/Skins/GreyBlue/images/Thumbs.db delete mode 100644 apps/static/jbox/Skins/GreyBlue/images/jbox-button1.png delete mode 100644 apps/static/jbox/Skins/GreyBlue/images/jbox-button2.png delete mode 100644 apps/static/jbox/Skins/GreyBlue/images/jbox-close1.gif delete mode 100644 apps/static/jbox/Skins/GreyBlue/images/jbox-close2.gif delete mode 100644 apps/static/jbox/Skins/GreyBlue/images/jbox-content-loading.gif delete mode 100644 apps/static/jbox/Skins/GreyBlue/images/jbox-icons-ie6.gif delete mode 100644 apps/static/jbox/Skins/GreyBlue/images/jbox-icons.png delete mode 100644 apps/static/jbox/Skins/GreyBlue/images/jbox-loading1.gif delete mode 100644 apps/static/jbox/Skins/GreyBlue/images/jbox-loading2.gif delete mode 100644 apps/static/jbox/Skins/GreyBlue/images/jbox-loading3.gif delete mode 100644 apps/static/jbox/Skins/GreyBlue/images/jbox-title-icon.gif delete mode 100644 apps/static/jbox/Skins/GreyBlue/jbox.css delete mode 100644 apps/static/jbox/Skins/Purple/Desktop.ini delete mode 100644 apps/static/jbox/Skins/Purple/images/Thumbs.db delete mode 100644 apps/static/jbox/Skins/Purple/images/jbox-button1.png delete mode 100644 apps/static/jbox/Skins/Purple/images/jbox-button2.png delete mode 100644 apps/static/jbox/Skins/Purple/images/jbox-close1.gif delete mode 100644 apps/static/jbox/Skins/Purple/images/jbox-close2.gif delete mode 100644 apps/static/jbox/Skins/Purple/images/jbox-content-loading.gif delete mode 100644 apps/static/jbox/Skins/Purple/images/jbox-icons-ie6.gif delete mode 100644 apps/static/jbox/Skins/Purple/images/jbox-icons.png delete mode 100644 apps/static/jbox/Skins/Purple/images/jbox-loading1.gif delete mode 100644 apps/static/jbox/Skins/Purple/images/jbox-loading2.gif delete mode 100644 apps/static/jbox/Skins/Purple/images/jbox-loading3.gif delete mode 100644 apps/static/jbox/Skins/Purple/images/jbox-title-icon.gif delete mode 100644 apps/static/jbox/Skins/Purple/jbox.css delete mode 100644 apps/static/jbox/Skins/Red/Desktop.ini delete mode 100644 apps/static/jbox/Skins/Red/images/Thumbs.db delete mode 100644 apps/static/jbox/Skins/Red/images/jbox-button1.png delete mode 100644 apps/static/jbox/Skins/Red/images/jbox-button2.png delete mode 100644 apps/static/jbox/Skins/Red/images/jbox-close1.gif delete mode 100644 apps/static/jbox/Skins/Red/images/jbox-close2.gif delete mode 100644 apps/static/jbox/Skins/Red/images/jbox-content-loading.gif delete mode 100644 apps/static/jbox/Skins/Red/images/jbox-icons-ie6.gif delete mode 100644 apps/static/jbox/Skins/Red/images/jbox-icons.png delete mode 100644 apps/static/jbox/Skins/Red/images/jbox-loading1.gif delete mode 100644 apps/static/jbox/Skins/Red/images/jbox-loading2.gif delete mode 100644 apps/static/jbox/Skins/Red/images/jbox-loading3.gif delete mode 100644 apps/static/jbox/Skins/Red/images/jbox-title-icon.gif delete mode 100644 apps/static/jbox/Skins/Red/jbox.css delete mode 100644 apps/static/jbox/Skins/ShareBlue/Desktop.ini delete mode 100644 apps/static/jbox/Skins/ShareBlue/images/Thumbs.db delete mode 100644 apps/static/jbox/Skins/ShareBlue/images/jbox-button1.png delete mode 100644 apps/static/jbox/Skins/ShareBlue/images/jbox-button2.png delete mode 100644 apps/static/jbox/Skins/ShareBlue/images/jbox-close1.gif delete mode 100644 apps/static/jbox/Skins/ShareBlue/images/jbox-close2.gif delete mode 100644 apps/static/jbox/Skins/ShareBlue/images/jbox-content-loading.gif delete mode 100644 apps/static/jbox/Skins/ShareBlue/images/jbox-icons-ie6.gif delete mode 100644 apps/static/jbox/Skins/ShareBlue/images/jbox-icons.png delete mode 100644 apps/static/jbox/Skins/ShareBlue/images/jbox-loading1.gif delete mode 100644 apps/static/jbox/Skins/ShareBlue/images/jbox-loading2.gif delete mode 100644 apps/static/jbox/Skins/ShareBlue/images/jbox-loading3.gif delete mode 100644 apps/static/jbox/Skins/ShareBlue/images/jbox-title-icon.gif delete mode 100644 apps/static/jbox/Skins/ShareBlue/jbox.css delete mode 100644 apps/static/jbox/Skins/ShareBrown/Desktop.ini delete mode 100644 apps/static/jbox/Skins/ShareBrown/images/Thumbs.db delete mode 100644 apps/static/jbox/Skins/ShareBrown/images/jbox-button1.png delete mode 100644 apps/static/jbox/Skins/ShareBrown/images/jbox-button2.png delete mode 100644 apps/static/jbox/Skins/ShareBrown/images/jbox-close1.gif delete mode 100644 apps/static/jbox/Skins/ShareBrown/images/jbox-close2.gif delete mode 100644 apps/static/jbox/Skins/ShareBrown/images/jbox-content-loading.gif delete mode 100644 apps/static/jbox/Skins/ShareBrown/images/jbox-icons-ie6.gif delete mode 100644 apps/static/jbox/Skins/ShareBrown/images/jbox-icons.png delete mode 100644 apps/static/jbox/Skins/ShareBrown/images/jbox-loading1.gif delete mode 100644 apps/static/jbox/Skins/ShareBrown/images/jbox-loading2.gif delete mode 100644 apps/static/jbox/Skins/ShareBrown/images/jbox-loading3.gif delete mode 100644 apps/static/jbox/Skins/ShareBrown/images/jbox-title-icon.gif delete mode 100644 apps/static/jbox/Skins/ShareBrown/jbox.css delete mode 100644 apps/static/jbox/Skins/ShareGreen/Desktop.ini delete mode 100644 apps/static/jbox/Skins/ShareGreen/images/Thumbs.db delete mode 100644 apps/static/jbox/Skins/ShareGreen/images/jbox-button1.png delete mode 100644 apps/static/jbox/Skins/ShareGreen/images/jbox-button2.png delete mode 100644 apps/static/jbox/Skins/ShareGreen/images/jbox-close1.gif delete mode 100644 apps/static/jbox/Skins/ShareGreen/images/jbox-close2.gif delete mode 100644 apps/static/jbox/Skins/ShareGreen/images/jbox-content-loading.gif delete mode 100644 apps/static/jbox/Skins/ShareGreen/images/jbox-icons-ie6.gif delete mode 100644 apps/static/jbox/Skins/ShareGreen/images/jbox-icons.png delete mode 100644 apps/static/jbox/Skins/ShareGreen/images/jbox-loading1.gif delete mode 100644 apps/static/jbox/Skins/ShareGreen/images/jbox-loading2.gif delete mode 100644 apps/static/jbox/Skins/ShareGreen/images/jbox-loading3.gif delete mode 100644 apps/static/jbox/Skins/ShareGreen/images/jbox-title-icon.gif delete mode 100644 apps/static/jbox/Skins/ShareGreen/jbox.css delete mode 100644 apps/static/jbox/Skins/SharePurple/Desktop.ini delete mode 100644 apps/static/jbox/Skins/SharePurple/images/Thumbs.db delete mode 100644 apps/static/jbox/Skins/SharePurple/images/jbox-button1.png delete mode 100644 apps/static/jbox/Skins/SharePurple/images/jbox-button2.png delete mode 100644 apps/static/jbox/Skins/SharePurple/images/jbox-close1.gif delete mode 100644 apps/static/jbox/Skins/SharePurple/images/jbox-close2.gif delete mode 100644 apps/static/jbox/Skins/SharePurple/images/jbox-content-loading.gif delete mode 100644 apps/static/jbox/Skins/SharePurple/images/jbox-icons-ie6.gif delete mode 100644 apps/static/jbox/Skins/SharePurple/images/jbox-icons.png delete mode 100644 apps/static/jbox/Skins/SharePurple/images/jbox-loading1.gif delete mode 100644 apps/static/jbox/Skins/SharePurple/images/jbox-loading2.gif delete mode 100644 apps/static/jbox/Skins/SharePurple/images/jbox-loading3.gif delete mode 100644 apps/static/jbox/Skins/SharePurple/images/jbox-title-icon.gif delete mode 100644 apps/static/jbox/Skins/SharePurple/jbox.css delete mode 100644 apps/static/jbox/Skins/ShareRed/Desktop.ini delete mode 100644 apps/static/jbox/Skins/ShareRed/images/Thumbs.db delete mode 100644 apps/static/jbox/Skins/ShareRed/images/jbox-button1.png delete mode 100644 apps/static/jbox/Skins/ShareRed/images/jbox-button2.png delete mode 100644 apps/static/jbox/Skins/ShareRed/images/jbox-close1.gif delete mode 100644 apps/static/jbox/Skins/ShareRed/images/jbox-close2.gif delete mode 100644 apps/static/jbox/Skins/ShareRed/images/jbox-content-loading.gif delete mode 100644 apps/static/jbox/Skins/ShareRed/images/jbox-icons-ie6.gif delete mode 100644 apps/static/jbox/Skins/ShareRed/images/jbox-icons.png delete mode 100644 apps/static/jbox/Skins/ShareRed/images/jbox-loading1.gif delete mode 100644 apps/static/jbox/Skins/ShareRed/images/jbox-loading2.gif delete mode 100644 apps/static/jbox/Skins/ShareRed/images/jbox-loading3.gif delete mode 100644 apps/static/jbox/Skins/ShareRed/images/jbox-title-icon.gif delete mode 100644 apps/static/jbox/Skins/ShareRed/jbox.css delete mode 100644 apps/static/jbox/Skins/样式说明(以Default皮肤为例).css delete mode 100644 apps/static/jbox/Skins2/Blue/Desktop.ini delete mode 100644 apps/static/jbox/Skins2/Blue/images/Thumbs.db delete mode 100644 apps/static/jbox/Skins2/Blue/images/jbox-close1.gif delete mode 100644 apps/static/jbox/Skins2/Blue/images/jbox-close2.gif delete mode 100644 apps/static/jbox/Skins2/Blue/images/jbox-content-loading.gif delete mode 100644 apps/static/jbox/Skins2/Blue/images/jbox-icons-ie6.gif delete mode 100644 apps/static/jbox/Skins2/Blue/images/jbox-icons.png delete mode 100644 apps/static/jbox/Skins2/Blue/images/jbox-loading1.gif delete mode 100644 apps/static/jbox/Skins2/Blue/images/jbox-loading2.gif delete mode 100644 apps/static/jbox/Skins2/Blue/images/jbox-loading3.gif delete mode 100644 apps/static/jbox/Skins2/Blue/images/jbox-title-icon.gif delete mode 100644 apps/static/jbox/Skins2/Blue/jbox.css delete mode 100644 apps/static/jbox/Skins2/Gray/Desktop.ini delete mode 100644 apps/static/jbox/Skins2/Gray/images/Thumbs.db delete mode 100644 apps/static/jbox/Skins2/Gray/images/jbox-close1.gif delete mode 100644 apps/static/jbox/Skins2/Gray/images/jbox-close2.gif delete mode 100644 apps/static/jbox/Skins2/Gray/images/jbox-content-loading.gif delete mode 100644 apps/static/jbox/Skins2/Gray/images/jbox-icons-ie6.gif delete mode 100644 apps/static/jbox/Skins2/Gray/images/jbox-icons.png delete mode 100644 apps/static/jbox/Skins2/Gray/images/jbox-loading1.gif delete mode 100644 apps/static/jbox/Skins2/Gray/images/jbox-loading2.gif delete mode 100644 apps/static/jbox/Skins2/Gray/images/jbox-loading3.gif delete mode 100644 apps/static/jbox/Skins2/Gray/images/jbox-title-icon.gif delete mode 100644 apps/static/jbox/Skins2/Gray/jbox.css delete mode 100644 apps/static/jbox/Skins2/Green/Desktop.ini delete mode 100644 apps/static/jbox/Skins2/Green/images/Thumbs.db delete mode 100644 apps/static/jbox/Skins2/Green/images/jbox-close1.gif delete mode 100644 apps/static/jbox/Skins2/Green/images/jbox-close2.gif delete mode 100644 apps/static/jbox/Skins2/Green/images/jbox-content-loading.gif delete mode 100644 apps/static/jbox/Skins2/Green/images/jbox-icons-ie6.gif delete mode 100644 apps/static/jbox/Skins2/Green/images/jbox-icons.png delete mode 100644 apps/static/jbox/Skins2/Green/images/jbox-loading1.gif delete mode 100644 apps/static/jbox/Skins2/Green/images/jbox-loading2.gif delete mode 100644 apps/static/jbox/Skins2/Green/images/jbox-loading3.gif delete mode 100644 apps/static/jbox/Skins2/Green/images/jbox-title-icon.gif delete mode 100644 apps/static/jbox/Skins2/Green/jbox.css delete mode 100644 apps/static/jbox/Skins2/Pink/Desktop.ini delete mode 100644 apps/static/jbox/Skins2/Pink/images/Thumbs.db delete mode 100644 apps/static/jbox/Skins2/Pink/images/jbox-close1.gif delete mode 100644 apps/static/jbox/Skins2/Pink/images/jbox-close2.gif delete mode 100644 apps/static/jbox/Skins2/Pink/images/jbox-content-loading.gif delete mode 100644 apps/static/jbox/Skins2/Pink/images/jbox-icons-ie6.gif delete mode 100644 apps/static/jbox/Skins2/Pink/images/jbox-icons.png delete mode 100644 apps/static/jbox/Skins2/Pink/images/jbox-loading1.gif delete mode 100644 apps/static/jbox/Skins2/Pink/images/jbox-loading2.gif delete mode 100644 apps/static/jbox/Skins2/Pink/images/jbox-loading3.gif delete mode 100644 apps/static/jbox/Skins2/Pink/images/jbox-title-icon.gif delete mode 100644 apps/static/jbox/Skins2/Pink/jbox.css delete mode 100644 apps/static/jbox/Skins2/Purple/Desktop.ini delete mode 100644 apps/static/jbox/Skins2/Purple/images/Thumbs.db delete mode 100644 apps/static/jbox/Skins2/Purple/images/jbox-close1.gif delete mode 100644 apps/static/jbox/Skins2/Purple/images/jbox-close2.gif delete mode 100644 apps/static/jbox/Skins2/Purple/images/jbox-content-loading.gif delete mode 100644 apps/static/jbox/Skins2/Purple/images/jbox-icons-ie6.gif delete mode 100644 apps/static/jbox/Skins2/Purple/images/jbox-icons.png delete mode 100644 apps/static/jbox/Skins2/Purple/images/jbox-loading1.gif delete mode 100644 apps/static/jbox/Skins2/Purple/images/jbox-loading2.gif delete mode 100644 apps/static/jbox/Skins2/Purple/images/jbox-loading3.gif delete mode 100644 apps/static/jbox/Skins2/Purple/images/jbox-title-icon.gif delete mode 100644 apps/static/jbox/Skins2/Purple/jbox.css delete mode 100644 apps/static/jbox/Skins2/Yellow/Desktop.ini delete mode 100644 apps/static/jbox/Skins2/Yellow/images/Thumbs.db delete mode 100644 apps/static/jbox/Skins2/Yellow/images/jbox-close1.gif delete mode 100644 apps/static/jbox/Skins2/Yellow/images/jbox-close2.gif delete mode 100644 apps/static/jbox/Skins2/Yellow/images/jbox-content-loading.gif delete mode 100644 apps/static/jbox/Skins2/Yellow/images/jbox-icons-ie6.gif delete mode 100644 apps/static/jbox/Skins2/Yellow/images/jbox-icons.png delete mode 100644 apps/static/jbox/Skins2/Yellow/images/jbox-loading1.gif delete mode 100644 apps/static/jbox/Skins2/Yellow/images/jbox-loading2.gif delete mode 100644 apps/static/jbox/Skins2/Yellow/images/jbox-loading3.gif delete mode 100644 apps/static/jbox/Skins2/Yellow/images/jbox-title-icon.gif delete mode 100644 apps/static/jbox/Skins2/Yellow/jbox.css delete mode 100644 apps/static/jbox/Skins2/样式说明(以Green皮肤为例).css diff --git a/apps/assets/templates/assets/idc_list.html b/apps/assets/templates/assets/idc_list.html index da477c758..ca8bd157b 100644 --- a/apps/assets/templates/assets/idc_list.html +++ b/apps/assets/templates/assets/idc_list.html @@ -28,8 +28,6 @@ {{ idc.address }} {% trans 'Update' %} - - {% trans 'Delete' %} @@ -39,7 +37,32 @@ - + - - - - + + + + From e7c20f07078a2e650e920594ceb0316f1fb67626 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 14 Sep 2016 15:51:09 +0800 Subject: [PATCH 41/50] add assets manage Sweet Alert" --- apps/static/css/jbox.css | 43 ------------------- .../{js => jbox}/jquery-migrate-1.1.1.min.js | 0 apps/static/js/jquery.jBox-2.3.min.js | 11 ----- apps/static/js/jquery.jBox-zh-CN.min.js | 1 - 4 files changed, 55 deletions(-) delete mode 100644 apps/static/css/jbox.css rename apps/static/{js => jbox}/jquery-migrate-1.1.1.min.js (100%) delete mode 100644 apps/static/js/jquery.jBox-2.3.min.js delete mode 100644 apps/static/js/jquery.jBox-zh-CN.min.js diff --git a/apps/static/css/jbox.css b/apps/static/css/jbox.css deleted file mode 100644 index 0813f30d1..000000000 --- a/apps/static/css/jbox.css +++ /dev/null @@ -1,43 +0,0 @@ -@charset "utf-8"; -/* - 提示:CSS 样式只允许修改颜色属性,或图片的地址(图片大小要和默认的一致)。border:dotted solid double dashed -*/ -*:focus { outline: none; list-style-type: decimal; } -/* fade */ -.jbox-fade{background-color:#000;} -/* drag */ -.jbox-drag{border:1px dashed #376EA5;} -/* jbox */ -div.jbox {padding:0px;border:none;font-size:12px;} -/* border */ -div.jbox .jbox-border{background: none repeat scroll 0 0 #999999;filter:alpha(opacity=20);-moz-opacity:0.2;opacity:0.2;} -/* container */ -div.jbox .jbox-container{background-color:#ffffff;border:1px solid #999999;} -/* title-panel */ -div.jbox .jbox-title-panel{background:#ffffff;border-bottom:1px solid #CCCCCC;padding: 8px 15px;} -div.jbox .jbox-title{font-weight:bold;color:#333333; font-size: 18px; line-height: 27px;padding-top:0px;} -div.jbox .jbox-title-icon{background:url(images/jbox-title-icon.gif) no-repeat scroll 3px 5px transparent;} -div.jbox .jbox-close,div.jbox .jbox-close-hover{background:url(images/jbox-close.gif) no-repeat scroll 0px 0px transparent;margin:7px;} -div.jbox .jbox-close-hover{background-position:-16px 0;} -/* content */ -div.jbox .jbox-content{min-height:24px;line-height:18px;color:#444444;} -div.jbox .jbox-content-loading{background-color:#E6E6E6;} -div.jbox .jbox-content-loading-image{background:url(images/jbox-content-loading.gif) no-repeat bottom center;} -/* button-panel */ -div.jbox .jbox-button-panel{border-top:1px solid #CCCCCC;background-color: #EEEEEE;} -div.jbox .jbox-bottom-text{text-indent:10px;color:#444444;} -div.jbox .jbox-button{background:url(images/jbox-button1.png) repeat-x transparent;border:#AAAAAA 1px solid;color:#888888;border-radius:3px 3px 3px 3px;margin:1px 7px 0px 0px;height:22px;cursor:default;} -div.jbox .jbox-button-hover{background-position:0px -20px;color:#666666;} -div.jbox .jbox-button-active{background-position:0px -40px;} -div.jbox-warning .jbox .jbox-button-panel{background-color: #FFFFFF;} -/* tip-color */ -div.jbox .jbox-tip-color{background-color:#376EA5;border-color:#376EA5;border-radius:3px 3px 3px 3px;color:#ffffff;} -/* icons */ -div.jbox span.jbox-icon{background:url(images/jbox-icons.png) no-repeat scroll 0 0 transparent;_background:url(images/jbox-icons-ie6.gif) no-repeat scroll 0 0 transparent;} -div.jbox span.jbox-icon-info {background-position:0 0;} -div.jbox span.jbox-icon-question {background-position:-36px 0;} -div.jbox span.jbox-icon-success {background-position:-72px 0;} -div.jbox span.jbox-icon-warning {background-position:-108px 0;} -div.jbox span.jbox-icon-error {background-position:-144px 0;} -div.jbox span.jbox-icon-none {display: none; overflow:hidden;} -div.jbox span.jbox-icon-loading {background:url(images/jbox-loading1.gif) no-repeat scroll 0 0 transparent;} diff --git a/apps/static/js/jquery-migrate-1.1.1.min.js b/apps/static/jbox/jquery-migrate-1.1.1.min.js similarity index 100% rename from apps/static/js/jquery-migrate-1.1.1.min.js rename to apps/static/jbox/jquery-migrate-1.1.1.min.js diff --git a/apps/static/js/jquery.jBox-2.3.min.js b/apps/static/js/jquery.jBox-2.3.min.js deleted file mode 100644 index 52a165ba9..000000000 --- a/apps/static/js/jquery.jBox-2.3.min.js +++ /dev/null @@ -1,11 +0,0 @@ -/* -* jQuery jBox 2.3 -* http://www.kudystudio.com -* Author: kudy chen (kudychen@gmail.com) -* -* Copyright 2011, kudy studio -* Dual licensed under the MIT or GPL Version 3 licenses. -* -* Last Modified: 2011-11-11 -*/ -eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(m($){$.d=m(j,8){8=$.R({},$.d.H,8);8.1h=8.1z>0;8.12=8.12||V;8.1j=8.1j||V;c(j==14){j=\'\'}c(8.n<0){8.n=0}c(8.11==14){8.11=\'5e\'+30.5c(30.3H()*5j)}g 1o=($.1w.1Q&&41($.1w.2Y)<7);g 2B=$(\'#\'+8.11);c(2B.1t>0){8.O=$.d.H.O++;2B.E({O:8.O});2B.x(\'#b\').E({O:8.O+1});Q 2B}g q={2b:\'\',17:\'\',s:\'\',1T:j.5i==55};c(!q.1T){j=j+\'\';g 2f=j.56();c(2f.1E(\'11:\')==0)q.17=\'4g\';J c(2f.1E(\'4L:\')==0)q.17=\'34\';J c(2f.1E(\'5J:\')==0)q.17=\'33\';J c(2f.1E(\'19:\')==0)q.17=\'2q\';J c(2f.1E(\'s:\')==0)q.17=\'3X\';J{j=\'s:\'+j;q.17=\'3X\'}j=j.5I(j.1E(":")+1,j.1t)}g 3f=!8.12&&!(8.B==14);g 37=q.17==\'34\'||q.17==\'33\'||q.17==\'2q\';g 4k=1n 8.D==\'3a\'?(8.D-50)+\'G\':"5H%";g C=[];C.o(\'\');c(8.1h){c((1o&&$(\'19\').1t>0)||$(\'3V, 5r\').1t>0){C.o(\'<19 11="b-1F" I="b-1F" 3t="4v:52" A="1e:2G;P:1a;z-3r:-1;">\')}J{c(1o){$(\'4Z\').E(\'4X\',\'21\')}C.o(\'\')}}C.o(\'\');c(8.1D){C.o(\'\')}C.o(\'\');C.o(\'\');C.o(\'\');C.o(\'<4h n="0" 5v="0" 5w="0" A="1f:L;M:L;n:K;">\');c(8.n>0){C.o(\'<2r>\');C.o(\'\');C.o(\'\');C.o(\'\');C.o(\'\')}C.o(\'<2r>\');C.o(\'\');C.o(\'\');C.o(\'\');C.o(\'\');c(3f){C.o(\'\');C.o(\'\'+(8.B==\'\'?\'&5E;\':8.B)+\'\');C.o(\'\')}C.o(\'\');C.o(\'\');C.o(\'\');C.o(\'\');C.o(\'\');c(8.n>0){C.o(\'<2r>\');C.o(\'\');C.o(\'\');C.o(\'\');C.o(\'\')}C.o(\'\');C.o(\'\');C.o(\'
      \');g 4d=\'<19 1X="b-19" 11="b-19" D="1V%" p="1V%" 5B="0" 5C="0" 5D="0" 5m="\'+8.4I+\'">\';g $U=$(U);g $1b=$(1B.1b);g $16=$(C.2l(\'\')).58($1b);g $r=$16.2g(\'#b\');g $1U=$16.2g(\'#b-1F\');g $2P=$16.2g(\'#b-3S\');c(!q.1T){3q(q.17){1q"4g":q.s=$(\'#\'+j).s();1m;1q"34":1q"33":q.s=\'\';q.2b=j;1m;1q"3X":q.s=j;1m;1q"2q":q.s=4d;c(j.1E(\'#\')==-1){q.2b=j+(j.1E(\'?\')==-1?\'?2W=\':\'&2W=\')+30.3H()}J{g 2R=j.5l(\'#\');q.2b=2R[0]+(2R[0].1E(\'?\')==-1?\'?2W=\':\'&2W=\')+30.3H()+\'#\'+2R[1]}1m}j={5k:{j:q.s,1c:8.1c,2i:8.2i,Z:8.Z}}}g 1i=[];g 3M=$r.x(\'.b-3c-B\').4e(N);g 3T=$r.x(\'.b-3c-S\').4e(N);g 4c=$.1w.1Q?\'3B-p:4m;M:L 4f L 4f;\':\'M:L 2J L 2J;\';$.2L(j,m(1v,1k){c(q.1T){1k=$.R({},$.d.2C,1k)}j[1v]=1k;c(1k.1c==14){1k.1c={}}g 2M=V;$.2L(1k.1c,m(k,v){2M=N});g 1x=\'T\';c(1n 8.p==\'3a\'){1x=8.p;c(3f){1x=1x-3M}c(2M){1x=1x-3T}1x=(1x-1)+\'G\'}g 3I=\'\';g 3O=\'2F\';c(!q.1T&&37){g 1A=8.p;c(1n 8.p==\'3a\'){c(3f){1A=1A-3M}c(2M){1A=1A-3T}3O=((1A/5)*2)+\'G\';1A=(1A-1)+\'G\'}3I=[\'\',\'\',\'\'].2l(\'\')}1i.o(\'\');1i.o(\'\'+3I+\'\'+1k.j+\'\');1i.o(\'\');c(!8.12){1i.o(\'<1P I="b-1W-1C" A="4s:F;1e:2G;3B-p:2F;">\')}$.2L(1k.1c,m(k,v){1i.o(\'\'+k+\'\')});1i.o(\'\')});$r.x(\'#b-1i\').s(1i.2l(\'\')).2g(\'.b-Y:3W\').E(\'1e\',\'2G\');c(37){g $19=$r.x(\'#b-j\').E({P:(1o)?"1a":"3d",F:-6h})}$.2L(j,m(1v,1k){g $Y=$r.x(\'#b-Y-\'+1v);$Y.2g(\'.b-S-1M\').2g(\'S\').23(m(){g 3V=$Y.x(\'#b-j\');g 4t=1k.1c[$(1L).1C()];g 1N={};$.2L($r.x(\'#b-1i :4n\').6d(),m(i,1y){c(1N[1y.1X]===14){1N[1y.1X]=1y.3e}J c(1n 1N[1y.1X]==6e){1N[1y.1X].o(1y.3e)}J{1N[1y.1X]=[1N[1y.1X],1y.3e]}});g 1J=1k.Z(4t,3V,1N);c(1J===14||1J){2a()}}).1u(\'2d\',m(){$(1L).2w(\'b-S-3h\')}).1u(\'49\',m(){$(1L).2z(\'b-S-3h\')}).1u(\'5R\',m(){$(1L).2w(\'b-S-2x\')}).1u(\'5S\',m(){$(1L).2z(\'b-S-3h\').2z(\'b-S-2x\')});$Y.x(\'.b-S-1M S:39(\'+1k.2i+\')\').2w(\'b-S-1p\')});g 3k=m(){$16.E({t:$U.2X()});c(8.1j){$r.E({P:(1o)?"1a":"3d",1Y:1,1W:1})}};g 3g=m(){c(!8.1h){Q}c(8.4M){g i=0;$16.2w(\'b-1R\');g 4r=5N(m(){$16.5O(\'b-1R\');c(i++>1){5U(4r);$16.2z(\'b-1R\')}},1V)}J{2a()}};g 3i=m(e){c(8.12||8.1j){Q V}g 3j=(U.3y)?3y.4q:e.4q;c(3j==27){2a()}c(3j==9){g $2c=$(\':4n:5Z:2e\',$16);g 4p=!e.4o&&e.W==$2c[$2c.1t-1];g 3u=e.4o&&e.W==$2c[0];c(4p||3u){2Z(m(){c(!$2c)Q;g 3l=$2c[3u===N?$2c.1t-1:0];c(3l)3l.1p()},10);Q V}}};g 2S=m(){c(8.1h){$.d.2U++;$($.1w.1Q?\'s\':\'1b\').32(\'A\',\'1K:21;M-1Y:4W;\');$1U.E({P:"1a",p:8.12?64:$U.p(),D:1o?$U.D():"1V%",t:0,F:0,1Y:0,1W:0})}};g 4D=m(){c(8.1j){$r.E({P:(1o)?"1a":"3d",1Y:1,1W:1})}J{$2P.E({t:8.t});$r.E({P:"1a",t:$2P.3E().t+(8.12?$U.2X():0),F:(($U.D()-$r.51())/2)})}c((8.1h&&!8.12)||(!8.1h&&!8.12&&!8.1j)){$16.E({P:(1o)?"1a":"3d",p:8.1h?$U.p():0,D:"1V%",t:(1o)?$U.2X():0,F:0,1Y:0,1W:0})}2S()};g 3Z=m(){8.O=$.d.H.O++;$16.E({O:8.O});$r.E({O:8.O+1})};g 4E=m(){8.O=$.d.H.O++;$16.E({O:8.O});$r.E({1e:"K",O:8.O+1});c(8.1h){$1U.E({1e:"K",O:8.O,1z:8.1z})}};g 4b=m(e){g 1g=e.q;1g.W.x(\'19\').2D();c(8.1G){1g.W.2o().E({F:1g.W.E(\'F\'),t:1g.W.E(\'t\'),60:-2,63:-2,D:1g.W.D()+2,p:1g.W.p()+2}).1O()}Q V};g 48=m(e){g 1g=e.q;g F=1g.47+e.44-1g.42;g t=1g.46+e.43-1g.45;c(8.4N){g 3s=1;g 3m=1B.4u.62-e.q.W.p()-1;g 3o=1;g 3p=1B.4u.5M-e.q.W.D()-1;c(t<3s)t=3s+(8.1G?2:0);c(t>3m)t=3m-(8.1G?2:0);c(F<3o)F=3o+(8.1G?2:0);c(F>3p)F=3p-(8.1G?2:0)}c(8.1G){1g.W.2o().E({F:F,t:t})}J{1g.W.E({F:F,t:t})}Q V};g 4a=m(e){$(1B).28(\'.1D\');c(8.1G){g 2E=e.q.W.2o().2D();e.q.W.E({F:2E.E(\'F\'),t:2E.E(\'t\')}).x(\'19\').1O()}J{e.q.W.x(\'19\').1O()}Q V};g 3G=m(e){g P=e.q.W.P();g q={W:e.q.W,42:e.44,45:e.43,47:P.F,46:P.t};$(1B).1u(\'2d.1D\',q,4b).1u(\'6i.1D\',q,48).1u(\'49.1D\',q,4a)};g 2a=m(){c(8.1h){c($.d.2U==1){$($.1w.1Q?\'s\':\'1b\').4U(\'A\')};$.d.2U--}c(8.12){g 13=$(1B.1b).q(\'13\');c(13&&13.1r==N){$2P.E(\'t\',13.8.t);g t=$2P.3E().t+$U.2X();c(t==$r.3E().t){26()}J{$r.x(\'#b-j\').s(13.8.j.68(5)).69().E({F:(($U.D()-$r.51())/2)}).53({t:t,1z:0.1},4Y,26)}}J{$r.53({t:\'-=6a\',1z:0},4Y,26)}}J{3q(8.2y){1q\'3P\':$r.4Q(8.1H,26);1m;1q\'1F\':$r.4V(8.1H,26);1m;1q\'1O\':4C:$r.2D(8.1H,26);1m}}};g 26=m(){$($.1w.1Q?\'s\':\'1b\').4U(\'A\',\'1K:21;M-1Y:4W;\');$U.28(\'4B\',2S);c(8.1D&&!8.12&&!8.1j){$r.x(\'.b-B-1M\').28(\'2d\',3G)}c(q.17!=\'2q\'){$r.x(\'#b-19\').32({\'3t\':\'4v:52\'})}$r.s(\'\').3z();c(1o&&!8.12){$1b.28(\'4F\',3k)}c(8.1h){$1U.4V(\'2V\',m(){$1U.28(\'23\',3g).28(\'2d\',3Z).s(\'\').3z()})}$16.28(\'4A 4w\',3i).s(\'\').3z();c(1o&&8.1h){$(\'4Z\').E(\'4X\',\'2e\')}c(1n 8.1J==\'m\'){8.1J()}};g 2m=m(){c(8.1d>0){$r.q(\'2m\',U.2Z(2a,8.1d));c(8.1j){$r.2x(m(){U.6g($r.q(\'2m\'))},m(){$r.q(\'2m\',U.2Z(2a,8.1d))})}}};g 1I=m(){c(1n 8.1I==\'m\'){8.1I($r.x(\'.b-Y:2e\').x(\'.b-j\'))}};c(!q.1T){3q(q.17){1q"34":1q"33":$.66({17:q.17,2b:q.2b,q:8.3J==14?{}:8.3J,5T:\'s\',5Q:V,2h:m(q,5P){$r.x(\'#b-j\').E({P:"4R"}).s(q).1O().2o().2D();1I()},2n:m(){$r.x(\'#b-j-2t\').s(\'5V 5W.\')}});1m;1q"2q":$r.x(\'#b-19\').32({\'3t\':q.2b}).1u("5Y",m(3y){$(1L).5X().E({P:"4R"}).1O().2o().2D();$r.x(\'#b-1i .b-Y:3W .b-S-1p\').1p();1I()});1m;4C:$r.x(\'#b-j\').1O();1m}}4D();4E();c(1o&&!8.12){$U.4F(3k)}c(8.1h){$1U.23(3g)}$U.4B(2S);$16.1u(\'4A 4w\',3i);$r.x(\'.b-1l\').23(2a);c(8.1h){$1U.4x(\'2V\')};g 2u=\'1O\';c(8.2y==\'3P\'){2u=\'4O\'}J c(8.2y==\'1F\'){2u=\'4x\'}c(8.1j){$r[2u](8.1H,2m)}J{g 13=$(1B.1b).q(\'13\');c(13&&13.1r==N){$(1B.1b).q(\'13\',{1r:V,8:{}});$r.E(\'1e\',\'\')}J{c(!q.1T&&37){$r[2u](8.1H)}J{$r[2u](8.1H,1I)}}}c(!8.12){$r.x(\'.b-1W-1C\').s(8.4J)}J{$r.x(\'.b-4z,.b-j\').2w(\'b-13-4G\')}c(q.17!=\'2q\'){$r.x(\'#b-1i .b-Y:3W .b-S-1p\').1p()}J{$r.1p()}c(!8.1j){2m()}$16.1u(\'2d\',3Z);c(8.1D&&!8.12&&!8.1j){$r.x(\'.b-B-1M\').1u(\'2d\',{W:$r},3G).E(\'4H\',\'6c\')}Q $16};$.d.2Y=2.3;$.d.H={11:3L,t:"15%",O:3C,n:5,1z:0.1,1d:0,2y:\'1F\',1H:\'2V\',2K:N,31:N,1D:N,4N:N,1G:V,4M:N,5L:N,3J:{},4I:\'T\',B:\'d\',D:3Y,p:\'T\',4J:\'\',1c:{\'确定\':\'29\'},2i:0,1I:m(h){},Z:m(v,h,f){Q N},1J:m(){}};$.d.2C={j:\'\',1c:{\'确定\':\'29\'},2i:0,Z:m(v,h,f){Q N}};$.d.2O={j:\'\',w:\'1Z\',t:\'40%\',D:\'T\',p:\'T\',1z:0,1d:4K,1J:m(){}};$.d.2k={j:\'\',B:\'d\',w:\'K\',D:3Y,p:\'T\',1d:4K,2y:\'3P\',1H:6f,n:0,1c:{},2i:0,1I:m(){},Z:m(v,h,f){Q N},1J:m(){}};$.d.1s={1l:\'关闭\',29:\'确定\',3w:\'是\',3x:\'否\',2N:\'取消\'};$.d.5z=m(2j){$.d.H=$.R({},$.d.H,2j.H);$.d.2C=$.R({},$.d.2C,2j.2C);$.d.2O=$.R({},$.d.2O,2j.2O);$.d.2k=$.R({},$.d.2k,2j.2k);$.d.1s=$.R({},$.d.1s,2j.1s)};$.d.2Q=m(){Q $(\'.b-1b\').39($(\'.b-1b\').1t-1)};$.d.5f=m(3N){g r=(1n 3N==\'3U\')?$(\'#\'+3N):$.d.2Q();Q r.x(\'#b-19\').4L(0)};$.d.5d=m(){Q $.d.3b().x(\'.b-j\').s()};$.d.5g=m(j){Q $.d.3b().x(\'.b-j\').s(j)};$.d.3b=m(3D){c(3D==14){Q $.d.2Q().x(\'.b-Y:2e\')}J{Q $.d.2Q().x(\'#b-Y-\'+3D)}};$.d.5h=m(){Q $.d.3b().32(\'11\').5b(\'b-Y-\',\'\')};$.d.3A=m(1v,1S){g r=$.d.2Q();c(r!=14&&r!=3L){g $1r;1v=1v||V;r.x(\'.b-Y\').4Q(\'2V\');c(1n 1v==\'3U\'){$1r=r.x(\'#b-Y-\'+1v)}J{$1r=1v?r.x(\'.b-Y:2e\').1r():r.x(\'.b-Y:2e\').2o()}$1r.4O(3Y,m(){U.2Z(m(){$1r.x(\'.b-S-1p\').1p();c(1S!=14){$1r.x(\'.b-j\').s(1S)}},20)})}};$.d.54=m(1S){$.d.3A(N,1S)};$.d.57=m(1S){$.d.3A(V,1S)};$.d.1l=m(2v,38){2v=2v||V;38=38||\'1b\';c(1n 2v==\'3U\'){$(\'#\'+2v).x(\'.b-1l\').23()}J{g 2s=$(\'.b-\'+38);c(2v){59(g i=0,l=2s.1t;i0){2s.39(2s.1t-1).x(\'.b-1l\').23()}}}};$.d.5A=m(j,B,D,p,8){g H={j:j,B:B,D:D,p:p};8=$.R({},H,8);8=$.R({},$.d.H,8);$.d(8.j,8)};$.d.22=m(j,B,w,8){g H={j:j,B:B,w:w,1c:3v(\'({ "\'+$.d.1s.29+\'": "29" })\')};8=$.R({},H,8);8=$.R({},$.d.H,8);c(8.n<0){8.n=0}c(8.w!=\'1Z\'&&8.w!=\'1R\'&&8.w!=\'2h\'&&8.w!=\'2n\'&&8.w!=\'3F\'){M=\'\';8.w=\'K\'}g t=8.B==14?10:50;g 2T=8.w==\'K\'?\'p:T;\':\'2I-p:2H;\'+(($.1w.1Q&&41($.1w.2Y)<7)?\'p:T !4y;p:1V%;4S:2H;\':\'p:T;\');g s=[];s.o(\'s:\');s.o(\'\');s.o(\'<1P I="b-w b-w-\'+8.w+\'" A="P:1a; t:\'+(t+8.n)+\'G;F:\'+(10+8.n)+\'G; D:2p; p:2p;">\');s.o(8.j);s.o(\'\');8.j=s.2l(\'\');$.d(8.j,8)};$.d.5q=m(j,B,8){$.d.22(j,B,\'K\',8)};$.d.1Z=m(j,B,8){$.d.22(j,B,\'1Z\',8)};$.d.2h=m(j,B,8){$.d.22(j,B,\'2h\',8)};$.d.2n=m(j,B,8){$.d.22(j,B,\'2n\',8)};$.d.5u=m(j,B,Z,8){g H={1c:3v(\'({ "\'+$.d.1s.29+\'": "29", "\'+$.d.1s.2N+\'": "2N" })\')};c(Z!=14&&1n Z==\'m\'){H.Z=Z}J{H.Z=m(v,h,f){Q N}}8=$.R({},H,8);$.d.22(j,B,\'3F\',8)};$.d.1R=m(j,B,Z,8){g H={1c:3v(\'({ "\'+$.d.1s.3w+\'": "3w", "\'+$.d.1s.3x+\'": "3x", "\'+$.d.1s.2N+\'": "2N" })\')};c(Z!=14&&1n Z==\'m\'){H.Z=Z}J{H.Z=m(v,h,f){Q N}}8=$.R({},H,8);$.d.22(j,B,\'1R\',8)};$.d.13=m(j,w,8){g H={j:j,w:w,1z:0,n:0,31:V,1c:{},12:N};c(H.w==\'2t\'){H.1d=0;H.1z=0.1}8=$.R({},H,8);8=$.R({},$.d.2O,8);8=$.R({},$.d.H,8);c(8.1d<0){8.1d=0}c(8.n<0){8.n=0}c(8.w!=\'1Z\'&&8.w!=\'1R\'&&8.w!=\'2h\'&&8.w!=\'2n\'&&8.w!=\'2t\'){8.w=\'1Z\'}g s=[];s.o(\'s:\');s.o(\'\');s.o(\'<1P I="b-w b-w-\'+8.w+\'" A="P:1a;t:\'+(4+8.n)+\'G;F:\'+(4+8.n)+\'G; D:2p; p:2p;">\');s.o(8.j);s.o(\'\');8.j=s.2l(\'\');c($(\'.b-13\').1t>0){$(1B.1b).q(\'13\',{1r:N,8:8});$.d.4P()}c(8.3R!=14){$(\'#\'+8.3R).1p();t.$(\'#\'+8.3R).1p()};$.d(8.j,8)};$.d.4P=m(){$.d.1l(V,\'13\')};$.d.3Q=m(j,B,1d,8){$.d.4l();g H={j:j,B:B,1d:(1d==14?$.d.2k.1d:1d),1z:0,31:N,1D:V,1j:N};8=$.R({},H,8);8=$.R({},$.d.2k,8);g 3K=$.R({},$.d.H,{});3K.B=3L;8=$.R({},3K,8);c(8.n<0){8.n=0}c(8.w!=\'1Z\'&&8.w!=\'1R\'&&8.w!=\'2h\'&&8.w!=\'2n\'&&8.w!=\'3F\'){M=\'\';8.w=\'K\'}g t=8.B==14?10:35;g 2T=8.w==\'K\'?\'p:T;\':\'2I-p:2H;\'+(($.1w.1Q&&41($.1w.2Y)<7)?\'p:T !4y;p:1V%;4S:2H;\':\'p:T;\');g s=[];s.o(\'s:\');s.o(\'\');s.o(\'<1P I="b-w b-w-\'+8.w+\'" A="P:1a; t:\'+(t+8.n)+\'G;F:\'+(10+8.n)+\'G; D:2p; p:2p;">\');s.o(8.j);s.o(\'\');8.j=s.2l(\'\');$.d(8.j,8)};$.d.4l=m(){$.d.1l(V,\'3Q\')};$.d.2U=0;U.d=$.d})(65);',62,391,'||||||||options|||jbox|if|jBox|||var|||content|||function|border|push|height|data|box|html|top|div||icon|find|||style|title|boxHtml|width|css|left|px|defaults|class|else|none|0px|padding|true|zIndex|position|return|extend|button|auto|window|false|target|td|state|submit||id|isTip|tip|undefined||boxBody|type||iframe|absolute|body|buttons|timeout|display|margin|dragData|showFade|states|isMessager|stateOptions|close|break|typeof|isIE6|focus|case|next|languageDefaults|length|bind|stateName|browser|contentHeight|obj|opacity|loadingHeight|document|text|draggable|indexOf|fade|dragClone|showSpeed|loaded|closed|overflow|this|panel|formInputs|show|span|msie|warning|stateContent|isObject|boxFade|100|bottom|name|right|info||hidden|prompt|click|||removeBoxImpl||unbind|ok|removeBox|url|inputels|mousedown|visible|tempContent|children|success|buttonsFocus|configs|messagerDefaults|join|autoClosing|error|prev|32px|IFRAME|tr|boxs|loading|showFunc|token|addClass|hover|showType|removeClass|align|prevBox|stateDefaults|hide|drag|25px|block|30px|min|10px|showIcon|each|withButtons|cancel|tipDefaults|boxTemp|getBox|arr|setFade|minHeight|FadeBoxCount|fast|___t|scrollTop|version|setTimeout|Math|showClose|attr|POST|GET||radius|isRequest|boxType|eq|number|getState|help|fixed|value|withTitle|fadeClicked|active|keyPressEventHandler|key|ie6scroll|el|maxTop|50px|minLeft|maxLeft|switch|index|minTop|src|back|eval|yes|no|event|remove|goToState|line|1984|stateNmae|offset|question|onMouseDown|random|loadingHtml|ajaxData|tempDefaults|null|helpTitleHeight|jBoxId|loadingImageTop|slide|messager|focusId|temp|helpButtonHeight|string|object|first|HTML|350|setTop||parseInt|startX|pageY|pageX|startY|startTop|startLeft|doMove|mouseup|doUp|doDown|ieButtonFix|iframeHtml|outerHeight|6px|ID|table|5px|15px|titleWidth|closeMessager|19px|input|shiftKey|fwd|keyCode|intervalid|float|clicked|documentElement|about|keypress|fadeIn|important|container|keydown|resize|default|positionBox|styleBox|scroll|color|cursor|iframeScrolling|bottomText|3000|get|persistent|dragLimit|slideDown|closeTip|slideUp|static|_height|center|removeAttr|fadeOut|17px|visibility|500|select||outerWidth|blank|animate|nextState|Object|toLowerCase|prevState|appendTo|for|18px|replace|floor|getContent|jBox_|getIframe|setContent|getStateName|constructor|1000000|state0|split|scrolling|ff3300|pointer|background|alert|applet|onmouseout|onmouseover|confirm|cellpadding|cellspacing|valign|ellipsis|setDefaults|open|marginheight|marginwidth|frameborder|nbsp|all|word|90|substring|post|fdisplay|showScrolling|clientWidth|setInterval|toggleClass|textStatus|cache|mouseover|mouseout|dataType|clearInterval|Loading|Error|parent|load|enabled|marginLeft|70px|clientHeight|marginTop|5000|jQuery|ajax|220px|substr|end|200|image|move|serializeArray|Array|600|clearTimeout|10000|mousemove'.split('|'),0,{})) \ No newline at end of file diff --git a/apps/static/js/jquery.jBox-zh-CN.min.js b/apps/static/js/jquery.jBox-zh-CN.min.js deleted file mode 100644 index 527c6dc46..000000000 --- a/apps/static/js/jquery.jBox-zh-CN.min.js +++ /dev/null @@ -1 +0,0 @@ -var jBoxConfig={};jBoxConfig.defaults={id:null,top:"15%",border:5,opacity:0.50,timeout:0,showType:"fade",showSpeed:"fast",showIcon:false,showClose:true,draggable:true,dragLimit:false,dragClone:false,persistent:false,showScrolling:true,ajaxData:{},iframeScrolling:"auto",title:" 消息",width:350,height:"auto",bottomText:"",buttons:{"确定":"ok"},buttonsFocus:0,loaded:function(a){},submit:function(a,b,c){return true},closed:function(){}};jBoxConfig.stateDefaults={content:"",buttons:{"确定":"ok"},buttonsFocus:0,submit:function(a,b,c){return true}};jBoxConfig.tipDefaults={content:"",icon:"info",top:"53%",width:"auto",height:"auto",opacity:0,timeout:3000,closed:function(){}};jBoxConfig.messagerDefaults={content:"",title:"jBox",icon:"none",width:350,height:"auto",timeout:3000,showType:"slide",showSpeed:600,border:0,buttons:{},buttonsFocus:0,loaded:function(a){},submit:function(a,b,c){return true},closed:function(){}};jBoxConfig.languageDefaults={close:"关闭",ok:"确定",yes:"是",no:"否",cancel:"取消"};$.jBox.setDefaults(jBoxConfig); \ No newline at end of file From c237f82e51d0563ae37a7c54b6f3e9f5b9bf353e Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 14 Sep 2016 16:10:15 +0800 Subject: [PATCH 42/50] restore settings --- apps/jumpserver/settings.py | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/apps/jumpserver/settings.py b/apps/jumpserver/settings.py index 0fba7a6d7..0e8487b2a 100644 --- a/apps/jumpserver/settings.py +++ b/apps/jumpserver/settings.py @@ -108,7 +108,6 @@ TEMPLATES = [ # WSGI_APPLICATION = 'jumpserver.wsgi.application' LOGIN_REDIRECT_URL = reverse_lazy('index') -LOGIN_URL = reverse_lazy('users:login') # Database # https://docs.djangoproject.com/en/1.10/ref/settings/#databases @@ -228,7 +227,7 @@ USE_L10N = True USE_TZ = True # I18N translation -LOCALE_PATHS = [os.path.join(BASE_DIR, 'locale'), ] +LOCALE_PATHS = [os.path.join(BASE_DIR, 'locale'),] # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/1.10/howto/static-files/ @@ -281,11 +280,9 @@ WEBSOCKET_URL = '/ws/' # WebSocket Redis WS4REDIS_CONNECTION = { - #'host': CONFIG.REDIS_HOST or '127.0.0.1', - # 'port': CONFIG.REDIS_PORT or 6379, - 'host': '192.168.1.190', - 'port': 6379, - 'db': 3, + 'host': CONFIG.REDIS_HOST or '127.0.0.1', + 'port': CONFIG.REDIS_PORT or 6379, + 'db': 2, } # Set the number of seconds each message shall persisted @@ -299,23 +296,14 @@ SESSION_ENGINE = 'redis_sessions.session' SESSION_REDIS_PREFIX = 'session' - - -SESSION_REDIS_HOST = '192.168.1.190' -SESSION_REDIS_PORT = 6379 -SESSION_REDIS_DB = 0 -SESSION_REDIS_PASSWORD = '' - - # Custom User Auth model AUTH_USER_MODEL = 'users.User' # Celery using redis as broker -# BROKER_URL = 'redis://%(password)s%(host)s:%(port)s/3' % { BROKER_URL = 'redis://%(password)s%(host)s:%(port)s/3' % { 'password': CONFIG.REDIS_PASSWORD + ':' if CONFIG.REDIS_PASSWORD else '', 'host': CONFIG.REDIS_HOST or '127.0.0.1', - 'port': CONFIG.REDIS_PORT or 63790, + 'port': CONFIG.REDIS_PORT or 6379, } CELERY_RESULT_BACKEND = BROKER_URL From 812df7b07b114eaccd4ba2c6e8f91efe2070cb3d Mon Sep 17 00:00:00 2001 From: ibuler Date: Wed, 14 Sep 2016 16:52:09 +0800 Subject: [PATCH 43/50] Restore settings.py --- apps/jumpserver/settings.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/jumpserver/settings.py b/apps/jumpserver/settings.py index 0e8487b2a..8bbaf14bb 100644 --- a/apps/jumpserver/settings.py +++ b/apps/jumpserver/settings.py @@ -108,6 +108,7 @@ TEMPLATES = [ # WSGI_APPLICATION = 'jumpserver.wsgi.application' LOGIN_REDIRECT_URL = reverse_lazy('index') +LOGIN_URL = reverse_lazy('users:login') # Database # https://docs.djangoproject.com/en/1.10/ref/settings/#databases @@ -227,7 +228,7 @@ USE_L10N = True USE_TZ = True # I18N translation -LOCALE_PATHS = [os.path.join(BASE_DIR, 'locale'),] +LOCALE_PATHS = [os.path.join(BASE_DIR, 'locale'), ] # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/1.10/howto/static-files/ @@ -313,3 +314,4 @@ CAPTCHA_IMAGE_SIZE = (75, 33) CAPTCHA_FOREGROUND_COLOR = '#001100' # + From a4dc27f0739dcfd2bbab53963f940c3cf1699dc8 Mon Sep 17 00:00:00 2001 From: ibuler Date: Wed, 14 Sep 2016 23:29:39 +0800 Subject: [PATCH 44/50] Finish permissin detail asset list and user list --- apps/common/README.md | 15 ++++ apps/common/utils.py | 36 +++++++--- apps/perms/models.py | 2 +- .../perms/asset_permission_asset_list.html | 40 +++++++---- .../perms/asset_permission_user_list.html | 2 +- apps/perms/views.py | 72 +++++++++++++------ 6 files changed, 119 insertions(+), 48 deletions(-) diff --git a/apps/common/README.md b/apps/common/README.md index 6aac06589..400f19fc8 100644 --- a/apps/common/README.md +++ b/apps/common/README.md @@ -1,3 +1,18 @@ +# Common app + +Common app provide common view, function or others. + +Common app shouldn't rely on other apps, because It may lead to cycle +import. + +If your want to implement some function or class, you should think +whether other app use or not. If yes, You should make in common. + +If the ability more relate to your app tightness, It's mean your app +provide this ability, not common, You should write it on your app utils. + + + ## Celery usage diff --git a/apps/common/utils.py b/apps/common/utils.py index 0d2a4284c..d2437537b 100644 --- a/apps/common/utils.py +++ b/apps/common/utils.py @@ -2,6 +2,7 @@ # from __future__ import unicode_literals +from six import string_types from itertools import chain import string @@ -52,30 +53,43 @@ def combine_seq(s1, s2, callback=None): seq = chain(s1, s2) if callback: seq = map(callback, seq) - return seq def search_object_attr(obj, value='', attr_list=None, ignore_case=False): + """It's provide a method to search a object attribute equal some value + + If object some attribute equal :param: value, return True else return False + + class A(): + name = 'admin' + age = 7 + + :param obj: A object + :param value: A string match object attribute + :param attr_list: Only match attribute in attr_list + :param ignore_case: Ignore case + :return: Boolean + """ + if value == '': + return True + try: object_attr = obj.__dict__ except AttributeError: return False - if not isinstance(value, str): - return False - - if value == '': - return True - if attr_list is not None: + new_object_attr = {} for attr in attr_list: - object_attr.pop(attr) + new_object_attr[attr] = object_attr.pop(attr) + object_attr = new_object_attr - print(value) - print(object_attr) if ignore_case: - if value.lower() in map(string.lower, filter(lambda x: isinstance(x, (str, unicode)), object_attr.values())): + if not isinstance(value, string_types): + return False + + if value.lower() in map(string.lower, map(str, object_attr.values())): return True else: if value in object_attr.values(): diff --git a/apps/perms/models.py b/apps/perms/models.py index 6b3b88b3f..60e150672 100644 --- a/apps/perms/models.py +++ b/apps/perms/models.py @@ -55,7 +55,7 @@ class AssetPermission(models.Model): return [] def get_granted_assets(self): - return list(self.assets.all() or []) | set(self.get_granted_asset_groups_member()) + return list(set(self.assets.all() or []) | set(self.get_granted_asset_groups_member())) def get_granted_asset_groups_member(self): combine_assets = functools.partial(combine_seq, callback=AssetPermission.set_inherit) diff --git a/apps/perms/templates/perms/asset_permission_asset_list.html b/apps/perms/templates/perms/asset_permission_asset_list.html index c60ea49a8..baad101d1 100644 --- a/apps/perms/templates/perms/asset_permission_asset_list.html +++ b/apps/perms/templates/perms/asset_permission_asset_list.html @@ -28,6 +28,16 @@ {% trans 'Assets and asset gruops' %}
    5. +
  • @@ -61,13 +71,13 @@ - {% for user in page_obj %} + {% for asset in page_obj %} - {{ user.name }} - {{ user.username }} - {{ user.email }} + {{ asset.hostname }} + {{ asset.ip }} + {{ user.port }} - {% if user.is_expired and user.is_active %} + {% if asset.is_active %} {% else %} @@ -90,7 +100,7 @@
    - {% trans 'Add user to asset permission' %} + {% trans 'Add asset to this permission' %}
    @@ -98,9 +108,9 @@ @@ -118,7 +128,7 @@
    - {% trans 'Add user group to asset permission' %} + {% trans 'Add asset group to this permission' %}
    - + {% for asset in asset_remain %} + {% endfor %}
    @@ -126,9 +136,9 @@ @@ -140,9 +150,9 @@ - {% for user_group in user_groups %} + {% for asset_group in asset_groups %} - + diff --git a/apps/perms/templates/perms/asset_permission_user_list.html b/apps/perms/templates/perms/asset_permission_user_list.html index c9da9aedc..886127dd0 100644 --- a/apps/perms/templates/perms/asset_permission_user_list.html +++ b/apps/perms/templates/perms/asset_permission_user_list.html @@ -30,7 +30,7 @@
    - +
    {% endfor %} diff --git a/apps/assets/views.py b/apps/assets/views.py index 5b752d8ec..c1b6c06ad 100644 --- a/apps/assets/views.py +++ b/apps/assets/views.py @@ -173,7 +173,7 @@ class IDCListView(AdminUserRequiredMixin, ListView): class IDCCreateView(AdminUserRequiredMixin, CreateView): model = IDC form_class = IDCForm - template_name = 'assets/idc_create.html' + template_name = 'assets/idc_create_update.html' success_url = reverse_lazy('assets:idc-list') def get_context_data(self, **kwargs): @@ -188,24 +188,26 @@ class IDCCreateView(AdminUserRequiredMixin, CreateView): class IDCUpdateView(AdminUserRequiredMixin, UpdateView): model = IDC form_class = IDCForm - template_name = 'assets/idc_create.html' - context_object_name = 'IDC' + template_name = 'assets/idc_create_update.html' + context_object_name = 'idc' success_url = reverse_lazy('assets:idc-list') + def form_valid(self, form): - IDC = form.save(commit=False) - IDC.save() + idc = form.save(commit=False) + idc.save() return super(IDCUpdateView, self).form_valid(form) + class IDCDetailView(AdminUserRequiredMixin, DetailView): pass - class IDCDeleteView(AdminUserRequiredMixin, DeleteView): model = IDC template_name = 'assets/delete_confirm.html' success_url = reverse_lazy('assets:idc-list') + class AdminUserListView(AdminUserRequiredMixin, ListView): model = AdminUser paginate_by = settings.CONFIG.DISPLAY_PER_PAGE @@ -241,7 +243,6 @@ class AdminUserCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateVie form_class = AdminUserForm template_name = 'assets/admin_user_create_update.html' success_url = reverse_lazy('assets:admin-user-list') - success_message = _('Create admin user %s successfully.') def get_context_data(self, **kwargs): context = { @@ -252,17 +253,18 @@ class AdminUserCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateVie return super(AdminUserCreateView, self).get_context_data(**kwargs) def get_success_message(self, cleaned_data): - return self.success_message % ( - reverse_lazy('assets:admin-user-detail', kwargs={'pk': self.object.pk}), - self.object.name, - ) + success_message = _('Create admin user %s successfully.' % + ( + reverse_lazy('assets:admin-user-detail', kwargs={'pk': self.object.pk}), + self.object.name, + )) + return success_message class AdminUserUpdateView(AdminUserRequiredMixin, UpdateView): model = AdminUser form_class = AdminUserForm template_name = 'assets/admin_user_create_update.html' - success_message = _('Update admin user %s successfully.') def get_context_data(self, **kwargs): context = { @@ -340,7 +342,6 @@ class SystemUserCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateVi form_class = SystemUserForm template_name = 'assets/system_user_create_update.html' success_url = reverse_lazy('assets:system-user-list') - success_message = _('Create system user %s successfully.') def get_context_data(self, **kwargs): context = { @@ -351,10 +352,13 @@ class SystemUserCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateVi return super(SystemUserCreateView, self).get_context_data(**kwargs) def get_success_message(self, cleaned_data): - return self.success_message % ( - reverse_lazy('assets:system-user-detail', kwargs={'pk': self.object.pk}), - self.object.name, - ) + success_message = _('Create system user %s successfully.' % + ( + reverse_lazy('assets:system-user-detail', kwargs={'pk': self.object.pk}), + self.object.name, + )) + + return self.success_message class SystemUserUpdateView(AdminUserRequiredMixin, UpdateView): diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index 13d91f86f87348001bb9de7653a0df5593b4acdf..58a2c50f2f9ad396716d7dc03399e41e13b34a23 100644 GIT binary patch delta 2547 zcmYk-d2AGA9LDik6Ah_Y{6{{3KfcAtK7i^Ey&@PF0`eTW48qgxD+Us z!>h|5R0&s%gy260H8Jt~bblmF`t0Yu=AC!n*_rMx zJy`nL0#C&2I8F{9eQ=C92_L0C9h0#f`Ex4y=!p%Of}5~AzJ)!o6$j&9)O_bq<1V4b z{e+L9D!PhAGN?DbAnlhnr}Ap z-JC_J1*|d~Q1fk!P|$=;sEKxJb{|OXG%?Z|`Sd}ZxdP~&e{{ZI2hYwwep zn72P_o*|~+oS4b}t7AG1x?s6=EVg>B8NzJ(8?AqzdEENjt=?gNi~8n2Tm3F-{(n(l z)H5hy@*sQu(`nH2JP=1>7QTqnPz!8DO>h9U14mF>dDhxHP~$FI{YR_+f*K!3&HFcM z0XbQT`SK%HC^Cyt6HP`9oQ?Vw&$Ipt)P&Wjt>1_mzuWrT%!Af`)as|Leh&4tUAFef zRSIKixMl-V-NXg5P%AD#U0@+<2Wn6YTWxMYwKrqeLQo5Av-(M_qJ9?j9vIAh)cM88 zdC}{=zAM#v>-fi^_Ga@P)VyuT!{@j}>(Shegom^1SY(cm{@y!no+?v_-emn%;ixA| z$Sb6PJWX`yYC3|XqN|kncph3v;X`fy=**;??2XpafSavchwI655{SN+vsh-{+t4ABjJmW&|Pq>|_;A~VQvqF2dHCo?WhaRc9+j@+byNSPYKd;zUnuvXRaAC%TU+K zCu7Jc!tdUhKvt63M8|7n9m!RNqm*nT&8l#0B|FHxXm)azcOfNSfX;R@noNq$Nlu$E zkJ(reeIjp zBUYH1+H>qqy_?~b>$-8{cH-rRDtoAQ&i~&QCWZh2 delta 2455 zcmZwIe@vBC9LMo+c6pYQ0JY& zp?DTG{&UpAuAmll&Dyupqy9I!O~>OLxQqGt2kINAXZXi+Q4@zT5yztzP>Nbuxmj)2 zq2_xI`LeDNb$$nGA=}KZs2$jYnz#ow;k&47Nj!_$_?PvkW%>)uK`k(hT2L`+!ZOqa zE3G{TwS#r$ix{Teh$CTF62y!e!RK3pM_bwckUHJB4Xn-wjyDB^z+n{Mx)@{$l=vnsD%F|H4C%wYgEK z{xY)?*%UX|+RIT-LnCUz%@|c>GZn39C+ZvZpe8zoI)2iQ4(3uVec{|(_Ft7EJ5Y*xu4iH$R-qQS*Nz`S?Z9!=Rt{MIIn=ld*1lrx>!|VH z;duNRb-m0ye<68Ms}!1(P!pA*2G*c{&ClBL#i$7zP+Pyr`nyr*?X&h#^Mv*HTl+(6 zpGQ4q(aUz=22P{nmJLV^`4<|2TKNRj1(u?2Q8Q|R8_cb!{%(vf1hvqk);^7Gv_D2Y z|JmF}&QEb=RCHpscP;T|xu)D+;7`2=dG1_@Ody)Bi||~=OQTuo-A&3^v5D3^qL@fskbnBOn$fZY{xxT-;8gNjbx2?BsrM* zCN;fGw~*;XWt;a|a&|OIZ3fZ3oJq8$8%PULDJKhvUL1NaFDDPn6IL066;_{xFOUXn zPc((Lc^7$w>?CuXn-9(fNh_I4B1C1JPyAP}>Tbf*5-&}r{xPYnCog%YQi7_)%M!EG zd%;YH;5N9Ni|6`2$}mHJM?=&Ghr+m@DfvkJnIg6eRj zYI0L`DAL*7+!Bct#|nmp1F`n>1U@p(1!7s5r2%hcR-U&jYgtmsw9u6Dijo=LovgiS z3z{~yb~d%PRD^c4HO{N|)&v`3H-gV3WQYE5{vUe}-#gG3OU}s(#OCKd9f-Z1cR3KN M&7T_ZIzq$$1wP^Ik^lez diff --git a/apps/locale/zh/LC_MESSAGES/django.po b/apps/locale/zh/LC_MESSAGES/django.po index ccb101d78..5d8df1ca5 100644 --- a/apps/locale/zh/LC_MESSAGES/django.po +++ b/apps/locale/zh/LC_MESSAGES/django.po @@ -8,108 +8,201 @@ msgid "" msgstr "" "Project-Id-Version: Jumpserver 0.3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-09-06 19:12+0800\n" +"POT-Creation-Date: 2016-09-15 12:13+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: ibuler \n" "Language-Team: Jumpserver team\n" -"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: zh_CN\n" -#: assets/forms.py:19 +#: assets/forms.py:19 assets/forms.py:156 perms/forms.py:27 +#: perms/templates/perms/asset_permission_asset_list.html:139 msgid "Select asset groups" msgstr "添加到资产组" -#: assets/forms.py:25 assets/models.py:171 templates/_nav.html:21 +#: assets/forms.py:26 assets/forms.py:57 assets/forms.py:88 +#: assets/forms.py:146 assets/models.py:322 +#: perms/templates/perms/asset_permission_create_update.html:40 +#: templates/_nav.html:21 msgid "Asset" msgstr "资产" -#: assets/forms.py:28 +#: assets/forms.py:29 assets/forms.py:60 assets/forms.py:91 +#: assets/forms.py:149 perms/forms.py:25 msgid "Select assets" msgstr "选择资产" -#: assets/models.py:12 assets/models.py:48 assets/models.py:81 -#: assets/models.py:103 assets/templates/assets/asset_group_detail.html:63 -#: assets/templates/assets/asset_group_list.html:12 users/models.py:60 -#: users/models.py:107 users/templates/users/user_detail.html:69 +#: assets/forms.py:79 assets/forms.py:134 assets/forms.py:206 +#: assets/models.py:14 assets/models.py:88 assets/models.py:153 +#: assets/models.py:222 assets/templates/assets/admin_user_detail.html:50 +#: assets/templates/assets/admin_user_list.html:10 +#: assets/templates/assets/asset_group_detail.html:46 +#: assets/templates/assets/asset_group_list.html:12 +#: assets/templates/assets/idc_list.html:10 +#: assets/templates/assets/system_user_asset_group.html:53 +#: assets/templates/assets/system_user_detail.html:55 +#: assets/templates/assets/system_user_list.html:10 perms/models.py:19 +#: perms/templates/perms/asset_permission_create_update.html:33 +#: perms/templates/perms/asset_permission_detail.html:56 +#: perms/templates/perms/asset_permission_list.html:12 +#: perms/templates/perms/asset_permission_user_list.html:66 +#: perms/templates/perms/perm_user_asset_list.html:12 users/models.py:20 +#: users/models.py:67 users/templates/users/user_detail.html:54 #: users/templates/users/user_list.html:12 msgid "Name" msgstr "名称" -#: assets/models.py:13 assets/models.py:56 assets/models.py:69 -#: assets/models.py:88 assets/models.py:117 assets/models.py:152 -#: assets/models.py:172 users/models.py:122 -#: users/templates/users/user_detail.html:101 -msgid "Created by" -msgstr "创建者" +#: assets/forms.py:96 assets/forms.py:161 +msgid "If also set private key, use that first" +msgstr "如果设置私钥,则优先使用私钥" -#: assets/models.py:14 assets/models.py:54 assets/models.py:154 -msgid "Date added" -msgstr "加入日期" - -#: assets/models.py:15 assets/models.py:57 assets/models.py:71 -#: assets/models.py:89 assets/models.py:118 assets/models.py:155 -#: assets/models.py:174 assets/templates/assets/asset_group_detail.html:75 -#: assets/templates/assets/asset_group_list.html:14 users/models.py:61 -#: users/models.py:118 users/templates/users/user_detail.html:113 -msgid "Comment" -msgstr "备注" - -#: assets/models.py:25 -#, fuzzy -#| msgid "As default" -msgid "Default" -msgstr "默认使用" - -#: assets/models.py:25 -#, fuzzy -#| msgid "Create asset group" -msgid "Default asset group" -msgstr "创建资产组" - -#: assets/models.py:49 -msgid "Bandwidth" -msgstr "带宽" - -#: assets/models.py:50 -msgid "Contact" -msgstr "联系人" - -#: assets/models.py:51 users/models.py:113 -#: users/templates/users/user_detail.html:82 -msgid "Phone" -msgstr "手机" - -#: assets/models.py:52 -msgid "Address" -msgstr "地址" - -#: assets/models.py:53 -msgid "Network" -msgstr "网络" - -#: assets/models.py:55 -msgid "Operator" -msgstr "运营商" - -#: assets/models.py:67 assets/models.py:169 -msgid "KEY" -msgstr "KEY" - -#: assets/models.py:68 assets/models.py:170 -msgid "VALUE" -msgstr "VALUE" - -#: assets/models.py:82 assets/models.py:104 users/forms.py:13 -#: users/models.py:106 users/templates/users/login.html:53 -#: users/templates/users/user_detail.html:73 +#: assets/forms.py:135 assets/forms.py:207 assets/models.py:89 +#: assets/models.py:154 assets/templates/assets/admin_user_detail.html:54 +#: assets/templates/assets/admin_user_list.html:11 +#: assets/templates/assets/system_user_detail.html:59 +#: assets/templates/assets/system_user_list.html:11 +#: perms/templates/perms/asset_permission_user_list.html:67 +#: perms/templates/perms/perm_user_asset_list.html:13 users/forms.py:13 +#: users/models.py:66 users/templates/users/login.html:53 +#: users/templates/users/user_detail.html:58 #: users/templates/users/user_list.html:13 #: users/templates/users/user_update.html:6 msgid "Username" msgstr "用户名" -#: assets/models.py:83 assets/models.py:105 users/forms.py:15 +#: assets/forms.py:152 perms/templates/perms/perm_user_asset_list.html:16 +#: templates/_nav.html:22 +msgid "Asset group" +msgstr "资产组" + +#: assets/models.py:15 assets/templates/assets/idc_list.html:12 +msgid "Bandwidth" +msgstr "带宽" + +#: assets/models.py:16 assets/templates/assets/idc_list.html:13 +msgid "Contact" +msgstr "联系人" + +#: assets/models.py:17 assets/templates/assets/idc_list.html:14 +#: users/models.py:73 users/templates/users/user_detail.html:67 +msgid "Phone" +msgstr "手机" + +#: assets/models.py:18 assets/templates/assets/idc_list.html:15 +msgid "Address" +msgstr "地址" + +#: assets/models.py:19 +msgid "Network" +msgstr "网络" + +#: assets/models.py:20 assets/models.py:225 assets/models.py:286 +msgid "Date added" +msgstr "加入日期" + +#: assets/models.py:21 +msgid "Operator" +msgstr "运营商" + +#: assets/models.py:22 assets/models.py:59 assets/models.py:96 +#: assets/models.py:167 assets/models.py:224 assets/models.py:284 +#: assets/models.py:323 assets/templates/assets/admin_user_detail.html:62 +#: assets/templates/assets/asset_group_detail.html:54 +#: assets/templates/assets/system_user_detail.html:105 perms/models.py:28 +#: perms/templates/perms/asset_permission_detail.html:96 users/models.py:82 +#: users/templates/users/user_detail.html:86 +msgid "Created by" +msgstr "创建者" + +#: assets/models.py:23 assets/models.py:61 assets/models.py:94 +#: assets/models.py:168 assets/models.py:226 assets/models.py:287 +#: assets/models.py:325 assets/templates/assets/admin_user_detail.html:66 +#: assets/templates/assets/admin_user_list.html:14 +#: assets/templates/assets/asset_group_detail.html:58 +#: assets/templates/assets/asset_group_list.html:14 +#: assets/templates/assets/system_user_asset_group.html:56 +#: assets/templates/assets/system_user_detail.html:109 +#: assets/templates/assets/system_user_list.html:15 perms/models.py:30 +#: perms/templates/perms/asset_permission_detail.html:100 users/models.py:21 +#: users/models.py:78 users/templates/users/user_detail.html:98 +msgid "Comment" +msgstr "备注" + +#: assets/models.py:57 assets/models.py:320 +msgid "KEY" +msgstr "KEY" + +#: assets/models.py:58 assets/models.py:321 +msgid "VALUE" +msgstr "VALUE" + +#: assets/models.py:69 assets/models.py:70 +msgid "status" +msgstr "状态" + +#: assets/models.py:69 +#, fuzzy +#| msgid "Admin user" +msgid "In use" +msgstr "管理用户" + +#: assets/models.py:70 +#, fuzzy +#| msgid "Auto push" +msgid "Out of use" +msgstr "自动推送" + +#: assets/models.py:71 assets/models.py:72 assets/models.py:73 +#: assets/models.py:74 assets/models.py:75 assets/models.py:76 +msgid "type" +msgstr "" + +#: assets/models.py:71 +msgid "Server" +msgstr "" + +#: assets/models.py:72 +msgid "VM" +msgstr "" + +#: assets/models.py:73 +msgid "Switch" +msgstr "" + +#: assets/models.py:74 +#, fuzzy +#| msgid "Role" +msgid "Router" +msgstr "角色" + +#: assets/models.py:75 +msgid "Firewall" +msgstr "" + +#: assets/models.py:76 +msgid "Storage" +msgstr "" + +#: assets/models.py:77 assets/models.py:78 assets/models.py:79 +msgid "env" +msgstr "" + +#: assets/models.py:77 +msgid "Production" +msgstr "" + +#: assets/models.py:78 +msgid "Development" +msgstr "" + +#: assets/models.py:79 +#, fuzzy +msgid "Setting" +msgstr "设置" + +#: assets/models.py:90 assets/models.py:155 users/forms.py:15 #: users/templates/users/login.html:56 #: users/templates/users/reset_password.html:52 #: users/templates/users/user_create.html:8 @@ -119,256 +212,437 @@ msgstr "用户名" msgid "Password" msgstr "密码" -#: assets/models.py:84 assets/models.py:107 +#: assets/models.py:91 assets/models.py:157 msgid "SSH private key" msgstr "ssh密钥" -#: assets/models.py:85 assets/models.py:109 -msgid "As default" -msgstr "默认使用" - -#: assets/models.py:86 assets/models.py:111 -msgid "Auto update pass/key" -msgstr "自动更新密码/密钥" - -#: assets/models.py:106 -msgid "Protocol" -msgstr "协议" - -#: assets/models.py:108 +#: assets/models.py:92 assets/models.py:158 msgid "SSH public key" msgstr "ssh公钥" -#: assets/models.py:110 +#: assets/models.py:93 assets/models.py:159 +#: assets/templates/assets/admin_user_create_update.html:43 +#: assets/templates/assets/system_user_create_update.html:44 +#: assets/templates/assets/system_user_detail.html:75 +msgid "As default" +msgstr "默认使用" + +#: assets/models.py:156 assets/templates/assets/system_user_detail.html:63 +msgid "Protocol" +msgstr "协议" + +#: assets/models.py:160 +#: assets/templates/assets/system_user_create_update.html:50 +#: assets/templates/assets/system_user_detail.html:67 msgid "Auto push" msgstr "自动推送" -#: assets/models.py:112 +#: assets/models.py:161 +msgid "Auto update pass/key" +msgstr "自动更新密码/密钥" + +#: assets/models.py:162 assets/templates/assets/system_user_detail.html:79 msgid "Sudo" msgstr "Sudo" -#: assets/models.py:113 +#: assets/models.py:163 assets/templates/assets/system_user_detail.html:84 msgid "Shell" msgstr "Shell" -#: assets/models.py:114 templates/_header_bar.html:41 templates/_nav.html:4 +#: assets/models.py:164 assets/templates/assets/system_user_detail.html:90 +#: templates/_header_bar.html:41 templates/_nav.html:4 msgid "Home" msgstr "仪表盘" -#: assets/models.py:115 +#: assets/models.py:165 assets/templates/assets/system_user_detail.html:96 msgid "Uid" msgstr "Uid" -#: assets/models.py:128 +#: assets/models.py:236 +#, fuzzy +#| msgid "As default" +msgid "Default" +msgstr "默认使用" + +#: assets/models.py:236 +#, fuzzy +#| msgid "Create asset group" +msgid "Default asset group" +msgstr "创建资产组" + +#: assets/models.py:259 assets/templates/assets/admin_user_detail.html:100 +#: assets/templates/assets/asset_group_detail.html:88 +#: assets/templates/assets/system_user_asset.html:53 +#: perms/templates/perms/asset_permission_asset_list.html:67 msgid "IP" msgstr "IP" -#: assets/models.py:129 +#: assets/models.py:260 msgid "Other IP" msgstr "其它IP" -#: assets/models.py:130 +#: assets/models.py:261 msgid "Remote card IP" msgstr "远控卡IP" -#: assets/models.py:131 +#: assets/models.py:262 assets/templates/assets/admin_user_detail.html:99 +#: assets/templates/assets/asset_group_detail.html:87 +#: assets/templates/assets/system_user_asset.html:52 +#: perms/templates/perms/asset_permission_asset_list.html:66 msgid "Hostname" msgstr "用户名" -#: assets/models.py:132 +#: assets/models.py:263 assets/templates/assets/admin_user_detail.html:101 +#: assets/templates/assets/asset_group_detail.html:89 +#: assets/templates/assets/system_user_asset.html:54 +#: perms/templates/perms/asset_permission_asset_list.html:68 msgid "Port" msgstr "端口" -#: assets/models.py:133 +#: assets/models.py:264 msgid "Asset groups" msgstr "用户组" -#: assets/models.py:134 assets/models.py:136 templates/_nav.html:24 +#: assets/models.py:265 assets/models.py:268 templates/_nav.html:24 msgid "Admin user" msgstr "管理用户" -#: assets/models.py:135 +#: assets/models.py:266 msgid "Admin password" msgstr "管理员密码" -#: assets/models.py:137 +#: assets/models.py:269 msgid "System User" msgstr "系统用户" -#: assets/models.py:138 templates/_nav.html:23 +#: assets/models.py:270 templates/_nav.html:23 msgid "IDC" msgstr "机房" -#: assets/models.py:139 +#: assets/models.py:271 msgid "Mac address" msgstr "Mac地址" -#: assets/models.py:140 +#: assets/models.py:272 msgid "Brand" msgstr "品牌" -#: assets/models.py:141 +#: assets/models.py:273 msgid "CPU" msgstr "CPU" -#: assets/models.py:142 +#: assets/models.py:274 msgid "Memory" msgstr "内存" -#: assets/models.py:143 +#: assets/models.py:275 msgid "Disk" msgstr "硬盘" -#: assets/models.py:144 +#: assets/models.py:276 msgid "OS" msgstr "操作系统" -#: assets/models.py:145 +#: assets/models.py:277 msgid "Cabinet number" msgstr "机柜编号" -#: assets/models.py:146 +#: assets/models.py:278 msgid "Cabinet position" msgstr "机柜层号" -#: assets/models.py:147 +#: assets/models.py:279 msgid "Asset number" msgstr "资产编号" -#: assets/models.py:148 +#: assets/models.py:280 msgid "Asset status" msgstr "资产状态" -#: assets/models.py:149 +#: assets/models.py:281 msgid "Asset type" msgstr "系统类型" -#: assets/models.py:150 +#: assets/models.py:282 msgid "Asset environment" msgstr "资产环境" -#: assets/models.py:151 +#: assets/models.py:283 msgid "Serial number" msgstr "序列号" -#: assets/models.py:153 +#: assets/models.py:285 perms/templates/perms/asset_permission_detail.html:84 msgid "Is active" msgstr "是否激活" -#: assets/templates/assets/asset_group_create.html:16 -#: assets/templates/assets/asset_group_list.html:5 assets/views.py:62 -#: assets/views.py:117 -msgid "Create asset group" -msgstr "创建资产组" +#: assets/templates/assets/admin_user_create_update.html:16 +#: assets/templates/assets/admin_user_list.html:5 +#, fuzzy +#| msgid "Create user" +msgid "Create admin user" +msgstr "创建用户" -#: assets/templates/assets/asset_group_create.html:50 -#: assets/templates/assets/asset_group_detail.html:124 -#: assets/templates/assets/asset_group_detail.html:132 +#: assets/templates/assets/admin_user_create_update.html:35 +#: assets/templates/assets/system_user_create_update.html:36 +#, fuzzy +#| msgid "Auto update pass/key" +msgid "Auto generate key" +msgstr "自动更新密码/密钥" + +#: assets/templates/assets/admin_user_create_update.html:53 +#: assets/templates/assets/admin_user_detail.html:152 +#: assets/templates/assets/asset_group_create.html:38 +#: assets/templates/assets/idc_create_update.html:44 +#: assets/templates/assets/system_user_create_update.html:71 +#: assets/templates/assets/system_user_detail.html:148 +#: perms/templates/perms/asset_permission_create_update.html:69 #: users/templates/users/_user.html:70 -#: users/templates/users/user_detail.html:162 -#: users/templates/users/user_detail.html:170 +#: users/templates/users/user_detail.html:147 +#: users/templates/users/user_detail.html:155 msgid "Reset" msgstr "重置" -#: assets/templates/assets/asset_group_create.html:51 +#: assets/templates/assets/admin_user_create_update.html:54 +#: assets/templates/assets/asset_group_create.html:39 #: assets/templates/assets/asset_group_list.html:51 +#: assets/templates/assets/idc_create_update.html:45 +#: assets/templates/assets/system_user_create_update.html:72 +#: perms/templates/perms/asset_permission_create_update.html:70 +#: perms/templates/perms/asset_permission_list.html:65 +#: perms/templates/perms/perm_user_asset_list.html:58 #: users/templates/users/_user.html:71 #: users/templates/users/forgot_password.html:44 -#: users/templates/users/user_list.html:63 +#: users/templates/users/user_list.html:64 msgid "Submit" msgstr "提交" +#: assets/templates/assets/admin_user_detail.html:18 #: assets/templates/assets/asset_group_detail.html:18 +#: assets/templates/assets/system_user_asset.html:19 +#: assets/templates/assets/system_user_asset_group.html:19 +#: assets/templates/assets/system_user_detail.html:19 +#: perms/templates/perms/asset_permission_asset_list.html:20 +#: perms/templates/perms/asset_permission_detail.html:20 +#: perms/templates/perms/asset_permission_user_list.html:20 msgid "Detail" msgstr "" -#: assets/templates/assets/asset_group_detail.html:20 +#: assets/templates/assets/admin_user_detail.html:20 +#: assets/templates/assets/system_user_asset.html:22 +#: assets/templates/assets/system_user_asset_group.html:22 +#: assets/templates/assets/system_user_detail.html:23 #, fuzzy -#| msgid "Asset group list" -msgid "Asset group assets" -msgstr "资产组列表" +#| msgid "User assets" +msgid "Associate assets" +msgstr "用户资产" -#: assets/templates/assets/asset_group_detail.html:28 -#: templates/_header_bar.html:8 users/templates/users/user_detail.html:29 -msgid "Search" -msgstr "搜索" - -#: assets/templates/assets/asset_group_detail.html:67 +#: assets/templates/assets/admin_user_detail.html:58 +#: assets/templates/assets/asset_group_detail.html:50 +#: assets/templates/assets/system_user_detail.html:101 perms/models.py:29 +#: perms/templates/perms/asset_permission_detail.html:92 #, fuzzy #| msgid "Date added" -msgid "Date create" +msgid "Date created" msgstr "加入日期" -#: assets/templates/assets/asset_group_detail.html:71 +#: assets/templates/assets/admin_user_detail.html:76 +#: assets/templates/assets/asset_group_detail.html:68 +#: assets/templates/assets/system_user_asset.html:33 +#: assets/templates/assets/system_user_asset_group.html:34 +#: perms/templates/perms/asset_permission_asset_list.html:47 #, fuzzy -#| msgid "Created by" -msgid "Create by" -msgstr "创建者" +#| msgid "Asset group list" +msgid "Asset list of " +msgstr "资产组列表" -#: assets/templates/assets/asset_group_detail.html:86 -#: users/templates/users/user_detail.html:124 -msgid "Quick modify" -msgstr "快速修改" +#: assets/templates/assets/admin_user_detail.html:102 +#: assets/templates/assets/asset_group_detail.html:90 +#: assets/templates/assets/system_user_asset.html:55 +#, fuzzy +msgid "Alive" +msgstr "激活" -#: assets/templates/assets/asset_group_detail.html:121 -#: users/templates/users/reset_password.html:45 -#: users/templates/users/user_detail.html:159 users/utils.py:98 -msgid "Reset password" -msgstr "重置密码" +#: assets/templates/assets/admin_user_detail.html:125 +#: assets/templates/assets/system_user_detail.html:121 +#: perms/templates/perms/asset_permission_detail.html:112 +msgid "Quick update" +msgstr "" -#: assets/templates/assets/asset_group_detail.html:129 -#: users/templates/users/user_detail.html:167 -msgid "Reset ssh key" -msgstr "重置密钥" +#: assets/templates/assets/admin_user_detail.html:131 +msgid "Get install script" +msgstr "" -#: assets/templates/assets/asset_group_detail.html:143 templates/_nav.html:13 -#: users/models.py:109 users/templates/users/user_detail.html:181 -#: users/templates/users/user_list.html:15 -msgid "User group" -msgstr "用户组" +#: assets/templates/assets/admin_user_detail.html:134 +#: assets/templates/assets/system_user_detail.html:130 +msgid "Get" +msgstr "" -#: assets/templates/assets/asset_group_detail.html:151 users/forms.py:34 -#: users/forms.py:54 users/templates/users/user_detail.html:189 -msgid "Join user groups" -msgstr "添加到用户组" +#: assets/templates/assets/admin_user_detail.html:140 +#: assets/templates/assets/system_user_detail.html:136 +#: perms/templates/perms/asset_permission_detail.html:132 +msgid "Retest asset connectivity" +msgstr "" -#: assets/templates/assets/asset_group_detail.html:160 -#: users/templates/users/user_detail.html:198 -msgid "Join" -msgstr "加入" +#: assets/templates/assets/admin_user_detail.html:143 +#: assets/templates/assets/system_user_detail.html:139 +#: perms/templates/perms/asset_permission_detail.html:135 +msgid "Start" +msgstr "" +#: assets/templates/assets/admin_user_detail.html:149 +#: assets/templates/assets/system_user_detail.html:145 +#, fuzzy +#| msgid "ssh private key" +msgid "Reset private key" +msgstr "ssh密钥" + +#: assets/templates/assets/admin_user_detail.html:163 +msgid "Replace asset admin user with this" +msgstr "" + +#: assets/templates/assets/admin_user_detail.html:171 +#: assets/templates/assets/system_user_asset.html:86 +#, fuzzy +#| msgid "Select assets" +msgid "Select asset" +msgstr "选择资产" + +#: assets/templates/assets/admin_user_detail.html:180 +msgid "Replace" +msgstr "" + +#: assets/templates/assets/admin_user_list.html:9 +#: assets/templates/assets/idc_list.html:9 +#: assets/templates/assets/system_user_list.html:9 +#, fuzzy +#| msgid "IDC" +msgid "ID" +msgstr "机房" + +#: assets/templates/assets/admin_user_list.html:12 #: assets/templates/assets/asset_group_list.html:13 +#: assets/templates/assets/idc_list.html:11 +#: assets/templates/assets/system_user_asset_group.html:54 +#: assets/templates/assets/system_user_list.html:12 +#: perms/templates/perms/perm_user_asset_list.html:15 #: users/templates/users/user_list.html:16 msgid "Asset num" msgstr "资产数量" +#: assets/templates/assets/admin_user_list.html:13 +msgid "Lost connection" +msgstr "" + +#: assets/templates/assets/admin_user_list.html:33 +#: assets/templates/assets/system_user_list.html:35 +msgid "Script" +msgstr "" + +#: assets/templates/assets/admin_user_list.html:35 +#: assets/templates/assets/system_user_list.html:37 +msgid "Refresh" +msgstr "" + +#: assets/templates/assets/admin_user_list.html:36 #: assets/templates/assets/asset_group_list.html:32 +#: assets/templates/assets/idc_list.html:30 +#: assets/templates/assets/system_user_list.html:38 +#: perms/templates/perms/asset_permission_list.html:46 #: users/templates/users/user_list.html:44 msgid "Update" msgstr "更新" +#: assets/templates/assets/admin_user_list.html:37 #: assets/templates/assets/asset_group_list.html:33 +#: assets/templates/assets/idc_list.html:31 +#: assets/templates/assets/system_user_list.html:39 +#: perms/templates/perms/asset_permission_list.html:47 #: users/templates/users/user_list.html:45 +#: users/templates/users/user_list.html:46 msgid "Delete" msgstr "删除" +#: assets/templates/assets/asset_group_create.html:16 +#: assets/templates/assets/asset_group_list.html:5 assets/views.py:61 +#: assets/views.py:131 +msgid "Create asset group" +msgstr "创建资产组" + +#: assets/templates/assets/asset_group_detail.html:20 +#, fuzzy +#| msgid "Asset group" +msgid "Asset group perm" +msgstr "资产组" + +#: assets/templates/assets/asset_group_detail.html:113 +#, fuzzy +#| msgid "System user" +msgid "Associate system user" +msgstr "系统" + +#: assets/templates/assets/asset_group_detail.html:119 +#, fuzzy +#| msgid "System user" +msgid "repush system user" +msgstr "系统" + +#: assets/templates/assets/asset_group_detail.html:129 +#, fuzzy +#| msgid "System user" +msgid "Select system user" +msgstr "系统" + +#: assets/templates/assets/asset_group_detail.html:138 +msgid "Associate" +msgstr "" + +#: assets/templates/assets/asset_group_detail.html:157 +#, fuzzy +#| msgid "Asset group" +msgid "Add asset to this group" +msgstr "资产组" + +#: assets/templates/assets/asset_group_detail.html:165 +#, fuzzy +#| msgid "Select assets" +msgid "Select asset user" +msgstr "选择资产" + +#: assets/templates/assets/asset_group_detail.html:174 +#: assets/templates/assets/system_user_asset.html:95 +#: assets/templates/assets/system_user_asset_group.html:96 +#: perms/templates/perms/asset_permission_asset_list.html:120 +#: perms/templates/perms/asset_permission_user_list.html:120 +#, fuzzy +#| msgid "Address" +msgid "Add" +msgstr "地址" + #: assets/templates/assets/asset_group_list.html:43 -#: users/templates/users/user_list.html:55 +#: perms/templates/perms/asset_permission_list.html:57 +#: perms/templates/perms/perm_user_asset_list.html:50 +#: users/templates/users/user_list.html:56 msgid "Delete selected" msgstr "批量删除" #: assets/templates/assets/asset_group_list.html:44 -#: users/templates/users/user_list.html:56 +#: perms/templates/perms/asset_permission_list.html:58 +#: perms/templates/perms/perm_user_asset_list.html:51 +#: users/templates/users/user_list.html:57 msgid "Update selected" msgstr "批量更新" #: assets/templates/assets/asset_group_list.html:45 -#: users/templates/users/user_list.html:57 +#: perms/templates/perms/asset_permission_list.html:59 +#: perms/templates/perms/perm_user_asset_list.html:52 +#: users/templates/users/user_list.html:58 msgid "Deactive selected" msgstr "禁用所选" #: assets/templates/assets/asset_group_list.html:46 -#: users/templates/users/user_list.html:58 +#: perms/templates/perms/asset_permission_list.html:60 +#: perms/templates/perms/perm_user_asset_list.html:53 +#: users/templates/users/user_list.html:59 msgid "Export selected" msgstr "批量导出" @@ -377,19 +651,417 @@ msgid "Create asset" msgstr "创建资产" #: assets/templates/assets/delete_confirm.html:6 +#: perms/templates/perms/delete_confirm.html:6 #: users/templates/users/user_delete_confirm.html:6 msgid "Confirm delete" msgstr "确认删除" -#: assets/views.py:61 assets/views.py:81 assets/views.py:116 -#: templates/_nav.html:18 +#: assets/templates/assets/idc_create_update.html:16 +#, fuzzy +#| msgid "Created by" +msgid "Create idc" +msgstr "创建者" + +#: assets/templates/assets/idc_list.html:5 +#, fuzzy +#| msgid "Created by" +msgid "Create IDC" +msgstr "创建者" + +#: assets/templates/assets/system_user_asset.html:25 +#: assets/templates/assets/system_user_asset_group.html:26 +#: assets/templates/assets/system_user_detail.html:28 +#, fuzzy +#| msgid "Create asset group" +msgid "Associate asset groups" +msgstr "创建资产组" + +#: assets/templates/assets/system_user_asset.html:78 +msgid "Add asset to this system user" +msgstr "" + +#: assets/templates/assets/system_user_asset_group.html:55 +msgid "Unavailable num" +msgstr "" + +#: assets/templates/assets/system_user_asset_group.html:79 +#, fuzzy +#| msgid "Asset group list" +msgid "Add asset group to this system user" +msgstr "资产组列表" + +#: assets/templates/assets/system_user_asset_group.html:87 +#, fuzzy +#| msgid "Select asset groups" +msgid "Select asset group" +msgstr "添加到资产组" + +#: assets/templates/assets/system_user_create_update.html:16 +#: assets/templates/assets/system_user_list.html:5 assets/views.py:349 +#, fuzzy +#| msgid "Create user" +msgid "Create system user" +msgstr "创建用户" + +#: assets/templates/assets/system_user_create_update.html:56 +#: assets/templates/assets/system_user_detail.html:71 +#, fuzzy +#| msgid "Auto update pass/key" +msgid "Auto update" +msgstr "自动更新密码/密钥" + +#: assets/templates/assets/system_user_detail.html:127 +msgid "Get mannual install script" +msgstr "" + +#: assets/templates/assets/system_user_list.html:13 +#, fuzzy +#| msgid "Asset group" +msgid "Asset group num" +msgstr "资产组" + +#: assets/templates/assets/system_user_list.html:14 +msgid "Unavailable" +msgstr "" + +#: assets/views.py:60 assets/views.py:80 assets/views.py:114 +#: assets/views.py:130 assets/views.py:152 assets/views.py:219 +#: assets/views.py:318 assets/views.py:348 assets/views.py:372 +#: assets/views.py:390 templates/_nav.html:18 msgid "Assets" msgstr "资产管理" -#: assets/views.py:82 +#: assets/views.py:81 msgid "Asset group list" msgstr "资产组列表" +#: assets/views.py:115 +#, fuzzy +#| msgid "Asset group list" +msgid "Asset group detail" +msgstr "资产组列表" + +#: assets/views.py:153 +msgid "IDC list" +msgstr "" + +#: assets/views.py:220 +#, fuzzy +#| msgid "Admin user" +msgid "Admin user list" +msgstr "管理用户" + +#: assets/views.py:256 +#, fuzzy, python-format +#| msgid "Create user %s success." +msgid "Create admin user %s successfully." +msgstr "创建用户 %s 成功" + +#: assets/views.py:319 +#, fuzzy +#| msgid "System user" +msgid "System user list" +msgstr "系统" + +#: assets/views.py:355 +#, fuzzy, python-format +#| msgid "Create user %s success." +msgid "Create system user %s successfully." +msgstr "创建用户 %s 成功" + +#: assets/views.py:368 +#, fuzzy, python-format +#| msgid "Create user %s success." +msgid "Update system user %s successfully." +msgstr "创建用户 %s 成功" + +#: assets/views.py:373 +#, fuzzy +#| msgid "Update user" +msgid "Update system user" +msgstr "编辑用户" + +#: assets/views.py:391 +#, fuzzy +#| msgid "System user" +msgid "System user detail" +msgstr "系统" + +#: perms/forms.py:21 +#, fuzzy +#| msgid "Select assets" +msgid "Select users" +msgstr "选择资产" + +#: perms/forms.py:23 perms/templates/perms/asset_permission_user_list.html:139 +#, fuzzy +#| msgid "Select asset groups" +msgid "Select user groups" +msgstr "添加到资产组" + +#: perms/forms.py:29 perms/templates/perms/asset_permission_detail.html:163 +#, fuzzy +#| msgid "System user" +msgid "Select system users" +msgstr "系统" + +#: perms/models.py:26 +#: perms/templates/perms/asset_permission_create_update.html:49 +#: perms/templates/perms/perm_user_asset_list.html:18 +#: users/templates/users/user_detail.html:115 +#: users/templates/users/user_list.html:17 +#, fuzzy +msgid "Active" +msgstr "激活" + +#: perms/models.py:27 perms/templates/perms/asset_permission_detail.html:88 +#: users/models.py:81 users/templates/users/user_detail.html:82 +msgid "Date expired" +msgstr "失效日期" + +#: perms/templates/perms/asset_permission_asset_list.html:24 +#: perms/templates/perms/asset_permission_detail.html:24 +#: perms/templates/perms/asset_permission_user_list.html:24 +#, fuzzy +#| msgid "Join user groups" +msgid "Users and user groups" +msgstr "添加到用户组" + +#: perms/templates/perms/asset_permission_asset_list.html:29 +#: perms/templates/perms/asset_permission_detail.html:29 +#: perms/templates/perms/asset_permission_user_list.html:29 +#, fuzzy +#| msgid "Select asset groups" +msgid "Assets and asset gruops" +msgstr "添加到资产组" + +#: perms/templates/perms/asset_permission_asset_list.html:69 +#: perms/templates/perms/asset_permission_list.html:18 +#: perms/templates/perms/asset_permission_user_list.html:69 +msgid "Is valid" +msgstr "" + +#: perms/templates/perms/asset_permission_asset_list.html:103 +msgid "Add asset to this permission" +msgstr "" + +#: perms/templates/perms/asset_permission_asset_list.html:111 +#, fuzzy +#| msgid "Select assets" +msgid "Select asset " +msgstr "选择资产" + +#: perms/templates/perms/asset_permission_asset_list.html:131 +msgid "Add asset group to this permission" +msgstr "" + +#: perms/templates/perms/asset_permission_asset_list.html:148 +#: perms/templates/perms/asset_permission_detail.html:172 +#: perms/templates/perms/asset_permission_user_list.html:148 +#: users/templates/users/user_detail.html:183 +msgid "Join" +msgstr "加入" + +#: perms/templates/perms/asset_permission_create_update.html:17 +#, fuzzy +#| msgid "Create asset group" +msgid "Create asset permission " +msgstr "创建资产组" + +#: perms/templates/perms/asset_permission_create_update.html:36 +#: templates/_nav.html:12 templates/_user_profile.html:14 users/models.py:63 +msgid "User" +msgstr "用户" + +#: perms/templates/perms/asset_permission_create_update.html:45 +#, fuzzy +#| msgid "Other IP" +msgid "Other" +msgstr "其它IP" + +#: perms/templates/perms/asset_permission_detail.html:60 +#: perms/templates/perms/asset_permission_list.html:13 +#, fuzzy +#| msgid "User group" +msgid "User count" +msgstr "用户组" + +#: perms/templates/perms/asset_permission_detail.html:64 +#: perms/templates/perms/asset_permission_list.html:14 +#, fuzzy +#| msgid "User group list" +msgid "User group count" +msgstr "用户组列表" + +#: perms/templates/perms/asset_permission_detail.html:68 +#: perms/templates/perms/asset_permission_list.html:15 +#, fuzzy +#| msgid "Asset group" +msgid "Asset count" +msgstr "资产组" + +#: perms/templates/perms/asset_permission_detail.html:72 +#: perms/templates/perms/asset_permission_list.html:16 +#, fuzzy +#| msgid "Asset group list" +msgid "Asset group count" +msgstr "资产组列表" + +#: perms/templates/perms/asset_permission_detail.html:76 +#: perms/templates/perms/asset_permission_list.html:17 +#, fuzzy +#| msgid "System user" +msgid "System user count" +msgstr "系统" + +#: perms/templates/perms/asset_permission_detail.html:80 +#, fuzzy +msgid "Action" +msgstr "激活" + +#: perms/templates/perms/asset_permission_detail.html:141 +#, fuzzy +#| msgid "System user" +msgid "Repush system user" +msgstr "系统" + +#: perms/templates/perms/asset_permission_detail.html:144 +msgid "Push" +msgstr "" + +#: perms/templates/perms/asset_permission_detail.html:155 +#: perms/templates/perms/perm_user_asset_list.html:17 templates/_nav.html:25 +msgid "System user" +msgstr "系统" + +#: perms/templates/perms/asset_permission_list.html:5 +#, fuzzy +#| msgid "Create perm" +msgid "Create permission" +msgstr "创建权限" + +#: perms/templates/perms/asset_permission_user_list.html:47 +#, fuzzy +#| msgid "User list" +msgid "User list of " +msgstr "用户列表" + +#: perms/templates/perms/asset_permission_user_list.html:68 users/models.py:68 +#: users/templates/users/user_detail.html:62 +msgid "Email" +msgstr "邮件" + +#: perms/templates/perms/asset_permission_user_list.html:103 +msgid "Add user to asset permission" +msgstr "" + +#: perms/templates/perms/asset_permission_user_list.html:111 +#, fuzzy +#| msgid "Select assets" +msgid "Select user" +msgstr "选择资产" + +#: perms/templates/perms/asset_permission_user_list.html:131 +#, fuzzy +#| msgid "Asset group list" +msgid "Add user group to asset permission" +msgstr "资产组列表" + +#: perms/templates/perms/perm_user_asset_list.html:5 +#, fuzzy +#| msgid "Create perm" +msgid "Create perm " +msgstr "创建权限" + +#: perms/templates/perms/perm_user_asset_list.html:14 users/models.py:70 +#: users/templates/users/user_detail.html:78 +#: users/templates/users/user_list.html:14 +msgid "Role" +msgstr "角色" + +#: perms/templates/perms/perm_user_asset_list.html:39 +msgid "Create perm" +msgstr "创建权限" + +#: perms/templates/perms/perm_user_asset_list.html:40 +msgid "Flush" +msgstr "" + +#: perms/views.py:29 perms/views.py:66 perms/views.py:89 perms/views.py:107 +#: perms/views.py:146 perms/views.py:181 templates/_nav.html:30 +msgid "Perms" +msgstr "权限管理" + +#: perms/views.py:30 +#, fuzzy +#| msgid "Asset group list" +msgid "Asset permission list" +msgstr "资产组列表" + +#: perms/views.py:67 +#, fuzzy +#| msgid "Create asset group" +msgid "Create asset permission" +msgstr "创建资产组" + +#: perms/views.py:73 +#, fuzzy, python-format +#| msgid "Create user %s success." +msgid "Create asset permission %s successfully." +msgstr "创建用户 %s 成功" + +#: perms/views.py:85 +#, fuzzy, python-format +#| msgid "Create user %s success." +msgid "Update asset permission %s successfully." +msgstr "创建用户 %s 成功" + +#: perms/views.py:90 +msgid "Update asset permission" +msgstr "" + +#: perms/views.py:108 +#, fuzzy +#| msgid "Asset environment" +msgid "Asset permission detail" +msgstr "资产环境" + +#: perms/views.py:147 +#, fuzzy +#| msgid "Asset group list" +msgid "Asset permission user list" +msgstr "资产组列表" + +#: perms/views.py:182 +#, fuzzy +#| msgid "Asset group list" +msgid "Asset permission asset list" +msgstr "资产组列表" + +#: templates/_foot_js.html:24 +msgid "Are you sure delete ?" +msgstr "" + +#: templates/_foot_js.html:28 +msgid "Cancel" +msgstr "" + +#: templates/_foot_js.html:30 +msgid "Yes, delete it!" +msgstr "" + +#: templates/_foot_js.html:40 +# msgid "Deleted!" +# msgstr "删除" + +#: templates/_foot_js.html:40 +msgid "has been deleted." +msgstr "已被删除" + +#: templates/_header_bar.html:8 +msgid "Search" +msgstr "搜索" + #: templates/_header_bar.html:14 msgid "Welcome to use Jumpserver system" msgstr "欢迎使用Jumpserver开源跳板机系统" @@ -407,38 +1079,31 @@ msgstr "注销登录" msgid "Login" msgstr "登录" -#: templates/_nav.html:9 users/views.py:92 users/views.py:105 -#: users/views.py:145 users/views.py:162 users/views.py:187 users/views.py:200 +#: templates/_modal.html:15 +msgid "Close" +msgstr "" + +#: templates/_nav.html:9 users/views.py:107 users/views.py:120 +#: users/views.py:160 users/views.py:191 users/views.py:216 users/views.py:229 +#: users/views.py:345 msgid "Users" msgstr "用户管理" -#: templates/_nav.html:12 templates/_user_profile.html:14 users/models.py:103 -msgid "User" -msgstr "用户" - -#: templates/_nav.html:22 -msgid "Asset group" -msgstr "资产组" - -#: templates/_nav.html:25 -msgid "System user" -msgstr "系统" +#: templates/_nav.html:13 users/models.py:69 +#: users/templates/users/user_detail.html:166 +#: users/templates/users/user_list.html:15 +msgid "User group" +msgstr "用户组" #: templates/_nav.html:26 msgid "Label" msgstr "标签" -#: templates/_nav.html:30 -msgid "Perms" -msgstr "权限管理" - #: templates/_nav.html:33 -msgid "Perm" -msgstr "权限" - -#: templates/_nav.html:36 -msgid "Create perm" -msgstr "创建权限" +#, fuzzy +#| msgid "Asset type" +msgid "Asset permission" +msgstr "系统类型" #: templates/_nav.html:42 msgid "Audits" @@ -476,53 +1141,93 @@ msgstr "" msgid "Captcha" msgstr "验证码" -#: users/models.py:102 users/models.py:225 +#: templates/rest_framework/base.html:128 +#, fuzzy +msgid "Filters" +msgstr "过滤" + +#: users/forms.py:35 users/forms.py:55 +#: users/templates/users/user_detail.html:174 +msgid "Join user groups" +msgstr "添加到用户组" + +#: users/forms.py:74 +#, fuzzy +#| msgid "Name" +msgid "name" +msgstr "名称" + +#: users/forms.py:75 +#, fuzzy +#| msgid "Avatar" +msgid "avatar" +msgstr "头像" + +#: users/forms.py:76 +#, fuzzy +#| msgid "Wechat" +msgid "wechat" +msgstr "微信" + +#: users/forms.py:77 +#, fuzzy +#| msgid "Phone" +msgid "phone" +msgstr "手机" + +#: users/forms.py:78 +#, fuzzy +#| msgid "Enable OTP" +msgid "enable otp" +msgstr "二次验证" + +#: users/forms.py:82 +#, fuzzy +#| msgid "SSH private key" +msgid "private key" +msgstr "ssh密钥" + +#: users/forms.py:89 users/serializers.py:55 +#, fuzzy +#| msgid "ssh private key" +msgid "Not a valid ssh private key." +msgstr "ssh密钥" + +#: users/models.py:62 users/models.py:206 msgid "Administrator" msgstr "管理员" -#: users/models.py:108 users/templates/users/user_detail.html:77 -msgid "Email" -msgstr "邮件" - -#: users/models.py:110 users/templates/users/user_detail.html:93 -#: users/templates/users/user_list.html:14 -msgid "Role" -msgstr "角色" - -#: users/models.py:111 +#: users/models.py:71 msgid "Avatar" msgstr "头像" -#: users/models.py:112 users/templates/users/user_detail.html:88 +#: users/models.py:72 users/templates/users/user_detail.html:73 msgid "Wechat" msgstr "微信" -#: users/models.py:114 users/templates/users/_user.html:57 +#: users/models.py:74 users/templates/users/_user.html:57 +#: users/templates/users/user_detail.html:129 msgid "Enable OTP" msgstr "二次验证" -#: users/models.py:116 +#: users/models.py:76 msgid "ssh private key" msgstr "ssh密钥" -#: users/models.py:117 +#: users/models.py:77 msgid "ssh public key" msgstr "ssh公钥" -#: users/models.py:121 users/templates/users/user_detail.html:97 -msgid "Date expired" -msgstr "失效日期" - -#: users/models.py:228 +#: users/models.py:209 msgid "Administrator is the super user of system" msgstr "Administrator是初始的超级管理员" -#: users/models.py:229 +#: users/models.py:210 msgid "System" msgstr "系统" #: users/templates/users/_user.html:17 users/templates/users/user_list.html:5 -#: users/views.py:105 +#: users/views.py:120 msgid "Create user" msgstr "创建用户" @@ -534,6 +1239,38 @@ msgstr "账户" msgid "Security and Role" msgstr "角色安全" +#: users/templates/users/_user_reset_pk_modal.html:4 +#, fuzzy +#| msgid "SSH private key" +msgid "Reset User SSH Private Key" +msgstr "ssh密钥" + +#: users/templates/users/first_login.html:16 users/views.py:345 +#, fuzzy +#| msgid "Last login" +msgid "First Login" +msgstr "最后登录" + +#: users/templates/users/first_login.html:33 +#, fuzzy +#| msgid "System" +msgid "Step" +msgstr "系统" + +#: users/templates/users/first_login.html:55 +msgid "first step" +msgstr "" + +#: users/templates/users/first_login.html:56 +msgid "prev step" +msgstr "" + +#: users/templates/users/first_login.html:58 +#, fuzzy +#| msgid "Submit" +msgid "submit" +msgstr "提交" + #: users/templates/users/forgot_password.html:26 #: users/templates/users/login.html:64 msgid "Forgot password" @@ -547,68 +1284,116 @@ msgstr "输入您的邮箱, 将会发一封重置短信邮件到您的邮箱中" msgid "Captcha invalid" msgstr "验证码错误" +#: users/templates/users/reset_password.html:45 +#: users/templates/users/user_detail.html:144 users/utils.py:99 +msgid "Reset password" +msgstr "重置密码" + #: users/templates/users/reset_password.html:55 msgid "Password again" msgstr "再次输入密码" -#: users/templates/users/reset_password.html:57 -msgid "Setting" -msgstr "设置" - #: users/templates/users/user_create.html:12 msgid "Reset link will be generated and sent to the user. " msgstr "生成重置密码连接,通过邮件发送给用户" -#: users/templates/users/user_detail.html:18 users/views.py:162 +#: users/templates/users/user_detail.html:20 users/views.py:191 msgid "User detail" msgstr "用户详情" -#: users/templates/users/user_detail.html:20 +#: users/templates/users/user_detail.html:22 msgid "User assets" msgstr "用户资产" -#: users/templates/users/user_detail.html:21 +#: users/templates/users/user_detail.html:23 msgid "User log" msgstr "登录日志" -#: users/templates/users/user_detail.html:105 +#: users/templates/users/user_detail.html:90 msgid "Date joined" msgstr "创建日期" -#: users/templates/users/user_detail.html:109 +#: users/templates/users/user_detail.html:94 msgid "Last login" msgstr "最后登录" -#: users/templates/users/user_group_create.html:16 users/views.py:200 +#: users/templates/users/user_detail.html:109 +msgid "Quick modify" +msgstr "快速修改" + +#: users/templates/users/user_detail.html:152 +msgid "Reset ssh key" +msgstr "重置密钥" + +#: users/templates/users/user_detail.html:233 +msgid "UserGroup Update Success!" +msgstr "" + +#: users/templates/users/user_detail.html:251 +#: users/templates/users/user_detail.html:257 +#, fuzzy +#| msgid "Create account successfully" +msgid "Update Successfully!" +msgstr "创建账户成功" + +#: users/templates/users/user_detail.html:290 +msgid "E-mail sent successfully. An e-mail has been sent to the user\\" +msgstr "" + +#: users/templates/users/user_detail.html:291 +#, fuzzy +#| msgid "Password" +msgid "Password-Reset" +msgstr "密码" + +#: users/templates/users/user_detail.html:296 +msgid "Are you sure?" +msgstr "" + +#: users/templates/users/user_detail.html:297 +msgid "This will reset the user\\" +msgstr "" + +#: users/templates/users/user_detail.html:315 +msgid "Successfully updated the SSH private key." +msgstr "" + +#: users/templates/users/user_detail.html:316 +#: users/templates/users/user_detail.html:321 +#, fuzzy +#| msgid "SSH private key" +msgid "User SSH Private Key Reset" +msgstr "ssh密钥" + +#: users/templates/users/user_detail.html:319 +msgid "Failed to update the user\\" +msgstr "" + +#: users/templates/users/user_group_create.html:16 users/views.py:229 msgid "Create user group" msgstr "创建用户组" -#: users/templates/users/user_list.html:17 -#, fuzzy -msgid "Active" -msgstr "激活" - -#: users/templates/users/user_update.html:3 users/views.py:145 +#: users/templates/users/user_update.html:3 users/views.py:160 msgid "Update user" msgstr "编辑用户" -#: users/utils.py:47 +#: users/utils.py:48 msgid "Begin to generate ssh private key ..." msgstr "开始生成ssh密钥" -#: users/utils.py:59 +#: users/utils.py:60 msgid "Finish to generate ssh private key ..." msgstr "生成ssh密钥成功" -#: users/utils.py:63 +#: users/utils.py:64 msgid "These is error when generate ssh key." msgstr "创建密钥失败" -#: users/utils.py:67 +#: users/utils.py:68 msgid "Create account successfully" msgstr "创建账户成功" -#: users/utils.py:69 +#: users/utils.py:70 #, python-format msgid "" "\n" @@ -619,8 +1404,8 @@ msgid "" " click " "here to set your password\n" "
    \n" -" This link is valid for 1 hour. After it expires, request new one\n" +" This link is valid for 1 hour. After it expires, request new one\n" "\n" "
    \n" " ---\n" @@ -649,7 +1434,7 @@ msgstr "" "
    \n" " " -#: users/utils.py:100 +#: users/utils.py:101 #, python-format msgid "" "\n" @@ -661,8 +1446,8 @@ msgid "" " Click " "here reset password\n" "
    \n" -" This link is valid for 1 hour. After it expires, request new one<\n" +" This link is valid for 1 hour. After it expires, request new one<\n" "\n" "
    \n" " ---\n" @@ -693,55 +1478,64 @@ msgstr "" "
    \n" " " -#: users/views.py:62 +#: users/views.py:78 msgid "Logout success" msgstr "退出登录成功" -#: users/views.py:63 +#: users/views.py:79 msgid "Logout success, return login page" msgstr "退出登录成功,返回到登录页面" -#: users/views.py:92 +#: users/views.py:107 msgid "User list" msgstr "用户列表" -#: users/views.py:101 -#, python-format -msgid "Create user %s success." +#: users/views.py:116 +#, fuzzy, python-format +#| msgid "Create user %s success." +msgid "Create user %s successfully." msgstr "创建用户 %s 成功" -#: users/views.py:187 +#: users/views.py:216 msgid "User group list" msgstr "用户组列表" -#: users/views.py:232 +#: users/views.py:261 msgid "Email address invalid, input again" msgstr "邮箱地址错误,重新输入" -#: users/views.py:243 +#: users/views.py:272 msgid "Send reset password message" msgstr "发送重置密码邮件" -#: users/views.py:244 +#: users/views.py:273 msgid "Send reset password mail success, login your mail box and follow it " msgstr "" "发送重置邮件成功, 请登录邮箱查看, 按照提示操作 (如果没收到,请等待3-5分钟)" -#: users/views.py:256 +#: users/views.py:285 msgid "Reset password success" msgstr "重置密码成功" -#: users/views.py:257 +#: users/views.py:286 msgid "Reset password success, return to login page" msgstr "重置密码成功,返回到登录页面" -#: users/views.py:273 users/views.py:286 +#: users/views.py:302 users/views.py:315 msgid "Token invalid or expired" msgstr "Token错误或失效" -#: users/views.py:282 +#: users/views.py:311 msgid "Password not same" msgstr "密码不一致" +#, fuzzy +#~| msgid "Create user %s success." +#~ msgid "Update admin user %s successfully." +#~ msgstr "创建用户 %s 成功" + +#~ msgid "Perm" +#~ msgstr "权限" + #~ msgid "Username or password invalid" #~ msgstr "用户名或密码错误" diff --git a/apps/perms/views.py b/apps/perms/views.py index 1d7ea4e5c..e30a94774 100644 --- a/apps/perms/views.py +++ b/apps/perms/views.py @@ -60,7 +60,6 @@ class AssetPermissionCreateView(AdminUserRequiredMixin, SuccessMessageMixin, Cre form_class = AssetPermissionForm template_name = 'perms/asset_permission_create_update.html' success_url = reverse_lazy('perms:asset-permission-list') - success_message = _('Create asset permission %s successfully.') def get_context_data(self, **kwargs): context = { @@ -71,10 +70,12 @@ class AssetPermissionCreateView(AdminUserRequiredMixin, SuccessMessageMixin, Cre return super(AssetPermissionCreateView, self).get_context_data(**kwargs) def get_success_message(self, cleaned_data): - return self.success_message % ( - reverse_lazy('perms:asset-permission-detail', kwargs={'pk': self.object.pk}), - self.object.name, - ) + success_message = _('Create asset permission %s successfully.' % + ( + reverse_lazy('perms:asset-permission-detail', kwargs={'pk': self.object.pk}), + self.object.name, + )) + return success_message class AssetPermissionUpdateView(AdminUserRequiredMixin, UpdateView): diff --git a/apps/static/js/jumpserver.js b/apps/static/js/jumpserver.js index 20e62736f..bb815c02a 100644 --- a/apps/static/js/jumpserver.js +++ b/apps/static/js/jumpserver.js @@ -124,33 +124,66 @@ function move_left(from, to, from_o, to_o) { function selectAll(){ - // 选择该页面所有option + // Select all check box $('option').each(function(){ $(this).attr('selected', true); }); } -// -//function move_all(from, to){ -// $("#"+from).children().each(function(){ -// $("#"+to).append(this); -// }); -//} +// function getIDall() { +// var check_array = []; +// $(".gradeX input:checked").each(function () { +// var id = $(this).attr("value"); +// check_array.push(id); +// }); +// return check_array.join(","); +// } -//function commit_select(form_array){ -// $('#{0} option'.format(form_array)).each(function(){ -// $(this).prop('selected', true) -// }) -//} +function getCookie(name) { + var cookieValue = null; + if (document.cookie && document.cookie !== '') { + var cookies = document.cookie.split(';'); + for (var i = 0; i < cookies.length; i++) { + var cookie = jQuery.trim(cookies[i]); + // Does this cookie string begin with the name we want? + if (cookie.substring(0, name.length + 1) === (name + '=')) { + cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); + break; + } + } + } + return cookieValue; +} -function getIDall() { - var check_array = []; - $(".gradeX input:checked").each(function () { - var id = $(this).attr("value"); - check_array.push(id); +function csrfSafeMethod(method) { + // these HTTP methods do not require CSRF protection + return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method)); +} + +function setAjaxCSRFToken() { + var csrftoken = getCookie('csrftoken'); + var sessionid = getCookie('sessionid'); + + $.ajaxSetup({ + beforeSend: function(xhr, settings) { + if (!csrfSafeMethod(settings.type) && !this.crossDomain) { + xhr.setRequestHeader("X-CSRFToken", csrftoken); + } + } }); - return check_array.join(","); +} + +function activeNav() { + var url_array = document.location.pathname.split("/"); + var app = url_array[1]; + var resource = url_array[2]; + if (app == ''){ + $('#index').addClass('active') + } else { + $("#" + app).addClass('active'); + $('#' + app + ' #' + resource).addClass('active'); + } } function APIUpdateAttr(props) { @@ -158,6 +191,7 @@ function APIUpdateAttr(props) { props = props || {}; success_message = props.success_message || 'Update Successfully!'; fail_message = props.fail_message || 'Error occurred while updating.'; + $.ajax({ url: props.url, type: props.method || "PATCH", diff --git a/apps/templates/_foot_js.html b/apps/templates/_foot_js.html index b9ca3b784..b6b0851c5 100644 --- a/apps/templates/_foot_js.html +++ b/apps/templates/_foot_js.html @@ -6,62 +6,23 @@ + - diff --git a/apps/templates/base.html b/apps/templates/base.html index 1b147f654..283eac9ba 100644 --- a/apps/templates/base.html +++ b/apps/templates/base.html @@ -12,7 +12,6 @@ {% include '_head_css_js.html' %} {% block custom_head_css_js %} {% endblock %} - From b2444c2acafa9b42a5811da18a7bcb4173933ce1 Mon Sep 17 00:00:00 2001 From: ibuler Date: Thu, 15 Sep 2016 12:21:34 +0800 Subject: [PATCH 47/50] Add fake data to init.json --- apps/fixtures/init.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/fixtures/init.json b/apps/fixtures/init.json index 96cb0535a..62a9125e8 100644 --- a/apps/fixtures/init.json +++ b/apps/fixtures/init.json @@ -1 +1 @@ -[{"model": "users.usergroup", "pk": 1, "fields": {"name": "Default", "comment": "Default user group for all user", "date_created": "2016-09-05T11:39:25.770Z", "created_by": "System"}}, {"model": "users.user", "pk": 1, "fields": {"password": "pbkdf2_sha256$30000$5ReHkQOQA2Hk$DIW0b5U/uK+U0xqjA3QpYvBcODNhm2MPCm7YWbQys3I=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:39:25.771Z", "username": "admin", "name": "Administrator", "email": "admin@jumpserver.org", "role": "Admin", "avatar": "", "wechat": "", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Administrator is the super user of system", "is_first_login": false, "date_expired": "2086-08-19T11:39:25.771Z", "created_by": "System", "user_permissions": [], "groups": [1]}}] \ No newline at end of file +[{"model": "users.usergroup", "pk": 1, "fields": {"name": "Default", "comment": "Default user group for all user", "date_created": "2016-09-14T15:34:43Z", "created_by": "System"}}, {"model": "users.usergroup", "pk": 2, "fields": {"name": "Brian Smith", "comment": "Pellentesque ultrices mattis odio.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 3, "fields": {"name": "Marie Lane", "comment": "Nulla ut erat id mauris vulputate elementum.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 4, "fields": {"name": "Louise Perkins", "comment": "Proin at turpis a pede posuere nonummy.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 5, "fields": {"name": "Teresa Johnson", "comment": "Donec ut mauris eget massa tempor convallis.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 6, "fields": {"name": "Sharon Morgan", "comment": "Aenean sit amet justo.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 7, "fields": {"name": "Tina Mason", "comment": "Suspendisse potenti.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 8, "fields": {"name": "Paula Marshall", "comment": "Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 9, "fields": {"name": "Ruby Crawford", "comment": "Nullam molestie nibh in lectus.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 10, "fields": {"name": "Justin Robertson", "comment": "Aliquam sit amet diam in magna bibendum imperdiet.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 11, "fields": {"name": "Ronald Perry", "comment": "Aliquam sit amet diam in magna bibendum imperdiet.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 12, "fields": {"name": "Lois Armstrong", "comment": "Quisque id justo sit amet sapien dignissim vestibulum.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 13, "fields": {"name": "Evelyn Stewart", "comment": "Proin interdum mauris non ligula pellentesque ultrices.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 14, "fields": {"name": "Shirley Fernandez", "comment": "Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 15, "fields": {"name": "Kathryn Hunter", "comment": "Nulla suscipit ligula in lacus.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 16, "fields": {"name": "Virginia Hart", "comment": "Etiam faucibus cursus urna.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 17, "fields": {"name": "Amy Miller", "comment": "Nulla ac enim.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 18, "fields": {"name": "Marie Long", "comment": "Etiam vel augue.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 19, "fields": {"name": "Martha Olson", "comment": "Mauris ullamcorper purus sit amet nulla.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 20, "fields": {"name": "Jennifer Powell", "comment": "Fusce consequat.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 21, "fields": {"name": "Sara Jackson", "comment": "Vivamus tortor.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 22, "fields": {"name": "Robin Meyer", "comment": "Sed ante.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 23, "fields": {"name": "Judith Gonzales", "comment": "Donec quis orci eget orci vehicula condimentum.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 24, "fields": {"name": "Jean Patterson", "comment": "Nam tristique tortor eu pede.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 25, "fields": {"name": "Raymond Simmons", "comment": "Duis bibendum.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 26, "fields": {"name": "Mildred Nguyen", "comment": "Integer non velit.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 27, "fields": {"name": "Bonnie Flores", "comment": "Nullam porttitor lacus at turpis.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 28, "fields": {"name": "Elizabeth Fox", "comment": "Ut tellus.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 29, "fields": {"name": "Rebecca Peters", "comment": "Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 30, "fields": {"name": "Helen Howell", "comment": "Cras pellentesque volutpat dui.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 31, "fields": {"name": "Christopher Armstrong", "comment": "Nulla facilisi.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 32, "fields": {"name": "Kathryn Schmidt", "comment": "Duis at velit eu est congue elementum.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 33, "fields": {"name": "Julia Reed", "comment": "Pellentesque ultrices mattis odio.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 34, "fields": {"name": "Ann Lewis", "comment": "Curabitur in libero ut massa volutpat convallis.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 35, "fields": {"name": "Wanda Romero", "comment": "In sagittis dui vel nisl.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 36, "fields": {"name": "Jean Richards", "comment": "Nulla suscipit ligula in lacus.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 37, "fields": {"name": "Jessica Spencer", "comment": "Suspendisse potenti.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 38, "fields": {"name": "Linda Bowman", "comment": "Mauris ullamcorper purus sit amet nulla.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 39, "fields": {"name": "Sarah Cooper", "comment": "Vestibulum ac est lacinia nisi venenatis tristique.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 40, "fields": {"name": "Donna Mitchell", "comment": "Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 41, "fields": {"name": "Heather West", "comment": "Duis aliquam convallis nunc.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 42, "fields": {"name": "Lois Kennedy", "comment": "Suspendisse potenti.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 43, "fields": {"name": "Louise Porter", "comment": "Quisque porta volutpat erat.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 44, "fields": {"name": "Lori Martin", "comment": "Duis aliquam convallis nunc.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 45, "fields": {"name": "Ruth Sullivan", "comment": "Curabitur gravida nisi at nibh.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 46, "fields": {"name": "Jacqueline Brown", "comment": "Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 47, "fields": {"name": "Margaret Larson", "comment": "Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 48, "fields": {"name": "Karen Marshall", "comment": "Nullam sit amet turpis elementum ligula vehicula consequat.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 49, "fields": {"name": "Betty Carr", "comment": "Vestibulum ac est lacinia nisi venenatis tristique.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 50, "fields": {"name": "Debra Lane", "comment": "Integer ac neque.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 51, "fields": {"name": "Heather Payne", "comment": "Praesent blandit lacinia erat.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 52, "fields": {"name": "Gloria Jenkins", "comment": "Maecenas tincidunt lacus at velit.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 53, "fields": {"name": "Sara Lane", "comment": "Sed vel enim sit amet nunc viverra dapibus.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 54, "fields": {"name": "Pamela Henry", "comment": "Proin at turpis a pede posuere nonummy.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 55, "fields": {"name": "Diana Dixon", "comment": "Ut tellus.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 56, "fields": {"name": "Tina Graham", "comment": "Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 57, "fields": {"name": "Janice Flores", "comment": "Nulla justo.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 58, "fields": {"name": "Deborah Warren", "comment": "Sed sagittis.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 59, "fields": {"name": "Anne Carroll", "comment": "Ut at dolor quis odio consequat varius.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 60, "fields": {"name": "Betty Matthews", "comment": "Maecenas pulvinar lobortis est.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 61, "fields": {"name": "Brenda Palmer", "comment": "Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 62, "fields": {"name": "Phyllis Shaw", "comment": "Vivamus vestibulum sagittis sapien.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 63, "fields": {"name": "Lisa Schmidt", "comment": "Aenean auctor gravida sem.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 64, "fields": {"name": "Sandra Lewis", "comment": "Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 65, "fields": {"name": "Brenda Burke", "comment": "In congue.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 66, "fields": {"name": "Anna Wallace", "comment": "Donec vitae nisi.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 67, "fields": {"name": "Julia Gutierrez", "comment": "Etiam vel augue.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 68, "fields": {"name": "Lori Phillips", "comment": "Sed accumsan felis.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 69, "fields": {"name": "Sandra Perez", "comment": "Vivamus in felis eu sapien cursus vestibulum.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 70, "fields": {"name": "Maria Nichols", "comment": "Aenean fermentum.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 71, "fields": {"name": "Wanda Allen", "comment": "In est risus, auctor sed, tristique in, tempus sit amet, sem.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 72, "fields": {"name": "Karen Collins", "comment": "Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 73, "fields": {"name": "Theresa Harrison", "comment": "Nulla nisl.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 74, "fields": {"name": "Debra Carr", "comment": "Aliquam quis turpis eget elit sodales scelerisque.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 75, "fields": {"name": "Ashley Daniels", "comment": "Mauris ullamcorper purus sit amet nulla.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 76, "fields": {"name": "Amanda Matthews", "comment": "Maecenas pulvinar lobortis est.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 77, "fields": {"name": "Nancy Green", "comment": "Proin eu mi.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 78, "fields": {"name": "Lisa Ferguson", "comment": "Nullam molestie nibh in lectus.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 79, "fields": {"name": "Cynthia Washington", "comment": "Maecenas rhoncus aliquam lacus.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 80, "fields": {"name": "Michelle Wells", "comment": "Nulla tempus.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 81, "fields": {"name": "Sara Graham", "comment": "Etiam faucibus cursus urna.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 82, "fields": {"name": "Beverly Armstrong", "comment": "In hac habitasse platea dictumst.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 83, "fields": {"name": "Andrea White", "comment": "Quisque porta volutpat erat.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 84, "fields": {"name": "Angela Edwards", "comment": "Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 85, "fields": {"name": "Julia Alexander", "comment": "Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 86, "fields": {"name": "Dorothy Ward", "comment": "In blandit ultrices enim.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 87, "fields": {"name": "Brenda Gonzalez", "comment": "Nunc purus.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 88, "fields": {"name": "Alice Chapman", "comment": "Nam tristique tortor eu pede.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 89, "fields": {"name": "Margaret Powell", "comment": "In sagittis dui vel nisl.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 90, "fields": {"name": "Jessica Riley", "comment": "Nulla suscipit ligula in lacus.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 91, "fields": {"name": "Cheryl Coleman", "comment": "Sed accumsan felis.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 92, "fields": {"name": "Diana Miller", "comment": "Donec vitae nisi.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 93, "fields": {"name": "Tammy Phillips", "comment": "Mauris lacinia sapien quis libero.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 94, "fields": {"name": "Dorothy Wood", "comment": "Etiam vel augue.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 95, "fields": {"name": "Deborah Ortiz", "comment": "Praesent blandit lacinia erat.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 96, "fields": {"name": "Debra Stevens", "comment": "Nulla suscipit ligula in lacus.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 97, "fields": {"name": "Donna Lawson", "comment": "Integer non velit.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 98, "fields": {"name": "Anna Stewart", "comment": "Donec posuere metus vitae ipsum.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 99, "fields": {"name": "Cheryl Williamson", "comment": "Duis mattis egestas metus.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 100, "fields": {"name": "Carolyn Sanchez", "comment": "Pellentesque at nulla.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 101, "fields": {"name": "Deborah Reid", "comment": "Sed sagittis.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "assets.idc", "pk": 7, "fields": {"name": "Wanda Henry", "bandwidth": "200M", "contact": "Bonnie Fields", "phone": "6-(107)118-3618", "address": "Ridgecrest08293 Bellgrove Junction", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo."}}, {"model": "assets.idc", "pk": 8, "fields": {"name": "Theresa Matthews", "bandwidth": "200M", "contact": "Janet Marshall", "phone": "1-(158)666-7567", "address": "Burbank92540 Brown Road", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nulla nisl."}}, {"model": "assets.idc", "pk": 9, "fields": {"name": "Linda Green", "bandwidth": "200M", "contact": "Catherine Miller", "phone": "6-(186)047-7348", "address": "Shasta Lake0 Vernon Terrace", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Integer ac neque."}}, {"model": "assets.idc", "pk": 10, "fields": {"name": "Donna Willis", "bandwidth": "200M", "contact": "Lisa Mendoza", "phone": "9-(242)470-1639", "address": "Redondo Beach83027 Rigney Court", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Morbi vel lectus in quam fringilla rhoncus."}}, {"model": "assets.idc", "pk": 11, "fields": {"name": "Shirley Gordon", "bandwidth": "200M", "contact": "Kimberly Palmer", "phone": "9-(328)343-6730", "address": "Pittsburg3657 Scoville Avenue", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Sed accumsan felis."}}, {"model": "assets.idc", "pk": 12, "fields": {"name": "Michelle Bradley", "bandwidth": "200M", "contact": "Heather Garcia", "phone": "7-(310)079-6347", "address": "City of Commerce91064 Vidon Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Morbi a ipsum."}}, {"model": "assets.idc", "pk": 13, "fields": {"name": "Elizabeth Lopez", "bandwidth": "200M", "contact": "Cheryl Carr", "phone": "0-(772)467-1157", "address": "Dublin951 Rusk Street", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nulla tellus."}}, {"model": "assets.idc", "pk": 14, "fields": {"name": "Lillian Hamilton", "bandwidth": "200M", "contact": "Jacqueline Frazi", "phone": "1-(901)574-2748", "address": "Placentia0 American Ash Street", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Duis aliquam convallis nunc."}}, {"model": "assets.idc", "pk": 15, "fields": {"name": "Jennifer Perry", "bandwidth": "200M", "contact": "Linda Long", "phone": "8-(322)730-5262", "address": "Crescent City965 Sugar Plaza", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "In quis justo."}}, {"model": "assets.idc", "pk": 16, "fields": {"name": "Martha Phillips", "bandwidth": "200M", "contact": "Diana Roberts", "phone": "9-(830)108-3261", "address": "Roseville04 Vermont Pass", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Proin eu mi."}}, {"model": "assets.idc", "pk": 17, "fields": {"name": "Susan Gordon", "bandwidth": "200M", "contact": "Stephanie Bradle", "phone": "6-(426)121-7918", "address": "Santa Fe Springs7 Elgar Court", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo."}}, {"model": "assets.idc", "pk": 18, "fields": {"name": "Cynthia Sims", "bandwidth": "200M", "contact": "Mary Nichols", "phone": "7-(508)008-3082", "address": "Oakdale916 Barnett Terrace", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Proin eu mi."}}, {"model": "assets.idc", "pk": 19, "fields": {"name": "Catherine Wheeler", "bandwidth": "200M", "contact": "Annie Murphy", "phone": "1-(146)987-5320", "address": "Scotts Valley76 Evergreen Circle", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Lorem ipsum dolor sit amet, consectetuer adipiscing elit."}}, {"model": "assets.idc", "pk": 21, "fields": {"name": "Denise Davis", "bandwidth": "200M", "contact": "Christine Crawfo", "phone": "5-(628)897-7260", "address": "Calipatria9418 Cottonwood Trail", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Donec ut dolor."}}, {"model": "assets.idc", "pk": 22, "fields": {"name": "Susan Ellis", "bandwidth": "200M", "contact": "Robin Stanley", "phone": "3-(703)665-6725", "address": "Dinuba36 Brentwood Street", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Suspendisse accumsan tortor quis turpis."}}, {"model": "assets.idc", "pk": 24, "fields": {"name": "Phyllis Myers", "bandwidth": "200M", "contact": "Diana Stone", "phone": "2-(902)492-5081", "address": "El Monte3 Merry Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem."}}, {"model": "assets.idc", "pk": 25, "fields": {"name": "Jennifer Ross", "bandwidth": "200M", "contact": "Laura Thompson", "phone": "2-(199)831-8725", "address": "Oakdale0 Haas Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Nulla facilisi."}}, {"model": "assets.idc", "pk": 26, "fields": {"name": "Margaret Sanchez", "bandwidth": "200M", "contact": "Amanda Fuller", "phone": "4-(084)319-6199", "address": "Truckee84 Muir Way", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Sed sagittis."}}, {"model": "assets.idc", "pk": 27, "fields": {"name": "Tammy Peterson", "bandwidth": "200M", "contact": "Phyllis Young", "phone": "4-(403)500-5429", "address": "Lompoc690 Barby Way", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Etiam vel augue."}}, {"model": "assets.idc", "pk": 28, "fields": {"name": "Jean Bell", "bandwidth": "200M", "contact": "Lois Carroll", "phone": "0-(883)815-1542", "address": "Hidden Hills9 Muir Point", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Praesent blandit lacinia erat."}}, {"model": "assets.idc", "pk": 29, "fields": {"name": "Gloria Cook", "bandwidth": "200M", "contact": "Deborah Wells", "phone": "4-(878)879-4593", "address": "Sierra Madre539 Lakewood Gardens Junction", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "In hac habitasse platea dictumst."}}, {"model": "assets.idc", "pk": 30, "fields": {"name": "Christine Torres", "bandwidth": "200M", "contact": "Norma Martin", "phone": "5-(455)707-0466", "address": "Turlock24 Sachtjen Park", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Etiam faucibus cursus urna."}}, {"model": "assets.idc", "pk": 31, "fields": {"name": "Martha Coleman", "bandwidth": "200M", "contact": "Virginia Evans", "phone": "0-(797)352-0548", "address": "Pismo Beach0 Cascade Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Aliquam non mauris."}}, {"model": "assets.idc", "pk": 32, "fields": {"name": "Doris Young", "bandwidth": "200M", "contact": "Christina Lawren", "phone": "1-(624)334-5677", "address": "Orinda063 Lotheville Circle", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Donec ut dolor."}}, {"model": "assets.idc", "pk": 33, "fields": {"name": "Brenda Gray", "bandwidth": "200M", "contact": "Rebecca Mcdonald", "phone": "2-(150)996-8788", "address": "Rancho Palos Verdes280 Kensington Avenue", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh."}}, {"model": "assets.idc", "pk": 34, "fields": {"name": "Gloria Arnold", "bandwidth": "200M", "contact": "Brenda Williams", "phone": "9-(230)324-2266", "address": "Pasadena4 School Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Donec dapibus."}}, {"model": "assets.idc", "pk": 35, "fields": {"name": "Julia Frazier", "bandwidth": "200M", "contact": "Janice Welch", "phone": "1-(580)141-7916", "address": "El Segundo5 Brentwood Plaza", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Integer ac leo."}}, {"model": "assets.idc", "pk": 36, "fields": {"name": "Ruby Watson", "bandwidth": "200M", "contact": "Emily Cooper", "phone": "1-(291)494-9845", "address": "Los Angeles0 Pond Drive", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "In hac habitasse platea dictumst."}}, {"model": "assets.idc", "pk": 37, "fields": {"name": "Brenda Morrison", "bandwidth": "200M", "contact": "Nancy Schmidt", "phone": "8-(799)952-2019", "address": "Burlingame71 Autumn Leaf Drive", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl."}}, {"model": "assets.idc", "pk": 38, "fields": {"name": "Amy Lee", "bandwidth": "200M", "contact": "Laura Mendoza", "phone": "5-(513)114-8850", "address": "Corona70 Dapin Drive", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est."}}, {"model": "assets.idc", "pk": 39, "fields": {"name": "Shirley Mcdonald", "bandwidth": "200M", "contact": "Norma Rodriguez", "phone": "6-(163)727-5032", "address": "Studio City19423 Warbler Avenue", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Praesent blandit lacinia erat."}}, {"model": "assets.idc", "pk": 40, "fields": {"name": "Jane Carr", "bandwidth": "200M", "contact": "Norma Kennedy", "phone": "9-(026)075-3121", "address": "Dorris029 Sunnyside Place", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Ut tellus."}}, {"model": "assets.idc", "pk": 41, "fields": {"name": "Tammy Adams", "bandwidth": "200M", "contact": "Karen Simmons", "phone": "0-(026)744-5786", "address": "Colusa9562 Starling Pass", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Vestibulum rutrum rutrum neque."}}, {"model": "assets.idc", "pk": 42, "fields": {"name": "Catherine Coleman", "bandwidth": "200M", "contact": "Jean Ferguson", "phone": "7-(203)893-9201", "address": "Hughson483 American Hill", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Proin eu mi."}}, {"model": "assets.idc", "pk": 43, "fields": {"name": "Christina Ford", "bandwidth": "200M", "contact": "Anne Kelley", "phone": "7-(361)766-8108", "address": "Sonoma6517 Homewood Center", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Praesent blandit."}}, {"model": "assets.idc", "pk": 44, "fields": {"name": "Ashley Clark", "bandwidth": "200M", "contact": "Donna Weaver", "phone": "6-(865)303-2972", "address": "Williams59106 Judy Point", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "In congue."}}, {"model": "assets.idc", "pk": 45, "fields": {"name": "Katherine Harper", "bandwidth": "200M", "contact": "Deborah Baker", "phone": "2-(077)530-8128", "address": "Orange853 Cody Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Cras in purus eu magna vulputate luctus."}}, {"model": "assets.idc", "pk": 46, "fields": {"name": "Christine Boyd", "bandwidth": "200M", "contact": "Stephanie Bailey", "phone": "8-(720)553-4835", "address": "Calistoga76913 Arapahoe Point", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "In eleifend quam a odio."}}, {"model": "assets.idc", "pk": 47, "fields": {"name": "Mildred Ramirez", "bandwidth": "200M", "contact": "Paula Chapman", "phone": "2-(230)486-4798", "address": "Roseville24 Pond Center", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo."}}, {"model": "assets.idc", "pk": 48, "fields": {"name": "Rachel Weaver", "bandwidth": "200M", "contact": "Frances Marshall", "phone": "3-(074)015-2372", "address": "Daly City8376 Kenwood Parkway", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nam nulla."}}, {"model": "assets.idc", "pk": 49, "fields": {"name": "Janet Schmidt", "bandwidth": "200M", "contact": "Lois Perez", "phone": "9-(286)963-6298", "address": "Bradbury485 Anhalt Court", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Aenean fermentum."}}, {"model": "assets.idc", "pk": 50, "fields": {"name": "Christine Porter", "bandwidth": "200M", "contact": "Denise Weaver", "phone": "6-(230)220-9488", "address": "Mendota86 Hauk Park", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Pellentesque eget nunc."}}, {"model": "assets.idc", "pk": 51, "fields": {"name": "Sarah Cooper", "bandwidth": "200M", "contact": "Katherine King", "phone": "2-(176)708-8202", "address": "Del Rey Oaks9 Clarendon Way", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Fusce posuere felis sed lacus."}}, {"model": "assets.idc", "pk": 52, "fields": {"name": "Rachel Gardner", "bandwidth": "200M", "contact": "Margaret Simmons", "phone": "1-(556)814-2223", "address": "Stockton98067 Burning Wood Circle", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Quisque ut erat."}}, {"model": "assets.idc", "pk": 53, "fields": {"name": "Ruth Crawford", "bandwidth": "200M", "contact": "Denise Reynolds", "phone": "0-(111)540-6291", "address": "Benicia5 Nelson Center", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis faucibus accumsan odio."}}, {"model": "assets.idc", "pk": 54, "fields": {"name": "Nicole Dunn", "bandwidth": "200M", "contact": "Ashley Daniels", "phone": "0-(593)650-4400", "address": "Atascadero541 Warbler Terrace", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Nunc nisl."}}, {"model": "assets.idc", "pk": 55, "fields": {"name": "Sharon Scott", "bandwidth": "200M", "contact": "Mildred Parker", "phone": "8-(426)698-1400", "address": "Emeryville7 Debra Lane", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus."}}, {"model": "assets.idc", "pk": 56, "fields": {"name": "Helen Harvey", "bandwidth": "200M", "contact": "Rachel Brooks", "phone": "9-(539)900-3281", "address": "Woodside8 Hayes Terrace", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla."}}, {"model": "assets.idc", "pk": 57, "fields": {"name": "Sharon Welch", "bandwidth": "200M", "contact": "Irene Knight", "phone": "9-(479)484-8960", "address": "Maricopa3 3rd Road", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "In blandit ultrices enim."}}, {"model": "assets.idc", "pk": 58, "fields": {"name": "Judith Perez", "bandwidth": "200M", "contact": "Doris Williams", "phone": "9-(070)853-9629", "address": "Wheatland9268 Stone Corner Street", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Nam dui."}}, {"model": "assets.idc", "pk": 59, "fields": {"name": "Marie Gonzales", "bandwidth": "200M", "contact": "Helen Gonzales", "phone": "9-(663)074-3567", "address": "Fremont1 Jenna Pass", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus."}}, {"model": "assets.idc", "pk": 60, "fields": {"name": "Annie Owens", "bandwidth": "200M", "contact": "Robin Spencer", "phone": "9-(505)754-4001", "address": "Glendale954 Butterfield Street", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nam nulla."}}, {"model": "assets.idc", "pk": 61, "fields": {"name": "Margaret Woods", "bandwidth": "200M", "contact": "Nancy Webb", "phone": "5-(741)490-5249", "address": "San Gabriel4231 Wayridge Plaza", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Pellentesque viverra pede ac diam."}}, {"model": "assets.idc", "pk": 62, "fields": {"name": "Lois Martin", "bandwidth": "200M", "contact": "Irene Hart", "phone": "8-(289)102-3580", "address": "Livingston31 Stang Junction", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Nulla nisl."}}, {"model": "assets.idc", "pk": 63, "fields": {"name": "Annie Brown", "bandwidth": "200M", "contact": "Jennifer Perkins", "phone": "9-(703)955-1074", "address": "Yorba Linda80561 Sugar Alley", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Proin eu mi."}}, {"model": "assets.idc", "pk": 64, "fields": {"name": "Lois Turner", "bandwidth": "200M", "contact": "Denise Garcia", "phone": "2-(294)228-0955", "address": "Bell Gardens961 Bartelt Park", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nulla ut erat id mauris vulputate elementum."}}, {"model": "assets.idc", "pk": 65, "fields": {"name": "Helen Gibson", "bandwidth": "200M", "contact": "Kathleen Cook", "phone": "9-(881)761-0055", "address": "Windsor63 Stephen Hill", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Praesent id massa id nisl venenatis lacinia."}}, {"model": "assets.idc", "pk": 66, "fields": {"name": "Tammy Washington", "bandwidth": "200M", "contact": "Lisa Bryant", "phone": "3-(644)666-6002", "address": "King City27634 Hooker Court", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Integer ac neque."}}, {"model": "assets.idc", "pk": 67, "fields": {"name": "Kelly Banks", "bandwidth": "200M", "contact": "Nancy Simmons", "phone": "9-(777)534-1801", "address": "Glendora9081 Lakeland Lane", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "In quis justo."}}, {"model": "assets.idc", "pk": 68, "fields": {"name": "Amy Perez", "bandwidth": "200M", "contact": "Joan Hunt", "phone": "0-(467)579-0353", "address": "Shasta Lake93546 Lawn Plaza", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Duis ac nibh."}}, {"model": "assets.idc", "pk": 69, "fields": {"name": "Teresa Foster", "bandwidth": "200M", "contact": "Jennifer Gonzale", "phone": "7-(350)688-7097", "address": "Barstow794 Ludington Point", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci."}}, {"model": "assets.idc", "pk": 70, "fields": {"name": "Diane Perry", "bandwidth": "200M", "contact": "Pamela Lee", "phone": "9-(268)952-7790", "address": "Larkspur258 Esch Terrace", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Fusce consequat."}}, {"model": "assets.idc", "pk": 71, "fields": {"name": "Jacqueline Stanley", "bandwidth": "200M", "contact": "Katherine Wilson", "phone": "2-(827)139-8785", "address": "Ceres218 Express Circle", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Praesent blandit lacinia erat."}}, {"model": "assets.idc", "pk": 72, "fields": {"name": "Debra Torres", "bandwidth": "200M", "contact": "Mary Gordon", "phone": "5-(985)757-8073", "address": "Coachella57640 Montana Place", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Phasellus sit amet erat."}}, {"model": "assets.idc", "pk": 73, "fields": {"name": "Mildred Hamilton", "bandwidth": "200M", "contact": "Shirley Hall", "phone": "3-(675)223-7431", "address": "Carlsbad945 Golf Course Pass", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Maecenas ut massa quis augue luctus tincidunt."}}, {"model": "assets.idc", "pk": 74, "fields": {"name": "Julia Phillips", "bandwidth": "200M", "contact": "Ruth Richardson", "phone": "2-(368)626-3624", "address": "Union City4 Redwing Terrace", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Etiam vel augue."}}, {"model": "assets.idc", "pk": 75, "fields": {"name": "Mary Bennett", "bandwidth": "200M", "contact": "Andrea Simmons", "phone": "1-(683)983-8015", "address": "Suisun City57 Londonderry Drive", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Maecenas pulvinar lobortis est."}}, {"model": "assets.idc", "pk": 76, "fields": {"name": "Lisa Henry", "bandwidth": "200M", "contact": "Sandra Campbell", "phone": "9-(136)328-7239", "address": "Fortuna4 Mccormick Parkway", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Duis mattis egestas metus."}}, {"model": "assets.idc", "pk": 77, "fields": {"name": "Alice Hall", "bandwidth": "200M", "contact": "Dorothy Gardner", "phone": "7-(684)295-4754", "address": "Yreka3 Westend Circle", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Morbi porttitor lorem id ligula."}}, {"model": "assets.idc", "pk": 78, "fields": {"name": "Anne Montgomery", "bandwidth": "200M", "contact": "Lois Wright", "phone": "0-(624)672-3340", "address": "Calimesa3076 Onsgard Place", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus."}}, {"model": "assets.idc", "pk": 79, "fields": {"name": "Mary Robinson", "bandwidth": "200M", "contact": "Gloria Collins", "phone": "6-(691)568-4557", "address": "Rialto34706 Corben Terrace", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Suspendisse accumsan tortor quis turpis."}}, {"model": "assets.idc", "pk": 80, "fields": {"name": "Theresa Butler", "bandwidth": "200M", "contact": "Ann Barnes", "phone": "7-(831)628-2018", "address": "Upland62 Northwestern Way", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Morbi non lectus."}}, {"model": "assets.idc", "pk": 81, "fields": {"name": "Donna Moore", "bandwidth": "200M", "contact": "Marilyn Cooper", "phone": "7-(997)355-3509", "address": "Chico53 Caliangt Hill", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nulla nisl."}}, {"model": "assets.idc", "pk": 82, "fields": {"name": "Catherine Clark", "bandwidth": "200M", "contact": "Evelyn Gardner", "phone": "9-(936)729-0148", "address": "Encinitas3164 Elka Way", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Praesent blandit."}}, {"model": "assets.idc", "pk": 83, "fields": {"name": "Kelly Torres", "bandwidth": "200M", "contact": "Rose Ward", "phone": "3-(333)302-6150", "address": "Adelanto9 Lukken Parkway", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Morbi non quam nec dui luctus rutrum."}}, {"model": "assets.idc", "pk": 84, "fields": {"name": "Gloria Diaz", "bandwidth": "200M", "contact": "Shirley West", "phone": "7-(995)003-7181", "address": "San Mateo6 Dorton Avenue", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Aenean fermentum."}}, {"model": "assets.idc", "pk": 85, "fields": {"name": "Marie West", "bandwidth": "200M", "contact": "Dorothy Weaver", "phone": "3-(204)516-5417", "address": "Lodi456 Old Gate Parkway", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Aenean auctor gravida sem."}}, {"model": "assets.idc", "pk": 86, "fields": {"name": "Frances Hudson", "bandwidth": "200M", "contact": "Andrea Edwards", "phone": "1-(448)835-9553", "address": "Mission Viejo1523 5th Parkway", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Maecenas leo odio, condimentum id, luctus nec, molestie sed, justo."}}, {"model": "assets.idc", "pk": 87, "fields": {"name": "Donna Peters", "bandwidth": "200M", "contact": "Lillian Lawrence", "phone": "3-(949)524-1176", "address": "Livingston6230 Prentice Point", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh."}}, {"model": "assets.idc", "pk": 88, "fields": {"name": "Brenda Vasquez", "bandwidth": "200M", "contact": "Paula Gordon", "phone": "2-(481)082-9972", "address": "La Habra45 Dapin Street", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Phasellus id sapien in sapien iaculis congue."}}, {"model": "assets.idc", "pk": 89, "fields": {"name": "Margaret Morales", "bandwidth": "200M", "contact": "Teresa Rice", "phone": "6-(892)534-0804", "address": "Selma3 Tennyson Parkway", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Donec semper sapien a libero."}}, {"model": "assets.idc", "pk": 90, "fields": {"name": "Gloria Ruiz", "bandwidth": "200M", "contact": "Andrea Murphy", "phone": "8-(374)456-9736", "address": "Culver City23 Bayside Circle", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Nulla facilisi."}}, {"model": "assets.idc", "pk": 91, "fields": {"name": "Sharon Cook", "bandwidth": "200M", "contact": "Lisa Fernandez", "phone": "1-(495)953-8047", "address": "Stanton12308 Parkside Parkway", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Nam tristique tortor eu pede."}}, {"model": "assets.idc", "pk": 92, "fields": {"name": "Norma Day", "bandwidth": "200M", "contact": "Doris Duncan", "phone": "4-(208)430-3206", "address": "El Segundo1074 Dorton Hill", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo."}}, {"model": "assets.idc", "pk": 93, "fields": {"name": "Mary Castillo", "bandwidth": "200M", "contact": "Melissa Mason", "phone": "9-(682)061-3784", "address": "San Dimas3 Rockefeller Center", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Duis at velit eu est congue elementum."}}, {"model": "assets.idc", "pk": 94, "fields": {"name": "Stephanie Woods", "bandwidth": "200M", "contact": "Judy Moreno", "phone": "9-(112)159-3565", "address": "Pomona48359 Maywood Junction", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Aliquam quis turpis eget elit sodales scelerisque."}}, {"model": "assets.idc", "pk": 95, "fields": {"name": "Ruby Perez", "bandwidth": "200M", "contact": "Lois Hamilton", "phone": "1-(347)779-0602", "address": "City of Commerce093 Reindahl Pass", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis."}}, {"model": "assets.idc", "pk": 96, "fields": {"name": "Catherine Weaver", "bandwidth": "200M", "contact": "Beverly Freeman", "phone": "5-(281)093-1208", "address": "Del Mar584 Bay Point", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo."}}, {"model": "assets.idc", "pk": 97, "fields": {"name": "Sara Olson", "bandwidth": "200M", "contact": "Brenda Miller", "phone": "0-(958)684-8524", "address": "Twentynine Palms039 Lillian Park", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla."}}, {"model": "assets.idc", "pk": 98, "fields": {"name": "Linda Griffin", "bandwidth": "200M", "contact": "Robin Fox", "phone": "6-(187)802-5149", "address": "Benicia8541 Merchant Hill", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Proin leo odio, porttitor id, consequat in, consequat ut, nulla."}}, {"model": "assets.idc", "pk": 99, "fields": {"name": "Julie Thompson", "bandwidth": "200M", "contact": "Joan Lawson", "phone": "9-(645)340-3742", "address": "San Pablo7502 Calypso Avenue", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Proin eu mi."}}, {"model": "assets.idc", "pk": 100, "fields": {"name": "Kathleen Morgan", "bandwidth": "200M", "contact": "Denise Hall", "phone": "4-(511)117-0401", "address": "Portola Valley907 Garrison Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nulla tempus."}}, {"model": "assets.assetgroup", "pk": 1, "fields": {"name": "Sandra Miller", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Ut at dolor quis odio consequat varius.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 2, "fields": {"name": "Theresa Thomas", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nullam porttitor lacus at turpis.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 3, "fields": {"name": "Ruby Ross", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 4, "fields": {"name": "Larry Stone", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Mauris sit amet eros.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 5, "fields": {"name": "Lillian Diaz", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Ut tellus.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 6, "fields": {"name": "Martha Robertson", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Sed ante.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 7, "fields": {"name": "Christine Hunter", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nulla suscipit ligula in lacus.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 8, "fields": {"name": "Irene Hill", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 9, "fields": {"name": "Lisa Rose", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 10, "fields": {"name": "Kathryn Moreno", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Suspendisse potenti.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 11, "fields": {"name": "Marie Jones", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nullam porttitor lacus at turpis.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 12, "fields": {"name": "Robin Frazier", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "In sagittis dui vel nisl.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 13, "fields": {"name": "Nicole Mason", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Suspendisse potenti.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 14, "fields": {"name": "Sarah Lawson", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nunc nisl.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 15, "fields": {"name": "Carolyn Thomas", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Vestibulum quam sapien, varius ut, blandit non, interdum in, ante.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 16, "fields": {"name": "Sarah Taylor", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Etiam pretium iaculis justo.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 17, "fields": {"name": "Barbara Payne", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nulla facilisi.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 18, "fields": {"name": "Kelly Ryan", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 19, "fields": {"name": "Irene Gibson", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nullam varius.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 20, "fields": {"name": "Helen Cole", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 21, "fields": {"name": "Barbara Watkins", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nam nulla.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 22, "fields": {"name": "Annie Martin", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nunc rhoncus dui vel sem.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 23, "fields": {"name": "Kathleen Martin", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Suspendisse potenti.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 24, "fields": {"name": "Cynthia George", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nullam sit amet turpis elementum ligula vehicula consequat.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 25, "fields": {"name": "Cheryl Davis", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Duis consequat dui nec nisi volutpat eleifend.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 26, "fields": {"name": "Kathleen Daniels", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Duis at velit eu est congue elementum.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 27, "fields": {"name": "Michelle Dean", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Maecenas tincidunt lacus at velit.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 28, "fields": {"name": "Judy Hudson", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Donec posuere metus vitae ipsum.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 29, "fields": {"name": "Sarah Daniels", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 30, "fields": {"name": "Beverly Lewis", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Phasellus id sapien in sapien iaculis congue.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 31, "fields": {"name": "Amanda Dixon", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Suspendisse potenti.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 32, "fields": {"name": "Kathryn Roberts", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Cras pellentesque volutpat dui.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 33, "fields": {"name": "Diana Simmons", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Praesent blandit lacinia erat.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 34, "fields": {"name": "Lois Washington", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Donec ut mauris eget massa tempor convallis.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 35, "fields": {"name": "Gloria White", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "In quis justo.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 36, "fields": {"name": "Maria Griffin", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Aliquam quis turpis eget elit sodales scelerisque.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 37, "fields": {"name": "Louise Dunn", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Suspendisse potenti.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 38, "fields": {"name": "Diane Tucker", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Integer ac neque.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 39, "fields": {"name": "Shirley Stanley", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Maecenas leo odio, condimentum id, luctus nec, molestie sed, justo.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 40, "fields": {"name": "Kathleen Marshall", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Duis mattis egestas metus.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 41, "fields": {"name": "Jennifer Ramos", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 42, "fields": {"name": "Betty Porter", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Donec quis orci eget orci vehicula condimentum.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 43, "fields": {"name": "Cynthia Turner", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 44, "fields": {"name": "Linda Simmons", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 45, "fields": {"name": "Amy Garrett", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Praesent id massa id nisl venenatis lacinia.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 46, "fields": {"name": "Marilyn Stevens", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Duis bibendum, felis sed interdum venenatis, turpis enim blandit mi, in porttitor pede justo eu massa.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 47, "fields": {"name": "Martha Chavez", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "In eleifend quam a odio.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 48, "fields": {"name": "Shirley Dean", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Integer non velit.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 49, "fields": {"name": "Margaret Brown", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 50, "fields": {"name": "Betty Watkins", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Donec posuere metus vitae ipsum.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 51, "fields": {"name": "Patricia Bailey", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nullam varius.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 52, "fields": {"name": "Melissa Gonzales", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 53, "fields": {"name": "Janice Jordan", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Cras in purus eu magna vulputate luctus.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 54, "fields": {"name": "Susan Johnson", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Phasellus id sapien in sapien iaculis congue.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 55, "fields": {"name": "Karen Johnson", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Aliquam sit amet diam in magna bibendum imperdiet.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 56, "fields": {"name": "Ruth Bowman", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 57, "fields": {"name": "Melissa Bishop", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Vivamus vestibulum sagittis sapien.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 58, "fields": {"name": "Virginia Bowman", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Maecenas pulvinar lobortis est.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 59, "fields": {"name": "Kimberly Reynolds", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Donec semper sapien a libero.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 60, "fields": {"name": "Mildred Bishop", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Suspendisse potenti.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 61, "fields": {"name": "Amy Bennett", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Ut tellus.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 62, "fields": {"name": "Marie Burton", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Curabitur gravida nisi at nibh.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 63, "fields": {"name": "Rose Torres", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Aliquam sit amet diam in magna bibendum imperdiet.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 64, "fields": {"name": "Mary Johnson", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Mauris ullamcorper purus sit amet nulla.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 65, "fields": {"name": "Louise Kim", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Aliquam quis turpis eget elit sodales scelerisque.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 66, "fields": {"name": "Judy Fields", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Duis bibendum, felis sed interdum venenatis, turpis enim blandit mi, in porttitor pede justo eu massa.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 67, "fields": {"name": "Amanda Rivera", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Suspendisse potenti.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 68, "fields": {"name": "Kathy Dixon", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Quisque id justo sit amet sapien dignissim vestibulum.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 69, "fields": {"name": "Brenda Adams", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "In quis justo.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 70, "fields": {"name": "Annie Scott", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "In hac habitasse platea dictumst.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 71, "fields": {"name": "Pamela Wells", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Donec quis orci eget orci vehicula condimentum.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 72, "fields": {"name": "Nicole Gilbert", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Praesent blandit.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 73, "fields": {"name": "Barbara Ramos", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Duis bibendum, felis sed interdum venenatis, turpis enim blandit mi, in porttitor pede justo eu massa.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 74, "fields": {"name": "Katherine Campbell", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nullam sit amet turpis elementum ligula vehicula consequat.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 75, "fields": {"name": "Julia Gordon", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Suspendisse accumsan tortor quis turpis.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 76, "fields": {"name": "Shirley Lawson", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nunc nisl.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 77, "fields": {"name": "Catherine Gonzales", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nam nulla.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 78, "fields": {"name": "Kathryn Chapman", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Integer non velit.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 79, "fields": {"name": "Carol Porter", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "In hac habitasse platea dictumst.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 80, "fields": {"name": "Cynthia Evans", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 81, "fields": {"name": "Amanda Thompson", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Aenean lectus.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 82, "fields": {"name": "Michelle Perez", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "In est risus, auctor sed, tristique in, tempus sit amet, sem.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 83, "fields": {"name": "Pamela Wilson", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Morbi non lectus.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 84, "fields": {"name": "Lori Wheeler", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 85, "fields": {"name": "Judith Lynch", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Maecenas pulvinar lobortis est.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 86, "fields": {"name": "Alice James", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Curabitur in libero ut massa volutpat convallis.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 87, "fields": {"name": "Norma Fuller", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Cras in purus eu magna vulputate luctus.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 88, "fields": {"name": "Wanda Hill", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "In eleifend quam a odio.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 89, "fields": {"name": "Mary Phillips", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Phasellus id sapien in sapien iaculis congue.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 90, "fields": {"name": "Michelle Evans", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 91, "fields": {"name": "Ashley Hall", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Ut tellus.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 92, "fields": {"name": "Amy Andrews", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Maecenas rhoncus aliquam lacus.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 93, "fields": {"name": "Jessica Lawrence", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Suspendisse potenti.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 94, "fields": {"name": "Beverly Simpson", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Donec posuere metus vitae ipsum.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 95, "fields": {"name": "Ann Richardson", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Duis at velit eu est congue elementum.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 96, "fields": {"name": "Donna Green", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Aliquam quis turpis eget elit sodales scelerisque.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 97, "fields": {"name": "Janet Washington", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 98, "fields": {"name": "Ruby Tucker", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nulla suscipit ligula in lacus.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 99, "fields": {"name": "Janet Stone", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.", "system_users": []}}, {"model": "assets.asset", "pk": 1, "fields": {"ip": "g1G.KYl.oGF.Th8", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 2, "fields": {"ip": "1ZH.gKS.4pj.EhT", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 3, "fields": {"ip": "iPJ.pHE.UXs.ruG", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 4, "fields": {"ip": "Fzm.Mn9.nbe.D1z", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 5, "fields": {"ip": "JCh.X2G.RbS.XxM", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 6, "fields": {"ip": "oIT.fZd.91c.vh2", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 7, "fields": {"ip": "GIq.uyi.vMS.AVp", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 8, "fields": {"ip": "DSN.gL2.0Lp.nYS", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 9, "fields": {"ip": "JGP.bdf.6Cn.g79", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 10, "fields": {"ip": "aLh.JRN.5ub.VrO", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 11, "fields": {"ip": "aun.3uz.TKy.F44", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 12, "fields": {"ip": "9sY.3lR.pfJ.P4j", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 13, "fields": {"ip": "tgH.SPF.gO .PS3", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 14, "fields": {"ip": "q8T.oNU.PPH.D h", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 15, "fields": {"ip": "KsU.GJF.EEV.cWB", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 16, "fields": {"ip": "5Kt.ZIT.QmR.wCB", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 17, "fields": {"ip": "j50.SqW.mOw.DSI", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 18, "fields": {"ip": "3E8.ars.HSC.5Zo", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 19, "fields": {"ip": "ltH.xVS.TCt.FUa", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 20, "fields": {"ip": "3UL.xhk.SJx.aOU", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 21, "fields": {"ip": "unk.xf8. rW.9sA", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 22, "fields": {"ip": "Cs7.MEb.Jc3.LHe", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 23, "fields": {"ip": "m5g.O2b.RS2.r8r", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 24, "fields": {"ip": "QEN.7SL.jco.W7g", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 25, "fields": {"ip": "7zk.9qD.l1C.YBS", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 26, "fields": {"ip": "nxK.Z0X.80b.BOx", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 27, "fields": {"ip": "aH6.2Zm.T5u.d9R", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 28, "fields": {"ip": "g0T.QLO.ZCb.bot", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 29, "fields": {"ip": "rUE.9 g.tfx.Qfk", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 30, "fields": {"ip": "uGp.xQ .5Y5.9Nc", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 31, "fields": {"ip": "6l0.4ER.DDw.RwI", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 32, "fields": {"ip": "Nxw.dfl.hq5.K8m", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 33, "fields": {"ip": "bDl.QWN.KC7.pSQ", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 34, "fields": {"ip": "RnD.Es8.yck.vva", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 35, "fields": {"ip": "o1O.hSh.FA0.uuI", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 36, "fields": {"ip": "oze.jPZ.fkP.fEC", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 37, "fields": {"ip": "Uwa.cPZ.R1v.OP ", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 38, "fields": {"ip": "NS1.dm6.6ti.TFT", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 39, "fields": {"ip": "4Tk.50u.XmJ.ook", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 40, "fields": {"ip": "tT5.qiI.gLW.DjJ", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 41, "fields": {"ip": "hIf.LjT.h7A.Gv ", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 42, "fields": {"ip": "TWf.KU7.YiU.soO", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 43, "fields": {"ip": "wPO.H46.yGn.bq7", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 44, "fields": {"ip": "OOA.Hz8.trx.J97", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 45, "fields": {"ip": "ngu.pHZ.1em.Gj7", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 46, "fields": {"ip": "3nj.5DN.gNT.OlR", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 47, "fields": {"ip": "GPA.7oW.3ES.i4E", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 48, "fields": {"ip": "hmz.1Qt.6xL.wOR", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 49, "fields": {"ip": "3TU.hpQ.c5M.qIu", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 50, "fields": {"ip": "NAT.Fl4.h4f.H4t", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 51, "fields": {"ip": "MPd.e O.F1T.FoW", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 52, "fields": {"ip": "Jud.1cb.IgW.Iuk", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 53, "fields": {"ip": "tS8.vME.ATr.BgM", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 54, "fields": {"ip": "gh0.PWS.7 c.D4m", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 55, "fields": {"ip": "oQz.JKx.KJL.WTl", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 56, "fields": {"ip": "jfj.7f9.R8c.SF8", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 57, "fields": {"ip": "YhL.NZI.P97.hz2", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 58, "fields": {"ip": "Eyy.NhK.i1P.PSW", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 59, "fields": {"ip": "eq4.M8r.c2l.nN2", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 60, "fields": {"ip": "oYL.Kfk.l3f.fgt", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 61, "fields": {"ip": "WWy.5il.L7X.yMq", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 62, "fields": {"ip": "7jJ.cAn.Xfg.0Do", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 63, "fields": {"ip": "rOf.zbY.DCm.D2x", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 64, "fields": {"ip": "1o1.Pio.z7D.mSb", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 65, "fields": {"ip": "Uhc.I5w.0St.JQW", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 66, "fields": {"ip": "Lcj.YNr.Ern.2j6", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 67, "fields": {"ip": "zYb.n3V.DZU.4NG", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 68, "fields": {"ip": "3Vv.esS.2m5.ibk", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 69, "fields": {"ip": "VpF.VTE.yKV.f67", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 70, "fields": {"ip": "hLm.6QJ.oxX.vYE", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 71, "fields": {"ip": "3Hv.C8E.UkW.ZRZ", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 72, "fields": {"ip": "2An.AMA.6Jk.E1w", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 73, "fields": {"ip": "MWe.L0i.wdk.Ero", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 74, "fields": {"ip": "yFa.XdM.Uat.3o3", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 75, "fields": {"ip": "LjT. qK. B5.bDb", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 76, "fields": {"ip": "ufc.w I.cUW.pWg", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 77, "fields": {"ip": "w3A.Qvc.BEW.OAk", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 78, "fields": {"ip": "6at.uFL.kKh.lhD", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 79, "fields": {"ip": "V2k.Fmi.XZp.pkA", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 80, "fields": {"ip": "bkH.hcu.EiP.5yD", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 81, "fields": {"ip": "5l0.DWb.m6w.D6n", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 82, "fields": {"ip": "UoL.esA.Z0h.7t9", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 83, "fields": {"ip": "GBB.A4n.G9Y.IrM", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 84, "fields": {"ip": "BkA.ReK.6ai.U5W", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 85, "fields": {"ip": "uTO.sPz.v2M.wng", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 86, "fields": {"ip": "lPj.suA.5wH.qrD", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 87, "fields": {"ip": "VSY.rCc.VXm.wia", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 88, "fields": {"ip": "wSZ.Nui.j21.LUi", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 89, "fields": {"ip": "UWU.e1p.Srx.iBk", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 90, "fields": {"ip": "Ofx.ps7.7IN.t3C", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 91, "fields": {"ip": "CBn.T3D. r5.rOL", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 92, "fields": {"ip": "72o.nNQ.Nvq.NA4", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 93, "fields": {"ip": " G4.JSE.b5w.UUR", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 94, "fields": {"ip": " bp.6Yx.JPZ.CMs", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 95, "fields": {"ip": "xW9.z6n.2aO.CSo", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 96, "fields": {"ip": "MQS.i4v.OJI.m9X", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 97, "fields": {"ip": "E6w.404.bNe.zKm", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 98, "fields": {"ip": "t3i.MKo.ep7.Ald", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 99, "fields": {"ip": "i4H.oOJ.BYy.3w5", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 100, "fields": {"ip": "tJu.cve.gBZ.43o", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "contenttypes.contenttype", "pk": 1, "fields": {"app_label": "users", "model": "user"}}, {"model": "contenttypes.contenttype", "pk": 2, "fields": {"app_label": "users", "model": "usergroup"}}, {"model": "contenttypes.contenttype", "pk": 3, "fields": {"app_label": "assets", "model": "assetextend"}}, {"model": "contenttypes.contenttype", "pk": 4, "fields": {"app_label": "assets", "model": "label"}}, {"model": "contenttypes.contenttype", "pk": 5, "fields": {"app_label": "assets", "model": "systemuser"}}, {"model": "contenttypes.contenttype", "pk": 6, "fields": {"app_label": "assets", "model": "assetgroup"}}, {"model": "contenttypes.contenttype", "pk": 7, "fields": {"app_label": "assets", "model": "adminuser"}}, {"model": "contenttypes.contenttype", "pk": 8, "fields": {"app_label": "assets", "model": "idc"}}, {"model": "contenttypes.contenttype", "pk": 9, "fields": {"app_label": "assets", "model": "asset"}}, {"model": "contenttypes.contenttype", "pk": 10, "fields": {"app_label": "perms", "model": "assetpermission"}}, {"model": "contenttypes.contenttype", "pk": 11, "fields": {"app_label": "authtoken", "model": "token"}}, {"model": "contenttypes.contenttype", "pk": 12, "fields": {"app_label": "captcha", "model": "captchastore"}}, {"model": "contenttypes.contenttype", "pk": 13, "fields": {"app_label": "auth", "model": "group"}}, {"model": "contenttypes.contenttype", "pk": 14, "fields": {"app_label": "auth", "model": "permission"}}, {"model": "contenttypes.contenttype", "pk": 15, "fields": {"app_label": "contenttypes", "model": "contenttype"}}, {"model": "contenttypes.contenttype", "pk": 16, "fields": {"app_label": "sessions", "model": "session"}}, {"model": "auth.permission", "pk": 1, "fields": {"name": "Can add user", "content_type": 1, "codename": "add_user"}}, {"model": "auth.permission", "pk": 2, "fields": {"name": "Can change user", "content_type": 1, "codename": "change_user"}}, {"model": "auth.permission", "pk": 3, "fields": {"name": "Can delete user", "content_type": 1, "codename": "delete_user"}}, {"model": "auth.permission", "pk": 4, "fields": {"name": "Can add user group", "content_type": 2, "codename": "add_usergroup"}}, {"model": "auth.permission", "pk": 5, "fields": {"name": "Can change user group", "content_type": 2, "codename": "change_usergroup"}}, {"model": "auth.permission", "pk": 6, "fields": {"name": "Can delete user group", "content_type": 2, "codename": "delete_usergroup"}}, {"model": "auth.permission", "pk": 7, "fields": {"name": "Can add asset extend", "content_type": 3, "codename": "add_assetextend"}}, {"model": "auth.permission", "pk": 8, "fields": {"name": "Can change asset extend", "content_type": 3, "codename": "change_assetextend"}}, {"model": "auth.permission", "pk": 9, "fields": {"name": "Can delete asset extend", "content_type": 3, "codename": "delete_assetextend"}}, {"model": "auth.permission", "pk": 10, "fields": {"name": "Can add label", "content_type": 4, "codename": "add_label"}}, {"model": "auth.permission", "pk": 11, "fields": {"name": "Can change label", "content_type": 4, "codename": "change_label"}}, {"model": "auth.permission", "pk": 12, "fields": {"name": "Can delete label", "content_type": 4, "codename": "delete_label"}}, {"model": "auth.permission", "pk": 13, "fields": {"name": "Can add system user", "content_type": 5, "codename": "add_systemuser"}}, {"model": "auth.permission", "pk": 14, "fields": {"name": "Can change system user", "content_type": 5, "codename": "change_systemuser"}}, {"model": "auth.permission", "pk": 15, "fields": {"name": "Can delete system user", "content_type": 5, "codename": "delete_systemuser"}}, {"model": "auth.permission", "pk": 16, "fields": {"name": "Can add asset group", "content_type": 6, "codename": "add_assetgroup"}}, {"model": "auth.permission", "pk": 17, "fields": {"name": "Can change asset group", "content_type": 6, "codename": "change_assetgroup"}}, {"model": "auth.permission", "pk": 18, "fields": {"name": "Can delete asset group", "content_type": 6, "codename": "delete_assetgroup"}}, {"model": "auth.permission", "pk": 19, "fields": {"name": "Can add admin user", "content_type": 7, "codename": "add_adminuser"}}, {"model": "auth.permission", "pk": 20, "fields": {"name": "Can change admin user", "content_type": 7, "codename": "change_adminuser"}}, {"model": "auth.permission", "pk": 21, "fields": {"name": "Can delete admin user", "content_type": 7, "codename": "delete_adminuser"}}, {"model": "auth.permission", "pk": 22, "fields": {"name": "Can add idc", "content_type": 8, "codename": "add_idc"}}, {"model": "auth.permission", "pk": 23, "fields": {"name": "Can change idc", "content_type": 8, "codename": "change_idc"}}, {"model": "auth.permission", "pk": 24, "fields": {"name": "Can delete idc", "content_type": 8, "codename": "delete_idc"}}, {"model": "auth.permission", "pk": 25, "fields": {"name": "Can add asset", "content_type": 9, "codename": "add_asset"}}, {"model": "auth.permission", "pk": 26, "fields": {"name": "Can change asset", "content_type": 9, "codename": "change_asset"}}, {"model": "auth.permission", "pk": 27, "fields": {"name": "Can delete asset", "content_type": 9, "codename": "delete_asset"}}, {"model": "auth.permission", "pk": 28, "fields": {"name": "Can add asset permission", "content_type": 10, "codename": "add_assetpermission"}}, {"model": "auth.permission", "pk": 29, "fields": {"name": "Can change asset permission", "content_type": 10, "codename": "change_assetpermission"}}, {"model": "auth.permission", "pk": 30, "fields": {"name": "Can delete asset permission", "content_type": 10, "codename": "delete_assetpermission"}}, {"model": "auth.permission", "pk": 31, "fields": {"name": "Can add Token", "content_type": 11, "codename": "add_token"}}, {"model": "auth.permission", "pk": 32, "fields": {"name": "Can change Token", "content_type": 11, "codename": "change_token"}}, {"model": "auth.permission", "pk": 33, "fields": {"name": "Can delete Token", "content_type": 11, "codename": "delete_token"}}, {"model": "auth.permission", "pk": 34, "fields": {"name": "Can add captcha store", "content_type": 12, "codename": "add_captchastore"}}, {"model": "auth.permission", "pk": 35, "fields": {"name": "Can change captcha store", "content_type": 12, "codename": "change_captchastore"}}, {"model": "auth.permission", "pk": 36, "fields": {"name": "Can delete captcha store", "content_type": 12, "codename": "delete_captchastore"}}, {"model": "auth.permission", "pk": 37, "fields": {"name": "Can add group", "content_type": 13, "codename": "add_group"}}, {"model": "auth.permission", "pk": 38, "fields": {"name": "Can change group", "content_type": 13, "codename": "change_group"}}, {"model": "auth.permission", "pk": 39, "fields": {"name": "Can delete group", "content_type": 13, "codename": "delete_group"}}, {"model": "auth.permission", "pk": 40, "fields": {"name": "Can add permission", "content_type": 14, "codename": "add_permission"}}, {"model": "auth.permission", "pk": 41, "fields": {"name": "Can change permission", "content_type": 14, "codename": "change_permission"}}, {"model": "auth.permission", "pk": 42, "fields": {"name": "Can delete permission", "content_type": 14, "codename": "delete_permission"}}, {"model": "auth.permission", "pk": 43, "fields": {"name": "Can add content type", "content_type": 15, "codename": "add_contenttype"}}, {"model": "auth.permission", "pk": 44, "fields": {"name": "Can change content type", "content_type": 15, "codename": "change_contenttype"}}, {"model": "auth.permission", "pk": 45, "fields": {"name": "Can delete content type", "content_type": 15, "codename": "delete_contenttype"}}, {"model": "auth.permission", "pk": 46, "fields": {"name": "Can add session", "content_type": 16, "codename": "add_session"}}, {"model": "auth.permission", "pk": 47, "fields": {"name": "Can change session", "content_type": 16, "codename": "change_session"}}, {"model": "auth.permission", "pk": 48, "fields": {"name": "Can delete session", "content_type": 16, "codename": "delete_session"}}, {"model": "users.user", "pk": 1, "fields": {"password": "pbkdf2_sha256$30000$IKVlHhkZLSou$WCC2vTcaXwcaKlyNNIK0iHxM2T/x7Ppus5YD1LqE5fM=", "last_login": "2016-09-15T03:33:24Z", "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-14T15:34:43Z", "username": "admin", "name": "Administrator", "email": "admin@jumpserver.org", "role": "Admin", "avatar": "", "wechat": "", "phone": "", "enable_otp": true, "secret_key_otp": "", "_private_key": "Ii0tLS0tQkVHSU4gUlNBIFBSSVZBVEUgS0VZLS0tLS1cclxuUHJvYy1UeXBlOiA0LEVOQ1JZUFRFRFxyXG5ERUstSW5mbzogREVTLUVERTMtQ0JDLEU1NTdBQUY5RjFGNUJFODlcclxuXHJcbkljdFNjOCtKbVZ0VUNMYjZIcGdnKzc2RlQxRWtqVkppaks5R0d3dzFZdHNVcHJlcGFNSFY1TjhmQjJYbmxvVE9cclxuKzRYOXpWbS9DdWFSQ3l5KzJTdFNHNnNRcFJjM3k3c1F3eWZ2RVJjWkpiUHg2blhqRlpqeFdKWmk0UklvdzdSN1xyXG5zb3lmKzZ0c0NNVWZXYSswdXEyWE5BQ0xuWjRjTHRzVEdoZ000MnpKU2N6TGJsdVFZb2lWc1FFQkl0VWhYTTJKXHJcbjV2SzN6VlhtbVE2ZjhuTlhyZ3BZZkxwc21nNjd3UnQ5YmdtMDRQV1hlL2JpUHhRSnlPRzVWdE1UVzNPOFNDVVBcclxuR1QzN2NmV1pSOHMzRzBpV1hFelVUSEFpZHdlMTllajBtMVVwZHV0U2NMN1VwSTJqdUh0TndRN2FkNkNId3IvNlxyXG5oTTRkazc1cHBIbFdMQ0g4bXdMWmpMem01OWFUNk9VMmt6a3pTYjUxNnU0SHJQRXdEZ2YrMExXbXUzOWxRMUtWXHJcbmx1a1g1eFZyRTVDL1YzMUVLWVplb1NwTTd2Q2ZGbiswalZUR2t4aGw3dkdtOFl2dk51NCsrcWg1ZU51SXpjRU9cclxubmVGSE5KZW9sd0U0YUNZOW1oNWRQamhMeFZIRUJXSWdFRm1kNG5mMVlrN3BPbTlzV1VlWDJtbjRld0hYVmk4dlxyXG5TMnJkclg2WHMwdG1tVU5HL1ZXU0E1TlJRQ2hRVHBFd3d0NXNrOEJWV1BzSWd3RjBtN0czMmw0WFhTUTI1MXZNXHJcbldubkpPbjl2M3VjWGpkbW0yMXdqdHFsZm9tYmZwUURuaDI0cVVoSE1oSHBxc3BWeitnY3BjQXpiYjNKbDNjdENcclxuVE03MlhyMkJidWFOOWVaQkRleUhSZ25XUWtYU3RKMjB1SEpESHVmam4wbVpyOVlSZ2N6ZEpvc0RLRmsrR1ZHRVxyXG43VDdncFJtalJaVlkrdkwvY2xkdVgwcmphNmlZeFVkZjA0YVVhYmZjTThLdjUvZ2J4WUJBRnMrdTlEb2Z2MGE1XHJcbllMYkUwUG9GSG9SSUJHMUhQQ01ndzhHN2hXUEZTcWp4aEkwQStObC8rS2o1Z0xoTkRzN1Exc20zem95R05ZMnlcclxub2VIRzZWWEdEVmJRbEVqSjZubmpCZUt4QjR0Qi9PdURFdDlQUTQxVlFpZUw5Q29rbkhGUU1MbEg4UU05WjdiNVxyXG5jbktpVHNzaFlGQ2tsaUpVWDBoVmcybUFOSW5FU25wK1FJOFpUMG9MWHV3aGpPeHhqUkZ5VWkyVi9TYzlpRG41XHJcbnJsR2h3OGNhQ0U5VTBuY0VLSmpINmJHeHNKdDdNMjQ5bjlrNmlWKzY0SnNFMDk0Zm5VcUlmMWZtSmZZTkhtc0dcclxuWDNMekpwditoWm9YeUZjNjRXdW11c25BeXhCQWNHV2U2RjgwV3Y5cUJlR0cyMXM5U0tGNjJQY2lWZUJTL2NBaFxyXG5JY3luTGNHVTcwVjFOSy9XTlp1SWIva3dEbHdvZm1XSitWV2NHRGRkbFU0YnhSRlhhbSsvTFMyNVF1Skh2bjZHXHJcbkhtY2RCdVhzY3oraE9WQmtsYkQ1UHpoTXg3cTNqbXYvdWEyM1Fab2VaRHB6QURQVll3bTJVN2NtV215ZHgxOFBcclxuSE1uWlloVGdPMWJ1L2NlV0EvSmNYb0RsMXkxbktqS2wwUmg4V2xNTDFHQlhDOXRmYTJld3BpTzlFZHlSWjYwaFxyXG5jZmFLdUZFM3BUZWxCZUluRmdGSWwweVJjVy8zSjZTSGxCZGRNTlB3QlNnek5HcVA1K0lERkhwU1l0REJmZUhBXHJcbjJpbVRON0p1ejhZZCtpa1FDd3RDa3cyS0pxMWhVMFN1RjR1TnEveVRpNTAwblJhSU8xUUJ1N2pFV1VDS2xoTmVcclxuejd6RStqUUNYQTg2SURLZ3JqUTA2NmdkMGcwS29UVDl1U29wTGM2ckZkeHFJcXJ0RExCVURBU2ZyY2NBbjdJS1xyXG5xWHpyTGVwOXVYYVJjeGNRS1MxSkl4SnQ2NTluWkhNY3lrZ0ZvMEYzL1Y5NXk4ZzV3eS9PQnNUQll6YXgxYXM2XHJcbnA2aHdKZTlidDhQUTRObmd3YSt1ZGJBRS9nLzcvdEJ1QWN0L0kzTE5XZEhENUpMSGIyNXNHUT09XHJcbi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tIg:1bkMko:NwpgeKKEYr8zzdgi7xGcqHbM60c", "_public_key": "", "comment": "Administrator is the super user of system", "is_first_login": false, "date_expired": "2086-08-28T15:34:43Z", "created_by": "System", "user_permissions": [], "groups": [1]}}, {"model": "users.user", "pk": 2, "fields": {"password": "pbkdf2_sha256$30000$yTbM0j71TqJm$DUQ5AOGEGTZku1PCl693KtZGtktOl2TebVikbo/+pnc=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:12Z", "username": "bonnie74", "name": "Bonnie Stanley", "email": "andrea@tagpad.name", "role": "User", "avatar": "", "wechat": "paula83", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "In hac habitasse platea dictumst.", "is_first_login": true, "date_expired": "2086-08-29T01:55:12Z", "created_by": "admin", "user_permissions": [], "groups": [1, 99]}}, {"model": "users.user", "pk": 3, "fields": {"password": "pbkdf2_sha256$30000$B1xwFMJAuRAr$cscOSKmlgUEHBYa/6wNFrxLl1vKqUJ2R19HGvGJ/L+k=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:12Z", "username": "joan94", "name": "Carol Foster", "email": "kathy@topicblab.com", "role": "Admin", "avatar": "", "wechat": "stephanie68", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.", "is_first_login": true, "date_expired": "2086-08-29T01:55:12Z", "created_by": "bonnie74", "user_permissions": [], "groups": [1, 71]}}, {"model": "users.user", "pk": 4, "fields": {"password": "pbkdf2_sha256$30000$iJOPMQ4Js0Ta$E3D9fc6IjzKwTY8SZclQwBTcJfP2kzHeC2FHEerS0xU=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:12Z", "username": "lillian64", "name": "Frances Campbell", "email": "teresa@buzzshare.gov", "role": "Admin", "avatar": "", "wechat": "margaret91", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Suspendisse ornare consequat lectus.", "is_first_login": true, "date_expired": "2086-08-29T01:55:12Z", "created_by": "joan94", "user_permissions": [], "groups": [1, 12]}}, {"model": "users.user", "pk": 5, "fields": {"password": "pbkdf2_sha256$30000$UIWBVIVgs3OM$5L/0ErLjSio/EutGd0XYue7UYuTNe0AfJ8WXqvCSKv4=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:12Z", "username": "cynthia71", "name": "Margaret Ruiz", "email": "sarah@browseblab.biz", "role": "Admin", "avatar": "", "wechat": "susan85", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Etiam faucibus cursus urna.", "is_first_login": true, "date_expired": "2086-08-29T01:55:12Z", "created_by": "joan94", "user_permissions": [], "groups": [1, 74]}}, {"model": "users.user", "pk": 6, "fields": {"password": "pbkdf2_sha256$30000$lHMLI3qcSH3I$QRavGd3dJUGIaG0gnt/4pq8pcGWCNl+6OZVkGLk68z8=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:12Z", "username": "katherine70", "name": "Judith Washington", "email": "norma@pixonyx.info", "role": "Admin", "avatar": "", "wechat": "mildred72", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Quisque id justo sit amet sapien dignissim vestibulum.", "is_first_login": true, "date_expired": "2086-08-29T01:55:12Z", "created_by": "admin", "user_permissions": [], "groups": [1, 13]}}, {"model": "users.user", "pk": 7, "fields": {"password": "pbkdf2_sha256$30000$nv1Q7BxGoI2C$dWEa9krCWSWMwzt0ZecO7and7wO3YgCGE+HXrvClc3Q=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:12Z", "username": "lisa86", "name": "Amy Frazier", "email": "brenda@edgeblab.edu", "role": "Admin", "avatar": "", "wechat": "sharon85", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla.", "is_first_login": true, "date_expired": "2086-08-29T01:55:12Z", "created_by": "cynthia71", "user_permissions": [], "groups": [1, 41]}}, {"model": "users.user", "pk": 8, "fields": {"password": "pbkdf2_sha256$30000$MZIGNEGrlPEf$MTcuU1Yqz6x47DwYiJ06psFmIZwWtr02bDyxsIPK9xU=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:12Z", "username": "tina63", "name": "Paula Ruiz", "email": "marilyn@twitternation.gov", "role": "User", "avatar": "", "wechat": "diane83", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Etiam justo.", "is_first_login": true, "date_expired": "2086-08-29T01:55:12Z", "created_by": "cynthia71", "user_permissions": [], "groups": [1, 13]}}, {"model": "users.user", "pk": 9, "fields": {"password": "pbkdf2_sha256$30000$AR5gO3nKEAtz$7zpuAPZGu0g753t/nWxqHYLLJK9qm2ctVcfC/f7qLxM=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:13Z", "username": "julie92", "name": "Beverly Simpson", "email": "rebecca@yamia.mil", "role": "Admin", "avatar": "", "wechat": "rachel81", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Praesent lectus.", "is_first_login": true, "date_expired": "2086-08-29T01:55:13Z", "created_by": "bonnie74", "user_permissions": [], "groups": [1, 3]}}, {"model": "users.user", "pk": 10, "fields": {"password": "pbkdf2_sha256$30000$sJOgrLoEWfL7$jaNm3yAay97Jcs5DBzWjXjYpTwnpg1KYBwYvY8q+/LE=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:13Z", "username": "robin70", "name": "Susan Mendoza", "email": "melissa@pixoboo.name", "role": "Admin", "avatar": "", "wechat": "martha81", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "In hac habitasse platea dictumst.", "is_first_login": true, "date_expired": "2086-08-29T01:55:13Z", "created_by": "julie92", "user_permissions": [], "groups": [1, 72]}}, {"model": "users.user", "pk": 11, "fields": {"password": "pbkdf2_sha256$30000$hMUrdtxQ5EgG$1bxzOJjC06tM0Hl8ULZ3QuloGLArDTRUijlYGg7xICU=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:13Z", "username": "virginia70", "name": "Lillian Thompson", "email": "tammy@trupe.biz", "role": "Admin", "avatar": "", "wechat": "kimberly80", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "In blandit ultrices enim.", "is_first_login": true, "date_expired": "2086-08-29T01:55:13Z", "created_by": "tina63", "user_permissions": [], "groups": [1, 54]}}, {"model": "users.user", "pk": 12, "fields": {"password": "pbkdf2_sha256$30000$CHC8oKnRYErw$T9VvJEG9p+UVmIgvrA5QIpBzJaMvbxt4IlROsj+ScqE=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:13Z", "username": "heather66", "name": "Betty Gray", "email": "susan@twitterworks.name", "role": "User", "avatar": "", "wechat": "ann68", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo.", "is_first_login": true, "date_expired": "2086-08-29T01:55:13Z", "created_by": "bonnie74", "user_permissions": [], "groups": [1, 88]}}, {"model": "users.user", "pk": 13, "fields": {"password": "pbkdf2_sha256$30000$kerem95dK7Qy$ncmqkm62ZTzJZ1WL+dtRrD0BxNup9/EiHQl9+ilaGGY=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:13Z", "username": "jacqueline88", "name": "Jean Simmons", "email": "teresa@yakidoo.name", "role": "User", "avatar": "", "wechat": "michelle94", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Etiam faucibus cursus urna.", "is_first_login": true, "date_expired": "2086-08-29T01:55:13Z", "created_by": "admin", "user_permissions": [], "groups": [1, 18]}}, {"model": "users.user", "pk": 14, "fields": {"password": "pbkdf2_sha256$30000$WgA67aeCgkRM$j+8yC7SZ+iUZuW6yKpQrWNlA13h7kl2ngdvCpUYYmrI=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:13Z", "username": "laura66", "name": "Pamela Montgomery", "email": "lillian@dabvine.com", "role": "User", "avatar": "", "wechat": "cheryl92", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Donec vitae nisi.", "is_first_login": true, "date_expired": "2086-08-29T01:55:13Z", "created_by": "lisa86", "user_permissions": [], "groups": [1, 101]}}, {"model": "users.user", "pk": 15, "fields": {"password": "pbkdf2_sha256$30000$IIumaITLEGcv$/7sidlSgncQeHS+ZvzuAiO8uJyfNES6r5t9i+RnjsiQ=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:13Z", "username": "gloria77", "name": "Tina Moore", "email": "rebecca@nlounge.mil", "role": "Admin", "avatar": "", "wechat": "lori63", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Aliquam quis turpis eget elit sodales scelerisque.", "is_first_login": true, "date_expired": "2086-08-29T01:55:13Z", "created_by": "jacqueline88", "user_permissions": [], "groups": [1, 64]}}, {"model": "users.user", "pk": 16, "fields": {"password": "pbkdf2_sha256$30000$9vfYJpuhD5n7$lZ8Tb2Oxp2KOwOINoTEkpxwtopHyQFy/gxqsfLfzL9E=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:13Z", "username": "kimberly74", "name": "Cynthia Knight", "email": "christina@tazz.net", "role": "Admin", "avatar": "", "wechat": "marie74", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Integer pede justo, lacinia eget, tincidunt eget, tempus vel, pede.", "is_first_login": true, "date_expired": "2086-08-29T01:55:13Z", "created_by": "joan94", "user_permissions": [], "groups": [1, 37]}}, {"model": "users.user", "pk": 17, "fields": {"password": "pbkdf2_sha256$30000$qvAwMLep4lYG$IAZoxF1oWjPyJtSZEYZpbwC/06GfyRrxpuVFTX+6nyE=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:13Z", "username": "stephanie69", "name": "Stephanie Mitchell", "email": "tammy@gabspot.gov", "role": "User", "avatar": "", "wechat": "diane71", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Curabitur at ipsum ac tellus semper interdum.", "is_first_login": true, "date_expired": "2086-08-29T01:55:13Z", "created_by": "virginia70", "user_permissions": [], "groups": [1, 64]}}, {"model": "users.user", "pk": 18, "fields": {"password": "pbkdf2_sha256$30000$yb2hZR4Nl6r2$QcBAeZXMV7qYnvkgCDylHTACpCLDtxVUqfsg+bgFXjw=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:13Z", "username": "tina83", "name": "Jessica Miller", "email": "cheryl@browsebug.biz", "role": "Admin", "avatar": "", "wechat": "debra77", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Fusce consequat.", "is_first_login": true, "date_expired": "2086-08-29T01:55:13Z", "created_by": "stephanie69", "user_permissions": [], "groups": [1, 74]}}, {"model": "users.user", "pk": 19, "fields": {"password": "pbkdf2_sha256$30000$ziE2wz8ndf80$xo1OHl0fnCaqM0+ZA9b16JSfb7XZQmvkFNmAqwfobBE=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:13Z", "username": "stephanie78", "name": "Irene Hawkins", "email": "diana@innotype.biz", "role": "User", "avatar": "", "wechat": "sara71", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Integer ac neque.", "is_first_login": true, "date_expired": "2086-08-29T01:55:13Z", "created_by": "tina83", "user_permissions": [], "groups": [1, 39]}}, {"model": "users.user", "pk": 20, "fields": {"password": "pbkdf2_sha256$30000$sYONHXGdiRn1$FGIm+r2dvWMvIRzCla/WqPJHvmwpmc4xGoObFHSuWLM=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:13Z", "username": "kathy65", "name": "Ruby Garza", "email": "mildred@twinte.gov", "role": "User", "avatar": "", "wechat": "robin89", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nunc purus.", "is_first_login": true, "date_expired": "2086-08-29T01:55:13Z", "created_by": "tina63", "user_permissions": [], "groups": [1, 41]}}, {"model": "users.user", "pk": 21, "fields": {"password": "pbkdf2_sha256$30000$lDn2qWQc2yYN$1vNW9nRjgXqu5RuGuqjMs32Eew1bXnjtS9vSqp4lZI0=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:13Z", "username": "patricia88", "name": "Wanda Kelly", "email": "karen@browseblab.com", "role": "Admin", "avatar": "", "wechat": "mary73", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nullam varius.", "is_first_login": true, "date_expired": "2086-08-29T01:55:13Z", "created_by": "admin", "user_permissions": [], "groups": [1, 7]}}, {"model": "users.user", "pk": 22, "fields": {"password": "pbkdf2_sha256$30000$7t0FLB3KW6SA$WYkh5ULr98tyisZFdWW7S5wNMlLsNz7PzhfWe/QO8Dw=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:13Z", "username": "judith93", "name": "Beverly Hanson", "email": "shirley@ntags.net", "role": "Admin", "avatar": "", "wechat": "rachel92", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo.", "is_first_login": true, "date_expired": "2086-08-29T01:55:13Z", "created_by": "lillian64", "user_permissions": [], "groups": [1, 91]}}, {"model": "users.user", "pk": 23, "fields": {"password": "pbkdf2_sha256$30000$znNvYgOuvCNQ$VO9YeB5O1IGCAy/nbUqpgshoG18B5Zrz0DF0qfCxBP8=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:14Z", "username": "janice76", "name": "Rachel Warren", "email": "linda@yambee.edu", "role": "Admin", "avatar": "", "wechat": "alice79", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Fusce consequat.", "is_first_login": true, "date_expired": "2086-08-29T01:55:14Z", "created_by": "katherine70", "user_permissions": [], "groups": [1, 37]}}, {"model": "users.user", "pk": 24, "fields": {"password": "pbkdf2_sha256$30000$Qs5zbrWqzqZ5$oLcDl5JfX2Xx1WSyYooAPEZSXlz92xJ7v6kwpnWVyME=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:14Z", "username": "bonnie69", "name": "Joyce Cooper", "email": "jane@mybuzz.gov", "role": "User", "avatar": "", "wechat": "shirley77", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Donec posuere metus vitae ipsum.", "is_first_login": true, "date_expired": "2086-08-29T01:55:14Z", "created_by": "admin", "user_permissions": [], "groups": [1, 52]}}, {"model": "users.user", "pk": 25, "fields": {"password": "pbkdf2_sha256$30000$RrIx5IS2Ii77$ygyjb2/NemojFgyN7MD0hD795KLiztXQl1swdiJpsxU=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:14Z", "username": "jane63", "name": "Frances Little", "email": "janice@yoveo.biz", "role": "Admin", "avatar": "", "wechat": "sarah69", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi.", "is_first_login": true, "date_expired": "2086-08-29T01:55:14Z", "created_by": "janice76", "user_permissions": [], "groups": [1, 93]}}, {"model": "users.user", "pk": 26, "fields": {"password": "pbkdf2_sha256$30000$cMOC4o1WLusE$14SpC+FmWEi+M0fXetEO2+Imrku404D07e+AbdD+zpw=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:14Z", "username": "deborah87", "name": "Tammy Peters", "email": "wanda@dablist.info", "role": "User", "avatar": "", "wechat": "lisa84", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Vestibulum ac est lacinia nisi venenatis tristique.", "is_first_login": true, "date_expired": "2086-08-29T01:55:14Z", "created_by": "jacqueline88", "user_permissions": [], "groups": [1, 6]}}, {"model": "users.user", "pk": 27, "fields": {"password": "pbkdf2_sha256$30000$khqNw4q6bATe$7kDg72CEb5yep1UkXl6+x67d0uFK7gfcOKdwZWz41zc=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:14Z", "username": "eric66", "name": "Amanda Cole", "email": "susan@skyba.edu", "role": "Admin", "avatar": "", "wechat": "angela65", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Etiam justo.", "is_first_login": true, "date_expired": "2086-08-29T01:55:14Z", "created_by": "stephanie69", "user_permissions": [], "groups": [1]}}, {"model": "users.user", "pk": 28, "fields": {"password": "pbkdf2_sha256$30000$5s7gTw39QQbA$NsgOOSPCtEf62R3jEB4wlLF14msTTV3LIbTamR9mKek=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:14Z", "username": "angela81", "name": "Rebecca Morales", "email": "laura@skiba.com", "role": "User", "avatar": "", "wechat": "evelyn93", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Duis aliquam convallis nunc.", "is_first_login": true, "date_expired": "2086-08-29T01:55:14Z", "created_by": "robin70", "user_permissions": [], "groups": [1, 16]}}, {"model": "users.user", "pk": 29, "fields": {"password": "pbkdf2_sha256$30000$DSckYQ2FEjUu$8K3i1XrX6Jv7ZzdVG2TfvGdaookEzsh/JYb/4F4OkO4=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:14Z", "username": "nicole84", "name": "Jacqueline Long", "email": "linda@aibox.gov", "role": "User", "avatar": "", "wechat": "laura69", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Praesent lectus.", "is_first_login": true, "date_expired": "2086-08-29T01:55:14Z", "created_by": "stephanie69", "user_permissions": [], "groups": [1, 45]}}, {"model": "users.user", "pk": 30, "fields": {"password": "pbkdf2_sha256$30000$ufE0c3a4NA2d$FCCSaGClO69MlyocQm/KhBwUbMf7wga9NL2s27rzcpU=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:14Z", "username": "patricia69", "name": "Michelle Reyes", "email": "tammy@photofeed.name", "role": "Admin", "avatar": "", "wechat": "carolyn79", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Mauris lacinia sapien quis libero.", "is_first_login": true, "date_expired": "2086-08-29T01:55:14Z", "created_by": "virginia70", "user_permissions": [], "groups": [1, 82]}}, {"model": "users.user", "pk": 31, "fields": {"password": "pbkdf2_sha256$30000$G2FaLsITBp7g$phz2O4yV9k2iRm5a+lcuFJRcH1tYawrIQgZkubqoZC8=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:14Z", "username": "sharon69", "name": "Margaret Bradley", "email": "tina@quamba.info", "role": "User", "avatar": "", "wechat": "sara64", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Sed vel enim sit amet nunc viverra dapibus.", "is_first_login": true, "date_expired": "2086-08-29T01:55:14Z", "created_by": "laura66", "user_permissions": [], "groups": [1, 99]}}, {"model": "users.user", "pk": 32, "fields": {"password": "pbkdf2_sha256$30000$TulVgtY2Ub27$EJxHTVI/4NYWlyKo+Dk4d/iJsuLdrcN70gMbQWoF3M8=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:14Z", "username": "ann87", "name": "Phyllis Meyer", "email": "betty@wikivu.edu", "role": "User", "avatar": "", "wechat": "ann79", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue.", "is_first_login": true, "date_expired": "2086-08-29T01:55:14Z", "created_by": "patricia69", "user_permissions": [], "groups": [1, 92]}}, {"model": "users.user", "pk": 33, "fields": {"password": "pbkdf2_sha256$30000$ZMEVifwXza6c$rrVAYG/fT8Q2YBC9FmP2ZUgkGprYDc2dWmi85H8/1No=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:14Z", "username": "lois83", "name": "Judith Riley", "email": "lori@trilia.name", "role": "Admin", "avatar": "", "wechat": "marie67", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo.", "is_first_login": true, "date_expired": "2086-08-29T01:55:14Z", "created_by": "laura66", "user_permissions": [], "groups": [1, 11]}}, {"model": "users.user", "pk": 34, "fields": {"password": "pbkdf2_sha256$30000$c5PRuduC4a0r$V6Etecsme7plCHgUgV4JccUK+51u11V7eqXqHnurzYY=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:14Z", "username": "melissa84", "name": "Judith Fisher", "email": "julie@bluezoom.edu", "role": "Admin", "avatar": "", "wechat": "julie87", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nulla tellus.", "is_first_login": true, "date_expired": "2086-08-29T01:55:14Z", "created_by": "laura66", "user_permissions": [], "groups": [1, 99]}}, {"model": "users.user", "pk": 35, "fields": {"password": "pbkdf2_sha256$30000$8ggGlsGSu9TP$aGRk+9awfyACmrEkuRphzTZ7ornyMhwg8zKQNoPO9ug=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:14Z", "username": "sarah69", "name": "Sara Mason", "email": "christine@zoombeat.name", "role": "User", "avatar": "", "wechat": "rose89", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "In hac habitasse platea dictumst.", "is_first_login": true, "date_expired": "2086-08-29T01:55:14Z", "created_by": "virginia70", "user_permissions": [], "groups": [1, 22]}}, {"model": "users.user", "pk": 36, "fields": {"password": "pbkdf2_sha256$30000$TYpQCb6Zi75h$QzST/dPDA8Brj4vHGSJg/ZXadSiPaLUS7O2DCk/Nc3Q=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:14Z", "username": "lisa91", "name": "Debra Coleman", "email": "joyce@bubblemix.net", "role": "User", "avatar": "", "wechat": "joyce87", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci.", "is_first_login": true, "date_expired": "2086-08-29T01:55:14Z", "created_by": "melissa84", "user_permissions": [], "groups": [1, 4]}}, {"model": "users.user", "pk": 37, "fields": {"password": "pbkdf2_sha256$30000$ItBS2CuGi4OW$ETaZNY1yhbiUzJJpPxTqBETqOx5bY8bZ7QJ9HVNubJo=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:15Z", "username": "lisa81", "name": "Kimberly Ellis", "email": "lori@rhynyx.mil", "role": "Admin", "avatar": "", "wechat": "linda92", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Integer tincidunt ante vel ipsum.", "is_first_login": true, "date_expired": "2086-08-29T01:55:15Z", "created_by": "tina83", "user_permissions": [], "groups": [1, 81]}}, {"model": "users.user", "pk": 38, "fields": {"password": "pbkdf2_sha256$30000$Czlc4Lh9DzqH$ChoPoT9EzaUDHtBb5wdHgf8fRvKCrcter1zFaSGluE0=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:15Z", "username": "carolyn87", "name": "Andrea Flores", "email": "teresa@edgeclub.info", "role": "User", "avatar": "", "wechat": "wanda74", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Vestibulum sed magna at nunc commodo placerat.", "is_first_login": true, "date_expired": "2086-08-29T01:55:15Z", "created_by": "sarah69", "user_permissions": [], "groups": [1, 96]}}, {"model": "users.user", "pk": 39, "fields": {"password": "pbkdf2_sha256$30000$gozl2rwG7Skn$Kze1I7WRzv4a0pklpyAt+wvC2rTkQ7y32frOZsgsKn4=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:15Z", "username": "denise82", "name": "Wanda Rice", "email": "barbara@jabbersphere.biz", "role": "User", "avatar": "", "wechat": "jean70", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nunc purus.", "is_first_login": true, "date_expired": "2086-08-29T01:55:15Z", "created_by": "nicole84", "user_permissions": [], "groups": [1, 44]}}, {"model": "users.user", "pk": 40, "fields": {"password": "pbkdf2_sha256$30000$zh3ZO7WTLm82$bdsTjDzl1MXvJWNL8hIYl9YS1YJ9pTo831EqiFfd2D4=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:15Z", "username": "michelle85", "name": "Beverly Romero", "email": "andrea@yotz.edu", "role": "Admin", "avatar": "", "wechat": "judith91", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.", "is_first_login": true, "date_expired": "2086-08-29T01:55:15Z", "created_by": "carolyn87", "user_permissions": [], "groups": [1, 39]}}, {"model": "users.user", "pk": 41, "fields": {"password": "pbkdf2_sha256$30000$yoPKAAOx9Hdp$a7U34qlMJXphTWWN1pMV+BA0wcdle3CMFXEkUtazV5Y=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:15Z", "username": "anne65", "name": "Judy Peterson", "email": "irene@yakijo.mil", "role": "User", "avatar": "", "wechat": "kathleen68", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Integer ac neque.", "is_first_login": true, "date_expired": "2086-08-29T01:55:15Z", "created_by": "lisa81", "user_permissions": [], "groups": [1, 74]}}, {"model": "users.user", "pk": 42, "fields": {"password": "pbkdf2_sha256$30000$6f5CGxHQXjBP$tDX6khIvMCzuCOfSx9U7I4pRB0V5kM4ugU0WTdRkh8w=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:15Z", "username": "phyllis69", "name": "Andrea Banks", "email": "emily@skiba.edu", "role": "User", "avatar": "", "wechat": "donna68", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Fusce consequat.", "is_first_login": true, "date_expired": "2086-08-29T01:55:15Z", "created_by": "joan94", "user_permissions": [], "groups": [1, 33]}}, {"model": "users.user", "pk": 43, "fields": {"password": "pbkdf2_sha256$30000$kRjEXCXl63ra$lwtpXDY5JOg3Oi6wHeztp37t+CGhpcvRTqk1Rp49YqQ=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:15Z", "username": "barbara64", "name": "Tammy Stevens", "email": "patricia@talane.biz", "role": "Admin", "avatar": "", "wechat": "tina84", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.", "is_first_login": true, "date_expired": "2086-08-29T01:55:15Z", "created_by": "eric66", "user_permissions": [], "groups": [1, 59]}}, {"model": "users.user", "pk": 44, "fields": {"password": "pbkdf2_sha256$30000$JxFODu6sZhU7$4MKMJOO+ofE/WXui1qeSAYuLZ60GzL2XpxGEu+F5Pdc=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:15Z", "username": "deborah76", "name": "Dorothy Day", "email": "elizabeth@browsezoom.gov", "role": "Admin", "avatar": "", "wechat": "andrea87", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Curabitur gravida nisi at nibh.", "is_first_login": true, "date_expired": "2086-08-29T01:55:15Z", "created_by": "judith93", "user_permissions": [], "groups": [1, 30]}}, {"model": "users.user", "pk": 45, "fields": {"password": "pbkdf2_sha256$30000$xrfrSxouc3FY$WSiiICGq9IhM7en4PDNqzIXQoWzzUytpaE3cwQkWVck=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:15Z", "username": "katherine86", "name": "Angela Campbell", "email": "rebecca@feedfish.mil", "role": "User", "avatar": "", "wechat": "bonnie82", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Integer tincidunt ante vel ipsum.", "is_first_login": true, "date_expired": "2086-08-29T01:55:15Z", "created_by": "michelle85", "user_permissions": [], "groups": [1, 62]}}, {"model": "users.user", "pk": 46, "fields": {"password": "pbkdf2_sha256$30000$M0tJnOlIGeHQ$xqXbhzCmphUp+lQG1ghGLdUTVhvEnzfC+Yta4LgkMa8=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:15Z", "username": "judy90", "name": "Amanda Carroll", "email": "paula@babbleblab.biz", "role": "Admin", "avatar": "", "wechat": "judy69", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.", "is_first_login": true, "date_expired": "2086-08-29T01:55:15Z", "created_by": "patricia69", "user_permissions": [], "groups": [1, 2]}}, {"model": "users.user", "pk": 47, "fields": {"password": "pbkdf2_sha256$30000$h472D89xtNj3$506FYhENOcvsebtIH2N/40UoFgHjnCO3UAMPz2i9q0U=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:15Z", "username": "rose93", "name": "Jennifer Webb", "email": "sandra@skivee.biz", "role": "Admin", "avatar": "", "wechat": "deborah71", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Sed accumsan felis.", "is_first_login": true, "date_expired": "2086-08-29T01:55:15Z", "created_by": "lillian64", "user_permissions": [], "groups": [1, 20]}}, {"model": "users.user", "pk": 48, "fields": {"password": "pbkdf2_sha256$30000$WN0Ro8nyuDEi$nFj4JUyetQhnUCeQWESpjb6TUR1kIurLKpEDbt/FSeQ=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:15Z", "username": "marilyn72", "name": "Cynthia Olson", "email": "rachel@jabberstorm.edu", "role": "User", "avatar": "", "wechat": "barbara81", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Aliquam quis turpis eget elit sodales scelerisque.", "is_first_login": true, "date_expired": "2086-08-29T01:55:15Z", "created_by": "bonnie69", "user_permissions": [], "groups": [1, 2]}}, {"model": "users.user", "pk": 49, "fields": {"password": "pbkdf2_sha256$30000$1ZfVz6ss6RlK$5clrvMZxbTrv2+HDErEj2AdFGqxIGHErjVpFxgJ4Cw8=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:15Z", "username": "jacqueline81", "name": "Frances Elliott", "email": "patricia@yakitri.gov", "role": "Admin", "avatar": "", "wechat": "amanda72", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Quisque id justo sit amet sapien dignissim vestibulum.", "is_first_login": true, "date_expired": "2086-08-29T01:55:15Z", "created_by": "eric66", "user_permissions": [], "groups": [1, 41]}}, {"model": "users.user", "pk": 50, "fields": {"password": "pbkdf2_sha256$30000$8FvciDFPJdBD$9l416Fl453Zm6mi2ZO9ZgZVvO0yqOh9eMxfNc9boudc=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:16Z", "username": "jennifer84", "name": "Louise Hansen", "email": "jean@blognation.net", "role": "User", "avatar": "", "wechat": "kathleen80", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nullam varius.", "is_first_login": true, "date_expired": "2086-08-29T01:55:16Z", "created_by": "melissa84", "user_permissions": [], "groups": [1, 25]}}, {"model": "users.user", "pk": 51, "fields": {"password": "pbkdf2_sha256$30000$BDw3WSK0ZSj4$HEBo0qI+AFVacPPuYElQSDl1n5RA0mdESF53WbWs83M=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:16Z", "username": "theresa64", "name": "Lois Fernandez", "email": "anna@eadel.edu", "role": "User", "avatar": "", "wechat": "lisa65", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla.", "is_first_login": true, "date_expired": "2086-08-29T01:55:16Z", "created_by": "anne65", "user_permissions": [], "groups": [1, 86]}}, {"model": "users.user", "pk": 52, "fields": {"password": "pbkdf2_sha256$30000$Y4zvVQBV3RYb$S57vpWdHHTiDLPm3KbQ3ZAYCL/OerVoZa/JccyhkB9Y=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:16Z", "username": "jennifer81", "name": "Martha Willis", "email": "margaret@topicware.com", "role": "User", "avatar": "", "wechat": "jennifer88", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Etiam vel augue.", "is_first_login": true, "date_expired": "2086-08-29T01:55:16Z", "created_by": "janice76", "user_permissions": [], "groups": [1, 10]}}, {"model": "users.user", "pk": 53, "fields": {"password": "pbkdf2_sha256$30000$muAHw50f1PJy$N3P/qa6dV//nWxZYo44lwUTTY6FVeI/3MhHsTUmmSjA=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:16Z", "username": "nancy90", "name": "Tina Arnold", "email": "irene@muxo.mil", "role": "User", "avatar": "", "wechat": "carolyn68", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla.", "is_first_login": true, "date_expired": "2086-08-29T01:55:16Z", "created_by": "julie92", "user_permissions": [], "groups": [1, 24]}}, {"model": "users.user", "pk": 54, "fields": {"password": "pbkdf2_sha256$30000$6ti6txNiKdBw$O+oePFgL3ICqQipsSQuFtWBuDEHfv9dryD+s7WBKcrw=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:16Z", "username": "nancy79", "name": "Carolyn Morris", "email": "jean@quimba.mil", "role": "User", "avatar": "", "wechat": "stephanie63", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "In hac habitasse platea dictumst.", "is_first_login": true, "date_expired": "2086-08-29T01:55:16Z", "created_by": "jacqueline81", "user_permissions": [], "groups": [1, 36]}}, {"model": "users.user", "pk": 55, "fields": {"password": "pbkdf2_sha256$30000$rRobV9wodYl7$9Ru4xZfQRNzpW9jSMMp/YpG8EzdAVp6TiUvrqOFlyNE=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:16Z", "username": "anne82", "name": "Michelle Foster", "email": "lillian@roombo.gov", "role": "User", "avatar": "", "wechat": "elizabeth72", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Donec diam neque, vestibulum eget, vulputate ut, ultrices vel, augue.", "is_first_login": true, "date_expired": "2086-08-29T01:55:16Z", "created_by": "janice76", "user_permissions": [], "groups": [1, 79]}}, {"model": "users.user", "pk": 56, "fields": {"password": "pbkdf2_sha256$30000$h6faFBdaN7Ir$PQ6Qs7GmZc5AH7JyNLKTRvzeJxArrkzF0I8n+EpO+S4=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:16Z", "username": "kathy64", "name": "Katherine Jackson", "email": "alice@twitterlist.name", "role": "Admin", "avatar": "", "wechat": "carol79", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Proin eu mi.", "is_first_login": true, "date_expired": "2086-08-29T01:55:16Z", "created_by": "gloria77", "user_permissions": [], "groups": [1, 8]}}, {"model": "users.user", "pk": 57, "fields": {"password": "pbkdf2_sha256$30000$c4iLKp44LRVQ$zlE9dNgPSdbgMmjE6Ge/CErPK8PQrj7sLpuMVj//hd0=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:16Z", "username": "andrea85", "name": "Teresa Little", "email": "barbara@dabvine.biz", "role": "Admin", "avatar": "", "wechat": "debra72", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Etiam vel augue.", "is_first_login": true, "date_expired": "2086-08-29T01:55:16Z", "created_by": "marilyn72", "user_permissions": [], "groups": [1, 80]}}, {"model": "users.user", "pk": 58, "fields": {"password": "pbkdf2_sha256$30000$KJw6szUO6zsF$pqWiqk/3a1dPc2zON7miii5lCuXb7RK3goN31N1cDIw=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:16Z", "username": "janet86", "name": "Carolyn Ford", "email": "irene@wikivu.edu", "role": "User", "avatar": "", "wechat": "robin89", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Donec quis orci eget orci vehicula condimentum.", "is_first_login": true, "date_expired": "2086-08-29T01:55:16Z", "created_by": "heather66", "user_permissions": [], "groups": [1, 22]}}, {"model": "users.user", "pk": 59, "fields": {"password": "pbkdf2_sha256$30000$jAZTcyzAITI4$FMAL9dQ/5fbSbVXPtpkZES/tEVFOAttUD4TbD25s6A4=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:16Z", "username": "lillian65", "name": "Katherine Palmer", "email": "theresa@rooxo.mil", "role": "User", "avatar": "", "wechat": "doris64", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Curabitur gravida nisi at nibh.", "is_first_login": true, "date_expired": "2086-08-29T01:55:16Z", "created_by": "jane63", "user_permissions": [], "groups": [1, 8]}}, {"model": "users.user", "pk": 60, "fields": {"password": "pbkdf2_sha256$30000$SmrnEoxozF1L$QB1t73gAGaR3JPlXlVRcDIn9JXw6DdnhwylqQynoJJY=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:16Z", "username": "brenda84", "name": "Kathleen Dean", "email": "rachel@cogibox.mil", "role": "User", "avatar": "", "wechat": "margaret73", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Vivamus tortor.", "is_first_login": true, "date_expired": "2086-08-29T01:55:16Z", "created_by": "carolyn87", "user_permissions": [], "groups": [1, 20]}}, {"model": "users.user", "pk": 61, "fields": {"password": "pbkdf2_sha256$30000$g0xJWkJ7WxDf$8kn654GW+E9uKSF9L3sjtNvKS4UDCquSSGutqFNfW/A=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:16Z", "username": "paula73", "name": "Kathy Garza", "email": "diane@skidoo.edu", "role": "Admin", "avatar": "", "wechat": "dorothy92", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Vestibulum sed magna at nunc commodo placerat.", "is_first_login": true, "date_expired": "2086-08-29T01:55:16Z", "created_by": "lisa91", "user_permissions": [], "groups": [1, 76]}}, {"model": "users.user", "pk": 62, "fields": {"password": "pbkdf2_sha256$30000$0GOuM8IRehSo$ep5zLCs289Rw15TmmMW6NU0Uev6M4LTCwxU3dNYmQJs=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:17Z", "username": "nicole69", "name": "Sandra Lopez", "email": "nancy@yakitri.name", "role": "User", "avatar": "", "wechat": "frances76", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nullam sit amet turpis elementum ligula vehicula consequat.", "is_first_login": true, "date_expired": "2086-08-29T01:55:17Z", "created_by": "lisa86", "user_permissions": [], "groups": [1, 36]}}, {"model": "users.user", "pk": 63, "fields": {"password": "pbkdf2_sha256$30000$eGI0SYEfKVrj$VGPQiaxk4GlNjf3Kr2JRxBqStLSf42knNIsgIZBALNU=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:17Z", "username": "bonnie85", "name": "Kelly Chavez", "email": "cynthia@ailane.biz", "role": "Admin", "avatar": "", "wechat": "diana79", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo.", "is_first_login": true, "date_expired": "2086-08-29T01:55:17Z", "created_by": "lillian65", "user_permissions": [], "groups": [1, 84]}}, {"model": "users.user", "pk": 64, "fields": {"password": "pbkdf2_sha256$30000$mYa0lSMe7SBm$egCzgBqBCZjYcnu7MiAUBQD5e3fh0/3vLn2JpXLlQ6s=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:17Z", "username": "sara86", "name": "Maria Sanders", "email": "kimberly@eidel.net", "role": "User", "avatar": "", "wechat": "emily85", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nulla suscipit ligula in lacus.", "is_first_login": true, "date_expired": "2086-08-29T01:55:17Z", "created_by": "bonnie85", "user_permissions": [], "groups": [1, 84]}}, {"model": "users.user", "pk": 65, "fields": {"password": "pbkdf2_sha256$30000$AZnonfYt27Nz$EIKRJWiit0swQ0m8r8PaVBXEP5fVr8Bpgowb1FegVBE=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:17Z", "username": "carlos80", "name": "Patricia Hudson", "email": "amanda@mudo.com", "role": "Admin", "avatar": "", "wechat": "martha64", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Praesent blandit lacinia erat.", "is_first_login": true, "date_expired": "2086-08-29T01:55:17Z", "created_by": "paula73", "user_permissions": [], "groups": [1, 23]}}, {"model": "users.user", "pk": 66, "fields": {"password": "pbkdf2_sha256$30000$990fqt6iUR8W$BPq+nPIoJBfrAO0AkK/Qw1QCQNBSglgT2xKwpx1tMQI=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:17Z", "username": "elizabeth63", "name": "Mary Sims", "email": "cheryl@browsetype.mil", "role": "Admin", "avatar": "", "wechat": "janet73", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Etiam pretium iaculis justo.", "is_first_login": true, "date_expired": "2086-08-29T01:55:17Z", "created_by": "judy90", "user_permissions": [], "groups": [1, 84]}}, {"model": "users.user", "pk": 67, "fields": {"password": "pbkdf2_sha256$30000$2F1e9rZQKC1H$X1dgFUltjCoil7Fh3me1McLZW6rjlZen7zL9GOpUvFo=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:17Z", "username": "rebecca68", "name": "Michelle Holmes", "email": "julie@plambee.biz", "role": "User", "avatar": "", "wechat": "susan76", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nam tristique tortor eu pede.", "is_first_login": true, "date_expired": "2086-08-29T01:55:17Z", "created_by": "katherine86", "user_permissions": [], "groups": [1, 28]}}, {"model": "users.user", "pk": 68, "fields": {"password": "pbkdf2_sha256$30000$IJyXJnaZ6Daa$YorHVCNkR+S6d6MHknJfjrauRdIAWXR8+a1WjT704oI=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:17Z", "username": "lori73", "name": "Ruby Lawrence", "email": "ruby@tagtune.net", "role": "User", "avatar": "", "wechat": "lillian91", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis.", "is_first_login": true, "date_expired": "2086-08-29T01:55:17Z", "created_by": "jennifer84", "user_permissions": [], "groups": [1, 97]}}, {"model": "users.user", "pk": 69, "fields": {"password": "pbkdf2_sha256$30000$D7g4k0cD3Pbj$KNTXQ6+A0HLt7SJRqT0fRpLR5WLF/w1MxqbJnCXQ5IA=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:17Z", "username": "linda88", "name": "Donna Morris", "email": "annie@trupe.com", "role": "Admin", "avatar": "", "wechat": "janice93", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Suspendisse potenti.", "is_first_login": true, "date_expired": "2086-08-29T01:55:17Z", "created_by": "lillian65", "user_permissions": [], "groups": [1, 29]}}, {"model": "users.user", "pk": 70, "fields": {"password": "pbkdf2_sha256$30000$mNvDDYaDA7Ob$CZQ7mGIkdk7dbSGqUL92yG58c/xX4zrbnnFsPyaXCbA=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:17Z", "username": "ruby65", "name": "Barbara Austin", "email": "christine@meezzy.info", "role": "Admin", "avatar": "", "wechat": "judy72", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Cras non velit nec nisi vulputate nonummy.", "is_first_login": true, "date_expired": "2086-08-29T01:55:17Z", "created_by": "jennifer81", "user_permissions": [], "groups": [1, 36]}}, {"model": "users.user", "pk": 71, "fields": {"password": "pbkdf2_sha256$30000$ZG5zSpblnVHv$+DmWQ9HV0/biw1jsweqEd1yTbnnk9/hLnfdHRVMAd7Y=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:17Z", "username": "carol83", "name": "Lisa Baker", "email": "jane@kayveo.info", "role": "Admin", "avatar": "", "wechat": "frances71", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.", "is_first_login": true, "date_expired": "2086-08-29T01:55:17Z", "created_by": "elizabeth63", "user_permissions": [], "groups": [1, 16]}}, {"model": "users.user", "pk": 72, "fields": {"password": "pbkdf2_sha256$30000$rho4MaMy7ZzH$El/9X5pBIiPXEQPohvRrQsoQWNHS/hg4rBFI6YYWX0I=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:17Z", "username": "cheryl68", "name": "Susan Chapman", "email": "jane@gabvine.org", "role": "User", "avatar": "", "wechat": "rebecca93", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Maecenas pulvinar lobortis est.", "is_first_login": true, "date_expired": "2086-08-29T01:55:17Z", "created_by": "judith93", "user_permissions": [], "groups": [1, 22]}}, {"model": "users.user", "pk": 73, "fields": {"password": "pbkdf2_sha256$30000$anEm0e1qZe3B$BINmray3lflxUco7bbkb44PgAgYihiglgJ12j34EZzU=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:17Z", "username": "kathryn79", "name": "Louise Murphy", "email": "rachel@avavee.edu", "role": "User", "avatar": "", "wechat": "heather69", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Pellentesque eget nunc.", "is_first_login": true, "date_expired": "2086-08-29T01:55:17Z", "created_by": "melissa84", "user_permissions": [], "groups": [1, 48]}}, {"model": "users.user", "pk": 74, "fields": {"password": "pbkdf2_sha256$30000$srPP9EzYb93I$ce8+nbRpenHBSAbMnuPBrdRq4G7RaFp2ULk27FPBRsA=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:18Z", "username": "ruby90", "name": "Diane Elliott", "email": "louise@leexo.name", "role": "User", "avatar": "", "wechat": "anna74", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Vestibulum ac est lacinia nisi venenatis tristique.", "is_first_login": true, "date_expired": "2086-08-29T01:55:18Z", "created_by": "lisa81", "user_permissions": [], "groups": [1, 66]}}, {"model": "users.user", "pk": 75, "fields": {"password": "pbkdf2_sha256$30000$rm77CbmRmQwd$WkEZuvokZ1zYYS8xCbK5VZTz3nSVB0+ywA0Gxr0+pdY=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:18Z", "username": "linda89", "name": "Louise Dean", "email": "michelle@npath.com", "role": "User", "avatar": "", "wechat": "brenda94", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Proin risus.", "is_first_login": true, "date_expired": "2086-08-29T01:55:18Z", "created_by": "deborah87", "user_permissions": [], "groups": [1, 13]}}, {"model": "users.user", "pk": 76, "fields": {"password": "pbkdf2_sha256$30000$ZMvFYikBYWaN$8GoJyS9A/hSvgRB+UzSkV6iAp3FkVJtK1WI7IAAxD9g=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:18Z", "username": "sandra69", "name": "Laura West", "email": "pamela@ntag.edu", "role": "Admin", "avatar": "", "wechat": "linda76", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.", "is_first_login": true, "date_expired": "2086-08-29T01:55:18Z", "created_by": "laura66", "user_permissions": [], "groups": [1, 41]}}, {"model": "users.user", "pk": 77, "fields": {"password": "pbkdf2_sha256$30000$2KJj0hrJZveX$xJJ/mUDR6VUgbts4s9JGCynEebSHX02yIoN+Z/vkm0I=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:18Z", "username": "sandra83", "name": "Patricia Nguyen", "email": "heather@dabshots.com", "role": "User", "avatar": "", "wechat": "catherine87", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Integer ac neque.", "is_first_login": true, "date_expired": "2086-08-29T01:55:18Z", "created_by": "phyllis69", "user_permissions": [], "groups": [1, 41]}}, {"model": "users.user", "pk": 78, "fields": {"password": "pbkdf2_sha256$30000$AZYdtWL4oiET$aFNHutAWF2p8aJ6osIthOK6b3kHF5ZzXUoloZDqJJco=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:18Z", "username": "sarah77", "name": "Carol Richards", "email": "andrea@mydeo.info", "role": "Admin", "avatar": "", "wechat": "maria74", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.", "is_first_login": true, "date_expired": "2086-08-29T01:55:18Z", "created_by": "patricia69", "user_permissions": [], "groups": [1, 64]}}, {"model": "users.user", "pk": 79, "fields": {"password": "pbkdf2_sha256$30000$uy7N7rTghX4m$xtRdNZ5bQx5lG4je3aPhBO1ejn3re5qSEccR5R3w+Hk=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:18Z", "username": "betty91", "name": "Jessica Gray", "email": "carol@yodoo.info", "role": "User", "avatar": "", "wechat": "judith90", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Morbi a ipsum.", "is_first_login": true, "date_expired": "2086-08-29T01:55:18Z", "created_by": "melissa84", "user_permissions": [], "groups": [1, 93]}}, {"model": "users.user", "pk": 80, "fields": {"password": "pbkdf2_sha256$30000$orws1WK4ck1a$SxToLTjrJ9wYLHeDURMDfBCGjYZ3utSAUmmJx+Dbz2M=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:18Z", "username": "stephanie63", "name": "Martha Hughes", "email": "katherine@quamba.mil", "role": "User", "avatar": "", "wechat": "anna69", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nullam varius.", "is_first_login": true, "date_expired": "2086-08-29T01:55:18Z", "created_by": "jacqueline88", "user_permissions": [], "groups": [1, 68]}}, {"model": "users.user", "pk": 81, "fields": {"password": "pbkdf2_sha256$30000$9uAN25AaYrN9$Axz7EkHzfM1XVgS30jrBbV2YjNtol8cwKTZBH4UYXc4=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:18Z", "username": "beverly79", "name": "Wanda Butler", "email": "kathleen@viva.edu", "role": "User", "avatar": "", "wechat": "teresa64", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "In quis justo.", "is_first_login": true, "date_expired": "2086-08-29T01:55:18Z", "created_by": "jennifer84", "user_permissions": [], "groups": [1, 87]}}, {"model": "users.user", "pk": 82, "fields": {"password": "pbkdf2_sha256$30000$XSCXwKOSMkv7$cLvc9ilhhS7eET95+DA0XuBM6cCw7kTLfTWLnNmNziU=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:18Z", "username": "judy75", "name": "Frances Ross", "email": "ruth@oyondu.com", "role": "User", "avatar": "", "wechat": "norma83", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nulla suscipit ligula in lacus.", "is_first_login": true, "date_expired": "2086-08-29T01:55:18Z", "created_by": "bonnie85", "user_permissions": [], "groups": [1]}}, {"model": "users.user", "pk": 83, "fields": {"password": "pbkdf2_sha256$30000$dDIouWmOTgbc$UIsnigZXUP5AaQ+fEGQGnwJoYqtDHFp1gcoaLrZL2Ow=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:18Z", "username": "mildred83", "name": "Melissa Banks", "email": "brenda@twitterwire.com", "role": "Admin", "avatar": "", "wechat": "brenda88", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Curabitur in libero ut massa volutpat convallis.", "is_first_login": true, "date_expired": "2086-08-29T01:55:18Z", "created_by": "jennifer81", "user_permissions": [], "groups": [1, 96]}}, {"model": "users.user", "pk": 84, "fields": {"password": "pbkdf2_sha256$30000$HXmeR1kfq6N5$S1Ng7jQNTeZGRmwWWivUa/azHI4+1nQ2IgFFrZT9CiE=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:18Z", "username": "anne91", "name": "Catherine Bailey", "email": "tammy@jabbersphere.info", "role": "User", "avatar": "", "wechat": "wanda77", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl.", "is_first_login": true, "date_expired": "2086-08-29T01:55:18Z", "created_by": "joan94", "user_permissions": [], "groups": [1, 67]}}, {"model": "users.user", "pk": 85, "fields": {"password": "pbkdf2_sha256$30000$8t9jr25DEX2M$oWDX+5WAXy+ncQZ3a1cCpWylybahtaZjcA1JVObm8mw=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:18Z", "username": "ruby79", "name": "Rebecca Greene", "email": "amy@jazzy.gov", "role": "User", "avatar": "", "wechat": "helen78", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Donec quis orci eget orci vehicula condimentum.", "is_first_login": true, "date_expired": "2086-08-29T01:55:18Z", "created_by": "carlos80", "user_permissions": [], "groups": [1, 74]}}, {"model": "users.user", "pk": 86, "fields": {"password": "pbkdf2_sha256$30000$lUKpfJXuSH9w$GiEpV/YNed080JXRPrSSeqBqyjIxKko1gdnPkF6xdbM=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:18Z", "username": "tina75", "name": "Jean Pierce", "email": "joan@quinu.mil", "role": "Admin", "avatar": "", "wechat": "rebecca87", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Quisque id justo sit amet sapien dignissim vestibulum.", "is_first_login": true, "date_expired": "2086-08-29T01:55:18Z", "created_by": "sarah69", "user_permissions": [], "groups": [1, 72]}}, {"model": "users.user", "pk": 87, "fields": {"password": "pbkdf2_sha256$30000$m7ZoQnIldps7$Ky7ZmY61QRK/Hm5oTf3KgIRXxqzSf7knJxOq8l4+McM=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:19Z", "username": "joyce73", "name": "Cheryl Bryant", "email": "denise@myworks.biz", "role": "Admin", "avatar": "", "wechat": "kathryn82", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Donec posuere metus vitae ipsum.", "is_first_login": true, "date_expired": "2086-08-29T01:55:19Z", "created_by": "rebecca68", "user_permissions": [], "groups": [1, 8]}}, {"model": "users.user", "pk": 88, "fields": {"password": "pbkdf2_sha256$30000$PyDh6KFIkNi9$PyHeNzexW/ksT09D3gK1czE5sUKopyO0G/dGylcyJ+0=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:19Z", "username": "lois67", "name": "Barbara Kelly", "email": "kelly@divavu.edu", "role": "User", "avatar": "", "wechat": "kathleen87", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Integer tincidunt ante vel ipsum.", "is_first_login": true, "date_expired": "2086-08-29T01:55:19Z", "created_by": "judy75", "user_permissions": [], "groups": [1, 71]}}, {"model": "users.user", "pk": 89, "fields": {"password": "pbkdf2_sha256$30000$3ewpjVwGjV0r$O2efrXjrLkovn0gDzxtt430kugxtDujUR2lTahtxYbE=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:19Z", "username": "helen80", "name": "Phyllis Jordan", "email": "marilyn@youopia.name", "role": "User", "avatar": "", "wechat": "catherine91", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Donec ut mauris eget massa tempor convallis.", "is_first_login": true, "date_expired": "2086-08-29T01:55:19Z", "created_by": "virginia70", "user_permissions": [], "groups": [1, 82]}}, {"model": "users.user", "pk": 90, "fields": {"password": "pbkdf2_sha256$30000$YCN7Y4OXGe9j$BC4apeXu9hZUlndOmBnkWULvT5JhcuCVLXBZvpwtB9s=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:19Z", "username": "katherine65", "name": "Elizabeth Peterson", "email": "mildred@feedspan.gov", "role": "User", "avatar": "", "wechat": "brenda73", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "In est risus, auctor sed, tristique in, tempus sit amet, sem.", "is_first_login": true, "date_expired": "2086-08-29T01:55:19Z", "created_by": "kathy64", "user_permissions": [], "groups": [1, 71]}}, {"model": "users.user", "pk": 91, "fields": {"password": "pbkdf2_sha256$30000$ztfF2R3gx3AV$KZByDcNg/3eDFTXij2lRyv/1TmEG+jAZB+/FLBeRT8c=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:19Z", "username": "kimberly64", "name": "Amy Coleman", "email": "rose@kazio.mil", "role": "User", "avatar": "", "wechat": "tammy82", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Morbi quis tortor id nulla ultrices aliquet.", "is_first_login": true, "date_expired": "2086-08-29T01:55:19Z", "created_by": "kathryn79", "user_permissions": [], "groups": [1, 70]}}, {"model": "users.user", "pk": 92, "fields": {"password": "pbkdf2_sha256$30000$U5IKqQEDwcX7$E8Cbiw4czEFLfwPPqSQ+aHhABwDe7DuDwlDZXa8amio=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:19Z", "username": "doris67", "name": "Lori Ross", "email": "frances@riffpedia.edu", "role": "User", "avatar": "", "wechat": "tina92", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.", "is_first_login": true, "date_expired": "2086-08-29T01:55:19Z", "created_by": "sandra83", "user_permissions": [], "groups": [1, 24]}}, {"model": "users.user", "pk": 93, "fields": {"password": "pbkdf2_sha256$30000$SRFrehlptcfI$wdD+DbNfxWceUx1LWmQAya+E7ERQQFszoN7ju9OiTvI=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:19Z", "username": "louise68", "name": "Mildred Hanson", "email": "martha@tagchat.mil", "role": "User", "avatar": "", "wechat": "denise75", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Maecenas rhoncus aliquam lacus.", "is_first_login": true, "date_expired": "2086-08-29T01:55:19Z", "created_by": "sarah77", "user_permissions": [], "groups": [1, 26]}}, {"model": "users.user", "pk": 94, "fields": {"password": "pbkdf2_sha256$30000$1VmciJRCgLkF$7wvjjaIXn6qJnBhoEXoc3sZ4SVwogj5wVmhPqzFIZqE=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:19Z", "username": "jessica89", "name": "Virginia Stone", "email": "kathleen@vinder.edu", "role": "Admin", "avatar": "", "wechat": "cynthia71", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Cras in purus eu magna vulputate luctus.", "is_first_login": true, "date_expired": "2086-08-29T01:55:19Z", "created_by": "jane63", "user_permissions": [], "groups": [1, 6]}}, {"model": "users.user", "pk": 95, "fields": {"password": "pbkdf2_sha256$30000$F4xh4xhxFepR$MjkKz+TeEtlG19OsWDXuNsV0g1J9nOuFvY5Ou1Wyx/g=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:19Z", "username": "kathleen90", "name": "Julie Bailey", "email": "louise@reallinks.com", "role": "Admin", "avatar": "", "wechat": "wanda67", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Quisque ut erat.", "is_first_login": true, "date_expired": "2086-08-29T01:55:19Z", "created_by": "gloria77", "user_permissions": [], "groups": [1, 85]}}, {"model": "users.user", "pk": 96, "fields": {"password": "pbkdf2_sha256$30000$Bu3uw0GnHZ8X$mDHWUyNZKiWpXhf14hKbKDJvmrw+5J4+7WkryqaUFvs=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:19Z", "username": "theresa84", "name": "Rachel Lawson", "email": "evelyn@pixonyx.info", "role": "User", "avatar": "", "wechat": "cynthia84", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Quisque ut erat.", "is_first_login": true, "date_expired": "2086-08-29T01:55:19Z", "created_by": "tina63", "user_permissions": [], "groups": [1, 70]}}, {"model": "users.user", "pk": 97, "fields": {"password": "pbkdf2_sha256$30000$o2InNwJyGjqv$RtvS2Rjl0AWNepVJI3aELIFuwSyxMD93LdJcXkECAn4=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:19Z", "username": "helen64", "name": "Mary Cunningham", "email": "laura@katz.biz", "role": "User", "avatar": "", "wechat": "annie93", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo.", "is_first_login": true, "date_expired": "2086-08-29T01:55:19Z", "created_by": "kathryn79", "user_permissions": [], "groups": [1, 88]}}, {"model": "users.user", "pk": 98, "fields": {"password": "pbkdf2_sha256$30000$nbkZrF7fDTCL$Gs2AA+54g4/muEQBrlYxgILMLN3EKwi7hLcX7UEsQgc=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:19Z", "username": "evelyn78", "name": "Irene White", "email": "ann@jabbercube.com", "role": "User", "avatar": "", "wechat": "elizabeth90", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Donec diam neque, vestibulum eget, vulputate ut, ultrices vel, augue.", "is_first_login": true, "date_expired": "2086-08-29T01:55:19Z", "created_by": "sara86", "user_permissions": [], "groups": [1, 90]}}, {"model": "users.user", "pk": 99, "fields": {"password": "pbkdf2_sha256$30000$LRQ6c9p5TaHK$ZR1LflnFcbrFu287KB82Rlz18zEBaSCMdZTLjXx60Q8=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:19Z", "username": "jane86", "name": "Denise Davis", "email": "bonnie@eidel.com", "role": "Admin", "avatar": "", "wechat": "susan84", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Curabitur in libero ut massa volutpat convallis.", "is_first_login": true, "date_expired": "2086-08-29T01:55:19Z", "created_by": "carolyn87", "user_permissions": [], "groups": [1, 96]}}, {"model": "authtoken.token", "pk": "0052f4d9b32f048bbd82bdd78b6e3089bb01bd2b", "fields": {"user": 77, "created": "2016-09-15T01:55:18Z"}}, {"model": "authtoken.token", "pk": "063c7c58e2873bead8bbf29ecf9551f04ec77680", "fields": {"user": 33, "created": "2016-09-15T01:55:14Z"}}, {"model": "authtoken.token", "pk": "077b9ce3bfe3e1147532902dada3cabbc1ceb5e1", "fields": {"user": 1, "created": "2016-09-14T15:34:43Z"}}, {"model": "authtoken.token", "pk": "0a818ff504de3ca8c2e08c2d9c68eed8d46fe9a1", "fields": {"user": 11, "created": "2016-09-15T01:55:13Z"}}, {"model": "authtoken.token", "pk": "0b89fb24dcd3fbbd8bc5e85434c6d78869f7351f", "fields": {"user": 46, "created": "2016-09-15T01:55:15Z"}}, {"model": "authtoken.token", "pk": "0cf3cd51ff1f526f5d0cecf5c8dedaa6e318645c", "fields": {"user": 64, "created": "2016-09-15T01:55:17Z"}}, {"model": "authtoken.token", "pk": "0f62e2271f3e7c4e3471da1f3ef82777d7e799ae", "fields": {"user": 32, "created": "2016-09-15T01:55:14Z"}}, {"model": "authtoken.token", "pk": "12a99652b335ead9b880a6752bb2c562a9511636", "fields": {"user": 47, "created": "2016-09-15T01:55:15Z"}}, {"model": "authtoken.token", "pk": "132968929c1f44bf9bfcdd7955ac53a5b2a8c745", "fields": {"user": 18, "created": "2016-09-15T01:55:13Z"}}, {"model": "authtoken.token", "pk": "14798fe789c1180faf00e52e3bb79ff5a47c8d43", "fields": {"user": 42, "created": "2016-09-15T01:55:15Z"}}, {"model": "authtoken.token", "pk": "15a17d944cad348deca2ef3b834fc7dd63247860", "fields": {"user": 6, "created": "2016-09-15T01:55:12Z"}}, {"model": "authtoken.token", "pk": "162dd083febc79004495190a3821d63ae48866b3", "fields": {"user": 94, "created": "2016-09-15T01:55:19Z"}}, {"model": "authtoken.token", "pk": "174aaeabc95f0c43a74c7a4abd42a055b88cd5a6", "fields": {"user": 65, "created": "2016-09-15T01:55:17Z"}}, {"model": "authtoken.token", "pk": "17f84f34d96cae1be23814ab1b273c14f47d9eff", "fields": {"user": 74, "created": "2016-09-15T01:55:18Z"}}, {"model": "authtoken.token", "pk": "258c867538c3dc1a7ba91ec0451588b4532af5eb", "fields": {"user": 85, "created": "2016-09-15T01:55:18Z"}}, {"model": "authtoken.token", "pk": "27198516f392eae6e1b573c58a16b2c7e66096b0", "fields": {"user": 72, "created": "2016-09-15T01:55:17Z"}}, {"model": "authtoken.token", "pk": "29ac945773f8b90d8062fa171edf66e332d2f942", "fields": {"user": 49, "created": "2016-09-15T01:55:15Z"}}, {"model": "authtoken.token", "pk": "2b66ed29cdc0503d08a93185315c567d48be3ec8", "fields": {"user": 12, "created": "2016-09-15T01:55:13Z"}}, {"model": "authtoken.token", "pk": "2f42e915df0ceae877bc17a705b907af74ccc196", "fields": {"user": 62, "created": "2016-09-15T01:55:17Z"}}, {"model": "authtoken.token", "pk": "2f51aec4240d5dec1103b1b4681692f5ff78d18d", "fields": {"user": 67, "created": "2016-09-15T01:55:17Z"}}, {"model": "authtoken.token", "pk": "32ab6bbda35d8032a40096b768f00ba000b19846", "fields": {"user": 3, "created": "2016-09-15T01:55:12Z"}}, {"model": "authtoken.token", "pk": "33476ce7224222f8d0600230d4b0a9b83c50d387", "fields": {"user": 57, "created": "2016-09-15T01:55:16Z"}}, {"model": "authtoken.token", "pk": "3bd78b8360870becc45f952e20a5cbdb293b59c2", "fields": {"user": 36, "created": "2016-09-15T01:55:14Z"}}, {"model": "authtoken.token", "pk": "3e6f61f6d77129991a26ddf83a6f317556a61a53", "fields": {"user": 75, "created": "2016-09-15T01:55:18Z"}}, {"model": "authtoken.token", "pk": "3f18ba1a5d815b958538904e51bbb990408fca26", "fields": {"user": 2, "created": "2016-09-15T01:55:12Z"}}, {"model": "authtoken.token", "pk": "4096d6ed67e12d7dd63d27b87c155a328dffca28", "fields": {"user": 60, "created": "2016-09-15T01:55:16Z"}}, {"model": "authtoken.token", "pk": "42da7a87648dd1a6e172d63ee7f6c743ec642237", "fields": {"user": 83, "created": "2016-09-15T01:55:18Z"}}, {"model": "authtoken.token", "pk": "450379e85f2839dbff7cbd5243da8a25b4280a97", "fields": {"user": 78, "created": "2016-09-15T01:55:18Z"}}, {"model": "authtoken.token", "pk": "474942254cedf9972161fb96eab79a32f0dae7dd", "fields": {"user": 88, "created": "2016-09-15T01:55:19Z"}}, {"model": "authtoken.token", "pk": "48c1e83245fbca16c008b295ba47223e8cee251b", "fields": {"user": 24, "created": "2016-09-15T01:55:14Z"}}, {"model": "authtoken.token", "pk": "490440da4da363d2a338f424e576829d25109c1f", "fields": {"user": 71, "created": "2016-09-15T01:55:17Z"}}, {"model": "authtoken.token", "pk": "4f5770ad3b5305f518cfe9531bb190e254672ead", "fields": {"user": 73, "created": "2016-09-15T01:55:17Z"}}, {"model": "authtoken.token", "pk": "4fad3d0bf66e04699bac60b399c2b055726fee91", "fields": {"user": 91, "created": "2016-09-15T01:55:19Z"}}, {"model": "authtoken.token", "pk": "526131bf8ca38ac65a2417c9d8af87d181360a51", "fields": {"user": 95, "created": "2016-09-15T01:55:19Z"}}, {"model": "authtoken.token", "pk": "55d81e2650f5c94356d2db022d6f52de87f5037c", "fields": {"user": 10, "created": "2016-09-15T01:55:13Z"}}, {"model": "authtoken.token", "pk": "56b72c93c249fa199651df5b8c7e7ea50b651648", "fields": {"user": 9, "created": "2016-09-15T01:55:13Z"}}, {"model": "authtoken.token", "pk": "596aae3ab94eefcc304d609d3b525918fb0bb708", "fields": {"user": 14, "created": "2016-09-15T01:55:13Z"}}, {"model": "authtoken.token", "pk": "63cb55f9220696383ccd8b748fc61f6c54f83da1", "fields": {"user": 45, "created": "2016-09-15T01:55:15Z"}}, {"model": "authtoken.token", "pk": "64ff8a3fe8e004d192a4fb32b0e61395cadf5fdf", "fields": {"user": 28, "created": "2016-09-15T01:55:14Z"}}, {"model": "authtoken.token", "pk": "65dcacc5fc2bb2bafbe20e40e6c103c472b8ddbf", "fields": {"user": 44, "created": "2016-09-15T01:55:15Z"}}, {"model": "authtoken.token", "pk": "67fc4320b885e9c7cb056eea008b47ba1bfa4408", "fields": {"user": 80, "created": "2016-09-15T01:55:18Z"}}, {"model": "authtoken.token", "pk": "6adcf213cfad9559fcbffbcb6db2fc6a0144d00b", "fields": {"user": 34, "created": "2016-09-15T01:55:14Z"}}, {"model": "authtoken.token", "pk": "6b859b44bf73d70dae1baa9922f307b018ccaaef", "fields": {"user": 29, "created": "2016-09-15T01:55:14Z"}}, {"model": "authtoken.token", "pk": "6bd96294132c03417d3e32180790deaa41eecde6", "fields": {"user": 63, "created": "2016-09-15T01:55:17Z"}}, {"model": "authtoken.token", "pk": "6eee1352b3a7f20467a3e8bf8b718369e9daabe3", "fields": {"user": 52, "created": "2016-09-15T01:55:16Z"}}, {"model": "authtoken.token", "pk": "6f7fb132213b495b946b1fcc49ed3bf366d9818d", "fields": {"user": 96, "created": "2016-09-15T01:55:19Z"}}, {"model": "authtoken.token", "pk": "6fea9a08ca65a17067ae9a373c2c33b8cfa9d4b7", "fields": {"user": 21, "created": "2016-09-15T01:55:13Z"}}, {"model": "authtoken.token", "pk": "71a18ea26318d42de342e0b96082a1b155cf240f", "fields": {"user": 89, "created": "2016-09-15T01:55:19Z"}}, {"model": "authtoken.token", "pk": "727a8a6446a3fa98da82162111d3274bcb784886", "fields": {"user": 40, "created": "2016-09-15T01:55:15Z"}}, {"model": "authtoken.token", "pk": "7503bd5d951691ae60a05435be255774c4a97049", "fields": {"user": 20, "created": "2016-09-15T01:55:13Z"}}, {"model": "authtoken.token", "pk": "781077e250503c0dbfb14722d8badc6dd1e7a700", "fields": {"user": 61, "created": "2016-09-15T01:55:16Z"}}, {"model": "authtoken.token", "pk": "7b867a5632756d436009c84421dbc14e06dc46c3", "fields": {"user": 54, "created": "2016-09-15T01:55:16Z"}}, {"model": "authtoken.token", "pk": "7e568eba6054d39b65cd026ab8f2d8a475c88415", "fields": {"user": 55, "created": "2016-09-15T01:55:16Z"}}, {"model": "authtoken.token", "pk": "85efaf02b19a224bc749c0bb99ee82a6fda119d1", "fields": {"user": 68, "created": "2016-09-15T01:55:17Z"}}, {"model": "authtoken.token", "pk": "86425234af7f6f044bd50516dbffd520871eadc5", "fields": {"user": 17, "created": "2016-09-15T01:55:13Z"}}, {"model": "authtoken.token", "pk": "87b741af6785494d68af310c4465cfe07e7c728d", "fields": {"user": 39, "created": "2016-09-15T01:55:15Z"}}, {"model": "authtoken.token", "pk": "891e8b9ad3ce558aeab4e98daf4d7a811afa9709", "fields": {"user": 90, "created": "2016-09-15T01:55:19Z"}}, {"model": "authtoken.token", "pk": "893137746504f500b297478ea30b63df301f946a", "fields": {"user": 79, "created": "2016-09-15T01:55:18Z"}}, {"model": "authtoken.token", "pk": "8bf67db798fce8129b51b8cefa3f372ad6bb2d5e", "fields": {"user": 70, "created": "2016-09-15T01:55:17Z"}}, {"model": "authtoken.token", "pk": "8d02135b8f789d855511da02f700ac18669c4834", "fields": {"user": 48, "created": "2016-09-15T01:55:15Z"}}, {"model": "authtoken.token", "pk": "8dd57211cdae4436b2eed83336b2f12f444f1052", "fields": {"user": 87, "created": "2016-09-15T01:55:19Z"}}, {"model": "authtoken.token", "pk": "8f0a8790af4d1e55002fbd1c6eca1444fe91cfca", "fields": {"user": 7, "created": "2016-09-15T01:55:12Z"}}, {"model": "authtoken.token", "pk": "96151a96e03feefb09f7ea86625bab693253661a", "fields": {"user": 37, "created": "2016-09-15T01:55:15Z"}}, {"model": "authtoken.token", "pk": "96e6f5c3e309c8ad8c1d7c8878b41b56cde3ceee", "fields": {"user": 27, "created": "2016-09-15T01:55:14Z"}}, {"model": "authtoken.token", "pk": "97759930a8cc3e9adaba6a291e274c2aabd89ded", "fields": {"user": 31, "created": "2016-09-15T01:55:14Z"}}, {"model": "authtoken.token", "pk": "994610158c0a223ecff8f05ba2fb1e970e54a318", "fields": {"user": 26, "created": "2016-09-15T01:55:14Z"}}, {"model": "authtoken.token", "pk": "99fd4d123474fee0364d16a92676af99ed15d36f", "fields": {"user": 66, "created": "2016-09-15T01:55:17Z"}}, {"model": "authtoken.token", "pk": "9cd9ed991bae13b02886d5a5e6110ac31b8d3712", "fields": {"user": 81, "created": "2016-09-15T01:55:18Z"}}, {"model": "authtoken.token", "pk": "9d6aa86d49ad31b4740c227edb28f6f4c8d87a24", "fields": {"user": 8, "created": "2016-09-15T01:55:12Z"}}, {"model": "authtoken.token", "pk": "9efedb9c8470613fa518e3bc470ea865365447a2", "fields": {"user": 35, "created": "2016-09-15T01:55:14Z"}}, {"model": "authtoken.token", "pk": "a39a81849cd68c5fd1604fb02011157db5a479ef", "fields": {"user": 97, "created": "2016-09-15T01:55:19Z"}}, {"model": "authtoken.token", "pk": "a461ec72157bdba40a1dd35f4c757ab4c8d55085", "fields": {"user": 93, "created": "2016-09-15T01:55:19Z"}}, {"model": "authtoken.token", "pk": "a59365a3beb40c1214ace0be23fea00a39bbb5c7", "fields": {"user": 98, "created": "2016-09-15T01:55:19Z"}}, {"model": "authtoken.token", "pk": "ade619e8cf991ab2af8d8f9810da4056041aa113", "fields": {"user": 56, "created": "2016-09-15T01:55:16Z"}}, {"model": "authtoken.token", "pk": "b13695f80f650c85d41ad003bfd3bece61f95da3", "fields": {"user": 43, "created": "2016-09-15T01:55:15Z"}}, {"model": "authtoken.token", "pk": "b64314163e0f6d6d7400895a24df567e8c2da378", "fields": {"user": 41, "created": "2016-09-15T01:55:15Z"}}, {"model": "authtoken.token", "pk": "b8868b92dbc83914f7751373553863eb782426d8", "fields": {"user": 38, "created": "2016-09-15T01:55:15Z"}}, {"model": "authtoken.token", "pk": "ba06d7f8a970127e0c38a79181eb97bce06935fd", "fields": {"user": 16, "created": "2016-09-15T01:55:13Z"}}, {"model": "authtoken.token", "pk": "bb5da543ae0dd5be4b3b205dca863e5a48b0bcd3", "fields": {"user": 50, "created": "2016-09-15T01:55:16Z"}}, {"model": "authtoken.token", "pk": "bc47ea0ba3b775969c439363be1efcf636cfc579", "fields": {"user": 86, "created": "2016-09-15T01:55:18Z"}}, {"model": "authtoken.token", "pk": "c17f59dc47af6bf154df09a574429d8cd0affd59", "fields": {"user": 30, "created": "2016-09-15T01:55:14Z"}}, {"model": "authtoken.token", "pk": "cb79ea2b425c503abff0a3ec11c5653f3e237326", "fields": {"user": 51, "created": "2016-09-15T01:55:16Z"}}, {"model": "authtoken.token", "pk": "e1b7d0309c65fbbc958d7df2ab9248857f0da4c3", "fields": {"user": 5, "created": "2016-09-15T01:55:12Z"}}, {"model": "authtoken.token", "pk": "e5055424e2239d0161eb7627d29e5c173dca28bc", "fields": {"user": 23, "created": "2016-09-15T01:55:14Z"}}, {"model": "authtoken.token", "pk": "e67e6cd279c7d0029495f15882dfd88c69ad69b1", "fields": {"user": 22, "created": "2016-09-15T01:55:13Z"}}, {"model": "authtoken.token", "pk": "e8d084f1ec91977253916104b6df590bdd49a632", "fields": {"user": 69, "created": "2016-09-15T01:55:17Z"}}, {"model": "authtoken.token", "pk": "e9f2200e6a35ab55bf65d0519b3e64cb7e1d0463", "fields": {"user": 4, "created": "2016-09-15T01:55:12Z"}}, {"model": "authtoken.token", "pk": "e9ff60aaf9eeba3f0da292e05ae84fa51fd78eaf", "fields": {"user": 92, "created": "2016-09-15T01:55:19Z"}}, {"model": "authtoken.token", "pk": "ec04f367d2865eb0a42e0ec67d8a0b17bce384ba", "fields": {"user": 84, "created": "2016-09-15T01:55:18Z"}}, {"model": "authtoken.token", "pk": "ec5bff72ee0aeeb669a7f6cea660d1cbc40bd555", "fields": {"user": 19, "created": "2016-09-15T01:55:13Z"}}, {"model": "authtoken.token", "pk": "ec85a152209f68bbed0435696a4d6b650bba58d7", "fields": {"user": 53, "created": "2016-09-15T01:55:16Z"}}, {"model": "authtoken.token", "pk": "edc41450fe78c8425d8ac97fc301335f95451166", "fields": {"user": 25, "created": "2016-09-15T01:55:14Z"}}, {"model": "authtoken.token", "pk": "ef9fe285acf84987ac730747316fe66f25b91f82", "fields": {"user": 59, "created": "2016-09-15T01:55:16Z"}}, {"model": "authtoken.token", "pk": "f02b33b00c3cb4c6030e9ff5930ab62a55b4080f", "fields": {"user": 13, "created": "2016-09-15T01:55:13Z"}}, {"model": "authtoken.token", "pk": "f31869c9e99235a75e366148c19928c55043e64c", "fields": {"user": 82, "created": "2016-09-15T01:55:18Z"}}, {"model": "authtoken.token", "pk": "f31f4d4b16f20656b4b9c1107fcba6214a63329a", "fields": {"user": 76, "created": "2016-09-15T01:55:18Z"}}, {"model": "authtoken.token", "pk": "f44d67aa9abf09fc87299a35c7d0f3cc0afb4469", "fields": {"user": 15, "created": "2016-09-15T01:55:13Z"}}, {"model": "authtoken.token", "pk": "fb5c5e8412eda7187cfe1d6ef349be3d79a7bb46", "fields": {"user": 58, "created": "2016-09-15T01:55:16Z"}}, {"model": "authtoken.token", "pk": "fcfd1cd0c6d5a7ab40297aa1a36bf0b20d3f48fa", "fields": {"user": 99, "created": "2016-09-15T01:55:19Z"}}] \ No newline at end of file From 766bd3b76d499aaa22424af7388b8e292149f64a Mon Sep 17 00:00:00 2001 From: ibuler Date: Thu, 15 Sep 2016 13:09:24 +0800 Subject: [PATCH 48/50] Move js to jumpserver.js --- apps/jumpserver/urls.py | 1 - apps/static/js/jumpserver.js | 26 ++++++++++++++++++++++++++ apps/templates/_foot_js.html | 28 ---------------------------- 3 files changed, 26 insertions(+), 29 deletions(-) diff --git a/apps/jumpserver/urls.py b/apps/jumpserver/urls.py index c93a30439..e593e60a8 100644 --- a/apps/jumpserver/urls.py +++ b/apps/jumpserver/urls.py @@ -17,7 +17,6 @@ from django.conf.urls import url, include from django.conf import settings from django.conf.urls.static import static from django.views.generic.base import TemplateView -from django.http import HttpResponseRedirect urlpatterns = [ diff --git a/apps/static/js/jumpserver.js b/apps/static/js/jumpserver.js index bb815c02a..8bd303f2c 100644 --- a/apps/static/js/jumpserver.js +++ b/apps/static/js/jumpserver.js @@ -214,4 +214,30 @@ function APIUpdateAttr(props) { return true; } +// Sweet Alert for Delete +function objectDelete(obj, name, url){ + swal({ + title: 'Are you sure delete ?', + text: "【" + name + "】", + type: "warning", + showCancelButton: true, + cancelButtonText: 'Cancel', + confirmButtonColor: "#DD6B55", + confirmButtonText: 'Yes, delete it!', + closeOnConfirm: false + }, function () { + $.ajax({ + type : "post", + url : url, + data : { + }, + dataType : "text", + success : function(data) { + swal('Deleted!' , "【"+name+"】"+"has been deleted.", "success"); + $(obj).parent().parent().remove(); + } + }) + }); +} + var jumpserver = {}; diff --git a/apps/templates/_foot_js.html b/apps/templates/_foot_js.html index b6b0851c5..04bac17dd 100644 --- a/apps/templates/_foot_js.html +++ b/apps/templates/_foot_js.html @@ -16,32 +16,4 @@ $('textarea').attr('rows', 5); }); - -// Sweet Alert for Delete -// Todo: Change name to objectDelete(obj, name, url) -function objectDelete(obj, name, url){ - swal({ - title: "{% trans 'Are you sure delete ?' %}", - text: "【" + name + "】", - type: "warning", - showCancelButton: true, - cancelButtonText: "{% trans 'Cancel' %}", - confirmButtonColor: "#DD6B55", - confirmButtonText: "{% trans 'Yes, delete it!' %}", - closeOnConfirm: false - }, function () { - $.ajax({ - type : "post", - url : url, - data : { - }, - dataType : "text", - success : function(data) { - swal("{% trans 'Deleted!' %}", "【"+name+"】"+"{% trans 'has been deleted.' %}", "success"); - $(obj).parent().parent().remove(); - } - }) - }); -} - From 7984806b385a42700e6cb6b466dba005970ee61d Mon Sep 17 00:00:00 2001 From: "xiaokong1937@gmail.com" <763691951@qq.com> Date: Thu, 15 Sep 2016 16:54:00 +0800 Subject: [PATCH 49/50] change user ssh reset type from private key to public key --- apps/users/api.py | 10 ++-- apps/users/forms.py | 26 +++++++---- apps/users/templates/users/user_detail.html | 51 +++++++++------------ apps/users/utils.py | 22 +++++++++ apps/users/views.py | 6 --- 5 files changed, 69 insertions(+), 46 deletions(-) diff --git a/apps/users/api.py b/apps/users/api.py index bb995d0f8..a2e196456 100644 --- a/apps/users/api.py +++ b/apps/users/api.py @@ -6,7 +6,6 @@ import logging from rest_framework import generics from .serializers import UserSerializer, UserGroupSerializer, UserAttributeSerializer, UserGroupEditSerializer -from .serializers import UserPKUpdateSerializer from .models import User, UserGroup @@ -60,15 +59,20 @@ class UserResetPasswordApi(generics.UpdateAPIView): # Note: we are not updating the user object here. # We just do the reset-password staff. user = self.get_object() + import uuid + user.password_raw = str(uuid.uuid4()) + user.save() from .utils import send_reset_password_mail send_reset_password_mail(user) class UserResetPKApi(generics.UpdateAPIView): queryset = User.objects.all() - serializer_class = UserPKUpdateSerializer + serializer_class = UserGroupEditSerializer def perform_update(self, serializer): user = self.get_object() - user.private_key = serializer.validated_data['_private_key'] + user._public_key = '' user.save() + from .utils import send_reset_ssh_key_mail + send_reset_ssh_key_mail(user) diff --git a/apps/users/forms.py b/apps/users/forms.py index a24565f89..5f0e3bed6 100644 --- a/apps/users/forms.py +++ b/apps/users/forms.py @@ -79,12 +79,22 @@ class UserInfoForm(forms.Form): class UserKeyForm(forms.Form): - private_key = forms.CharField(max_length=5000, widget=forms.Textarea, label=_('private key')) + public_key = forms.CharField( + label=_('ssh public key'), max_length=5000, + widget=forms.Textarea(attrs={'placeholder': _('ssh-rsa AAAA...')}), + help_text=_('Paste your id_ras.pub here.')) - def clean_private_key(self): - from users.utils import validate_ssh_pk - ssh_pk = self.cleaned_data['private_key'] - checked, reason = validate_ssh_pk(ssh_pk) - if not checked: - raise forms.ValidationError(_('Not a valid ssh private key.')) - return ssh_pk + def clean_public_key(self): + from sshpubkeys import SSHKey + from sshpubkeys.exceptions import InvalidKeyException + public_key = self.cleaned_data['public_key'] + ssh = SSHKey(public_key) + try: + ssh.parse() + except InvalidKeyException as e: + print e + raise forms.ValidationError(_('Not a valid ssh public key')) + except NotImplementedError as e: + print e + raise forms.ValidationError(_('Not a valid ssh public key')) + return public_key diff --git a/apps/users/templates/users/user_detail.html b/apps/users/templates/users/user_detail.html index 6073d5d13..89ef5a0e2 100644 --- a/apps/users/templates/users/user_detail.html +++ b/apps/users/templates/users/user_detail.html @@ -152,7 +152,7 @@
    @@ -203,7 +203,6 @@ - {% include 'users/_user_reset_pk_modal.html' %} {% endblock %} {% block custom_foot_js %} {% endblock %} diff --git a/apps/users/utils.py b/apps/users/utils.py index 13076a106..a94de773a 100644 --- a/apps/users/utils.py +++ b/apps/users/utils.py @@ -128,6 +128,28 @@ def send_reset_password_mail(user): send_mail_async.delay(subject, message, recipient_list, html_message=message) +def send_reset_ssh_key_mail(user): + subject = _('SSH Key Reset') + recipient_list = [user.email] + message = _(""" + Hello %(name)s: +
    + Your ssh public key has been reset by site administrator. + Please login and reset your ssh public key. +
    + Login direct + +
    + """) % { + 'name': user.name, + 'login_url': reverse('users:login', external=True), + } + if settings.DEBUG: + logger.debug(message) + + send_mail_async.delay(subject, message, recipient_list, html_message=message) + + def validate_ssh_pk(text): """ Expects a SSH private key as string. diff --git a/apps/users/views.py b/apps/users/views.py index c752bc2eb..73b5c072f 100644 --- a/apps/users/views.py +++ b/apps/users/views.py @@ -2,8 +2,6 @@ from __future__ import unicode_literals -import logging - from django.conf import settings from django.contrib.auth import login as auth_login, logout as auth_logout from django.contrib.auth.mixins import LoginRequiredMixin @@ -52,10 +50,6 @@ class UserLoginView(FormView): auth_login(self.request, form.get_user()) return redirect(self.get_success_url()) - def form_invalid(self, form): - logger.debug(form.errors) - return super(UserLoginView, self).form_invalid(form) - def get_success_url(self): if self.request.user.is_first_login: return reverse('users:user-first-login') From db5d04c37f99c599cbdcef84e95599fa0e12fa78 Mon Sep 17 00:00:00 2001 From: "xiaokong1937@gmail.com" <763691951@qq.com> Date: Fri, 16 Sep 2016 08:45:29 +0800 Subject: [PATCH 50/50] fix #13 --- apps/jumpserver/settings.py | 3 ++- requirements.txt | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/jumpserver/settings.py b/apps/jumpserver/settings.py index 8bbaf14bb..31c39fe49 100644 --- a/apps/jumpserver/settings.py +++ b/apps/jumpserver/settings.py @@ -314,4 +314,5 @@ CAPTCHA_IMAGE_SIZE = (75, 33) CAPTCHA_FOREGROUND_COLOR = '#001100' # - +SESSION_COOKIE_AGE = 10800 # 3 hours +SESSION_SAVE_EVERY_REQUEST = True diff --git a/requirements.txt b/requirements.txt index ffc458d20..ab6ea99b2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -18,3 +18,4 @@ celery==3.1.23 ansible==2.1.1.0 django-simple-captcha==0.5.2 django-formtools==1.0 +sshpubkeys==2.2.0
    - + {% for asset_group in asset_groups_remain %} + {% endfor %}
    {{ user_group.name }}{{ asset_group.name }} {{ idc.address }} {% trans 'Update' %} - {% trans 'Delete' %} + {% trans 'Delete' %}
    {% trans 'Reset ssh key' %}: - +