├── .gitattributes
├── LICENSE
├── README.md
├── apps
├── assets
│ ├── __init__.py
│ ├── admin.py
│ ├── api.py
│ ├── apps.py
│ ├── forms.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── serializers.py
│ ├── templates
│ │ ├── asset
│ │ │ ├── asset_create.html
│ │ │ ├── asset_detail.html
│ │ │ ├── asset_list.html
│ │ │ └── asset_update.html
│ │ └── group
│ │ │ ├── group_create.html
│ │ │ ├── group_list.html
│ │ │ └── group_update.html
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── jobs
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── forms.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── templates
│ │ ├── job
│ │ │ ├── job_create.html
│ │ │ ├── job_list.html
│ │ │ ├── job_update.html
│ │ │ └── run_cmd.html
│ │ └── type
│ │ │ ├── type_create.html
│ │ │ ├── type_list.html
│ │ │ └── type_update.html
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── tasks
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── forms.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tasks.py
│ ├── templates
│ │ ├── crontab
│ │ │ ├── crontab_create.html
│ │ │ ├── crontab_list.html
│ │ │ └── crontab_update.html
│ │ ├── interval
│ │ │ ├── interval_create.html
│ │ │ ├── interval_list.html
│ │ │ └── interval_update.html
│ │ └── task
│ │ │ ├── task_create.html
│ │ │ ├── task_list.html
│ │ │ ├── task_result_list.html
│ │ │ └── task_update.html
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── users
│ ├── __init__.py
│ ├── admin.py
│ ├── api.py
│ ├── apps.py
│ ├── forms.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── serializers.py
│ ├── templates
│ │ ├── role
│ │ │ ├── role_create.html
│ │ │ ├── role_list.html
│ │ │ └── role_update.html
│ │ └── user
│ │ │ ├── user_create.html
│ │ │ ├── user_list.html
│ │ │ └── user_update.html
│ ├── tests.py
│ ├── urls.py
│ └── views.py
└── utils
│ ├── auth
│ ├── __init__.py
│ └── mixins.py
│ ├── config.ini
│ ├── generic
│ ├── __init__.py
│ ├── jobs.py
│ └── shoutcuts.py
│ └── remote
│ ├── __init__.py
│ ├── para.py
│ └── salt.py
├── docs
└── img
│ ├── Crontab列表.png
│ ├── Interval列表.png
│ ├── 任务结果.png
│ ├── 作业列表.png
│ ├── 作业类型.png
│ ├── 功能说明.png
│ ├── 周期任务.png
│ ├── 执行命令.png
│ ├── 控制面板.png
│ ├── 用户列表.png
│ ├── 用户角色.png
│ ├── 资产列表.png
│ └── 资产组.png
├── locale
└── zh_hans
│ └── LC_MESSAGES
│ ├── django.mo
│ └── django.po
├── manage.py
├── pingAdmin
├── __init__.py
├── celery.py
├── settings.py
├── urls.py
├── views.py
└── wsgi.py
├── requirements.txt
├── static
├── css
│ ├── animate.css
│ ├── bootstrap-select.min.css
│ ├── bootstrap-validator.css
│ ├── bootstrap.min.css
│ ├── colors
│ │ ├── blue-dark.css
│ │ ├── blue.css
│ │ ├── default-dark.css
│ │ ├── default.css
│ │ ├── gray-dark.css
│ │ ├── gray.css
│ │ ├── green-dark.css
│ │ ├── green.css
│ │ ├── megna-dark.css
│ │ ├── megna.css
│ │ ├── purple-dark.css
│ │ ├── purple.css
│ │ └── red-dark.css
│ ├── icons
│ │ ├── linea-icons
│ │ │ └── linea.css
│ │ └── material-design-iconic-font
│ │ │ ├── css
│ │ │ ├── material-design-iconic-font.css
│ │ │ ├── material-design-iconic-font.min.css
│ │ │ └── materialdesignicons.min.css
│ │ │ └── fonts
│ │ │ ├── Material-Design-Iconic-Font.eot
│ │ │ ├── Material-Design-Iconic-Font.svg
│ │ │ ├── Material-Design-Iconic-Font.ttf
│ │ │ ├── Material-Design-Iconic-Font.woff
│ │ │ ├── Material-Design-Iconic-Font.woff2
│ │ │ ├── materialdesignicons-webfont.eot
│ │ │ ├── materialdesignicons-webfont.svg
│ │ │ ├── materialdesignicons-webfont.ttf
│ │ │ ├── materialdesignicons-webfont.woff
│ │ │ └── materialdesignicons-webfont.woff2
│ ├── pingAdmin.css
│ ├── spinners.css
│ └── style.css
├── fonts
│ ├── glyphicons-halflings-regular.eot
│ ├── glyphicons-halflings-regular.svg
│ ├── glyphicons-halflings-regular.ttf
│ ├── glyphicons-halflings-regular.woff
│ └── glyphicons-halflings-regular.woff2
├── images
│ ├── base
│ │ ├── admin-logo-dark.png
│ │ ├── admin-logo.png
│ │ ├── admin-text.png
│ │ ├── busy.gif
│ │ ├── favicon.png
│ │ ├── headline.png
│ │ └── login-register.jpg
│ ├── profiles
│ │ └── profile.jpg
│ └── users
│ │ ├── 1.jpg
│ │ └── varun.jpg
├── js
│ ├── bootstrap-select.min.js
│ ├── bootstrap-validator.min.js
│ ├── bootstrap.min.js
│ ├── custom.min.js
│ ├── footable-init.js
│ ├── jquery.min.js
│ ├── jquery.slimscroll.js
│ ├── pingAdmin.js
│ ├── validator-init.js
│ └── waves.js
└── plugins
│ ├── codemirror
│ ├── css
│ │ ├── codemirror.css
│ │ ├── dracula.css
│ │ ├── eclipse.css
│ │ └── merge.css
│ └── js
│ │ ├── codemirror.js
│ │ ├── diff_match_patch.js
│ │ ├── formatting.js
│ │ ├── javascript.js
│ │ ├── merge.js
│ │ └── nginx.js
│ ├── datatables
│ ├── css
│ │ ├── buttons.bootstrap.min.css
│ │ ├── buttons.dataTables.min.css
│ │ └── jquery.dataTables.min.css
│ └── js
│ │ ├── buttons.bootstrap.min.js
│ │ ├── dataTables.buttons.min.js
│ │ └── jquery.dataTables.min.js
│ ├── datetimepicker
│ ├── css
│ │ └── bootstrap-datetimepicker.min.css
│ └── js
│ │ ├── bootstrap-datetimepicker.min.js
│ │ └── bootstrap-datetimepicker.zh-CN.js
│ ├── filter
│ ├── css
│ │ ├── jquery-filer.css
│ │ ├── jquery.filer.css
│ │ └── themes
│ │ │ └── jquery.filer-dragdropbox-theme.css
│ └── js
│ │ ├── custom.js
│ │ ├── jquery.filer.js
│ │ ├── jquery.filer.min.js
│ │ └── prettify.js
│ ├── footable
│ ├── css
│ │ ├── fonts
│ │ │ ├── footable.eot
│ │ │ ├── footable.svg
│ │ │ ├── footable.ttf
│ │ │ └── footable.woff
│ │ └── footable.core.css
│ └── js
│ │ └── footable.all.min.js
│ ├── icheck
│ ├── js
│ │ └── icheck.min.js
│ └── skins
│ │ ├── all.css
│ │ ├── flat
│ │ ├── _all.css
│ │ ├── aero.css
│ │ ├── aero.png
│ │ ├── aero@2x.png
│ │ ├── blue.css
│ │ ├── blue.png
│ │ ├── blue@2x.png
│ │ ├── flat.css
│ │ ├── flat.png
│ │ ├── flat@2x.png
│ │ ├── green.css
│ │ ├── green.png
│ │ ├── green@2x.png
│ │ ├── grey.css
│ │ ├── grey.png
│ │ ├── grey@2x.png
│ │ ├── orange.css
│ │ ├── orange.png
│ │ ├── orange@2x.png
│ │ ├── pink.css
│ │ ├── pink.png
│ │ ├── pink@2x.png
│ │ ├── purple.css
│ │ ├── purple.png
│ │ ├── purple@2x.png
│ │ ├── red.css
│ │ ├── red.png
│ │ ├── red@2x.png
│ │ ├── yellow.css
│ │ ├── yellow.png
│ │ └── yellow@2x.png
│ │ ├── futurico
│ │ ├── futurico.css
│ │ ├── futurico.png
│ │ └── futurico@2x.png
│ │ ├── line
│ │ ├── _all.css
│ │ ├── aero.css
│ │ ├── blue.css
│ │ ├── green.css
│ │ ├── grey.css
│ │ ├── line.css
│ │ ├── line.png
│ │ ├── line@2x.png
│ │ ├── orange.css
│ │ ├── pink.css
│ │ ├── purple.css
│ │ ├── red.css
│ │ └── yellow.css
│ │ ├── minimal
│ │ ├── _all.css
│ │ ├── aero.css
│ │ ├── aero.png
│ │ ├── aero@2x.png
│ │ ├── blue.css
│ │ ├── blue.png
│ │ ├── blue@2x.png
│ │ ├── green.css
│ │ ├── green.png
│ │ ├── green@2x.png
│ │ ├── grey.css
│ │ ├── grey.png
│ │ ├── grey@2x.png
│ │ ├── minimal.css
│ │ ├── minimal.png
│ │ ├── minimal@2x.png
│ │ ├── orange.css
│ │ ├── orange.png
│ │ ├── orange@2x.png
│ │ ├── pink.css
│ │ ├── pink.png
│ │ ├── pink@2x.png
│ │ ├── purple.css
│ │ ├── purple.png
│ │ ├── purple@2x.png
│ │ ├── red.css
│ │ ├── red.png
│ │ ├── red@2x.png
│ │ ├── yellow.css
│ │ ├── yellow.png
│ │ └── yellow@2x.png
│ │ ├── polaris
│ │ ├── polaris.css
│ │ ├── polaris.png
│ │ └── polaris@2x.png
│ │ └── square
│ │ ├── _all.css
│ │ ├── aero.css
│ │ ├── aero.png
│ │ ├── aero@2x.png
│ │ ├── blue.css
│ │ ├── blue.png
│ │ ├── blue@2x.png
│ │ ├── green.css
│ │ ├── green.png
│ │ ├── green@2x.png
│ │ ├── grey.css
│ │ ├── grey.png
│ │ ├── grey@2x.png
│ │ ├── orange.css
│ │ ├── orange.png
│ │ ├── orange@2x.png
│ │ ├── pink.css
│ │ ├── pink.png
│ │ ├── pink@2x.png
│ │ ├── purple.css
│ │ ├── purple.png
│ │ ├── purple@2x.png
│ │ ├── red.css
│ │ ├── red.png
│ │ ├── red@2x.png
│ │ ├── square.css
│ │ ├── square.png
│ │ ├── square@2x.png
│ │ ├── yellow.css
│ │ ├── yellow.png
│ │ └── yellow@2x.png
│ ├── icons
│ ├── font-awesome
│ │ ├── css
│ │ │ ├── font-awesome.css
│ │ │ └── font-awesome.min.css
│ │ └── fonts
│ │ │ ├── FontAwesome.otf
│ │ │ ├── fontawesome-webfont-old.ttf
│ │ │ ├── fontawesome-webfont.eot
│ │ │ ├── fontawesome-webfont.svg
│ │ │ ├── fontawesome-webfont.ttf
│ │ │ ├── fontawesome-webfont.woff
│ │ │ └── fontawesome-webfont.woff2
│ ├── linea-icons
│ │ ├── fonts
│ │ │ ├── linea-arrows-10.eot
│ │ │ ├── linea-arrows-10.svg
│ │ │ ├── linea-arrows-10.ttf
│ │ │ ├── linea-arrows-10.woff
│ │ │ ├── linea-basic-10.eot
│ │ │ ├── linea-basic-10.svg
│ │ │ ├── linea-basic-10.ttf
│ │ │ ├── linea-basic-10.woff
│ │ │ ├── linea-basic-elaboration-10.eot
│ │ │ ├── linea-basic-elaboration-10.svg
│ │ │ ├── linea-basic-elaboration-10.ttf
│ │ │ ├── linea-basic-elaboration-10.woff
│ │ │ ├── linea-ecommerce-10.eot
│ │ │ ├── linea-ecommerce-10.svg
│ │ │ ├── linea-ecommerce-10.ttf
│ │ │ ├── linea-ecommerce-10.woff
│ │ │ ├── linea-music-10.eot
│ │ │ ├── linea-music-10.svg
│ │ │ ├── linea-music-10.ttf
│ │ │ ├── linea-music-10.woff
│ │ │ ├── linea-software-10.eot
│ │ │ ├── linea-software-10.svg
│ │ │ ├── linea-software-10.ttf
│ │ │ ├── linea-software-10.woff
│ │ │ ├── linea-weather-10.eot
│ │ │ ├── linea-weather-10.svg
│ │ │ ├── linea-weather-10.ttf
│ │ │ └── linea-weather-10.woff
│ │ └── linea.css
│ ├── simple-line-icons
│ │ ├── css
│ │ │ └── simple-line-icons.css
│ │ └── fonts
│ │ │ ├── Simple-Line-Icons.eot
│ │ │ ├── Simple-Line-Icons.svg
│ │ │ ├── Simple-Line-Icons.ttf
│ │ │ ├── Simple-Line-Icons.woff
│ │ │ └── Simple-Line-Icons.woff2
│ ├── themify-icons
│ │ ├── fonts
│ │ │ ├── themify.eot
│ │ │ ├── themify.svg
│ │ │ ├── themify.ttf
│ │ │ └── themify.woff
│ │ ├── ie7
│ │ │ ├── ie7.css
│ │ │ └── ie7.js
│ │ └── themify-icons.css
│ └── weather-icons
│ │ ├── css
│ │ ├── weather-icons-core.css
│ │ ├── weather-icons-variables.css
│ │ ├── weather-icons-wind.css
│ │ ├── weather-icons-wind.min.css
│ │ ├── weather-icons.css
│ │ └── weather-icons.min.css
│ │ └── font
│ │ ├── weathericons-regular-webfont.eot
│ │ ├── weathericons-regular-webfont.svg
│ │ ├── weathericons-regular-webfont.ttf
│ │ ├── weathericons-regular-webfont.woff
│ │ └── weathericons-regular-webfont.woff2
│ ├── multiselect
│ ├── css
│ │ └── style.css
│ └── js
│ │ ├── multiselect.js
│ │ └── multiselect.min.js
│ ├── sidebar-nav
│ ├── css
│ │ └── sidebar-nav.min.css
│ └── js
│ │ └── sidebar-nav.min.js
│ ├── styleswitcher
│ └── js
│ │ └── jQuery.style.switcher.js
│ ├── sweetalert
│ ├── css
│ │ ├── sweetalert.css
│ │ └── twitter.css
│ └── js
│ │ └── sweetalert.min.js
│ ├── switchery
│ ├── css
│ │ └── switchery.min.css
│ └── js
│ │ └── switchery.min.js
│ └── toast-master
│ ├── css
│ └── jquery.toast.css
│ └── js
│ └── jquery.toast.js
└── templates
├── 403.html
├── base
├── _base.html
├── _css.html
└── _js.html
├── index.html
├── login.html
└── profile.html
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.css linguist-language=python
2 | *.js linguist-language=python
3 | *.html linguist-language=python
--------------------------------------------------------------------------------
/apps/assets/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/apps/assets/__init__.py
--------------------------------------------------------------------------------
/apps/assets/admin.py:
--------------------------------------------------------------------------------
1 | from django.contrib import admin
2 |
3 | # Register your models here.
4 |
--------------------------------------------------------------------------------
/apps/assets/api.py:
--------------------------------------------------------------------------------
1 | from .serializers import AssetInfoSerializer, AssetGroupSerializer
2 | from .models import AssetInfo, AssetGroup
3 | from rest_framework import viewsets
4 |
5 |
6 | class AssetViewSet(viewsets.ModelViewSet):
7 | queryset = AssetInfo.objects.all()
8 | serializer_class = AssetInfoSerializer
9 |
10 |
11 | class AssetGroupViewSet(viewsets.ModelViewSet):
12 | queryset = AssetGroup.objects.all()
13 | serializer_class = AssetGroupSerializer
14 |
--------------------------------------------------------------------------------
/apps/assets/apps.py:
--------------------------------------------------------------------------------
1 | from django.apps import AppConfig
2 |
3 |
4 | class AssetsConfig(AppConfig):
5 | name = 'assets'
6 |
--------------------------------------------------------------------------------
/apps/assets/forms.py:
--------------------------------------------------------------------------------
1 | from django import forms
2 |
3 | from apps.assets.models import AssetInfo, AssetGroup
4 |
5 | __all__ = ['FileForm', 'AssetGroupForm', 'AssetForm']
6 |
7 |
8 | class FileForm(forms.Form):
9 | file = forms.FileField()
10 |
11 |
12 | class AssetGroupForm(forms.ModelForm):
13 | class Meta:
14 | model = AssetGroup
15 | fields = '__all__'
16 |
17 |
18 | class AssetForm(forms.ModelForm):
19 | class Meta:
20 | model = AssetInfo
21 | exclude = ['os', 'os_release', 'mem_total', 'cpu_model', 'cpu_count', 'sn']
22 |
--------------------------------------------------------------------------------
/apps/assets/migrations/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/apps/assets/migrations/__init__.py
--------------------------------------------------------------------------------
/apps/assets/models.py:
--------------------------------------------------------------------------------
1 | from django.db import models
2 | from django.utils.translation import ugettext_lazy as _
3 |
4 |
5 | # Create your models here.
6 |
7 | class AssetGroup(models.Model):
8 | name = models.CharField(max_length=64, verbose_name=_('Asset Group Name'), unique=True)
9 | comment = models.TextField(verbose_name=_('Comment'), blank=True, null=True)
10 |
11 | class Meta:
12 | db_table = 'AssetGroup'
13 | verbose_name = _('Asset Group')
14 | verbose_name_plural = _('Asset Group')
15 |
16 | def __str__(self):
17 | return self.name
18 |
19 |
20 | class AssetInfo(models.Model):
21 | # basic info
22 | hostname = models.CharField(max_length=64, verbose_name=_('Hostname'), unique=True)
23 | outer_ip = models.GenericIPAddressField(max_length=32, verbose_name=_('Outer IP'), null=True, blank=True)
24 | inner_ip = models.GenericIPAddressField(max_length=32, verbose_name=_('Inner IP'), null=True, blank=True)
25 | port = models.IntegerField(default=22, verbose_name=_('Port'), null=True, blank=True)
26 | username = models.CharField(max_length=64, verbose_name=_('Username'), null=True, blank=True)
27 | password = models.CharField(max_length=128, verbose_name=_('Auth Password'), default='', blank=True)
28 | groups = models.ForeignKey(to='AssetGroup', verbose_name=_('Asset Group'), on_delete=models.SET_NULL, blank=True, null=True)
29 | # system info from salt
30 | os = models.CharField(max_length=64, verbose_name=_('OS'), null=True, blank=True)
31 | os_release = models.CharField(max_length=32, verbose_name=_('OS Release'), null=True, blank=True)
32 | cpu_model = models.CharField(max_length=64, verbose_name=_('CPU Model'), null=True, blank=True)
33 | cpu_count = models.IntegerField(null=True, verbose_name=_('CPU Count'))
34 | mem_total = models.CharField(max_length=64, verbose_name=_('Memory Total'), null=True, blank=True)
35 | sn = models.CharField(max_length=64, verbose_name=_('Serial Number'), null=True, blank=True)
36 |
37 | class Meta:
38 | db_table = 'AssetInfo'
39 | verbose_name = _('Asset Info')
40 | verbose_name_plural = _('Asset Info')
41 |
42 | def __str__(self):
43 | return self.hostname
44 |
--------------------------------------------------------------------------------
/apps/assets/serializers.py:
--------------------------------------------------------------------------------
1 | from rest_framework import serializers
2 | from .models import AssetInfo, AssetGroup
3 |
4 |
5 | class AssetInfoSerializer(serializers.ModelSerializer):
6 | class Meta:
7 | model = AssetInfo
8 | fields = '__all__'
9 |
10 |
11 | class AssetGroupSerializer(serializers.ModelSerializer):
12 | class Meta:
13 | model = AssetGroup
14 | fields = '__all__'
15 |
--------------------------------------------------------------------------------
/apps/assets/templates/group/group_update.html:
--------------------------------------------------------------------------------
1 | {% extends "base/_base.html" %}
2 | {% load bootstrap3 %}
3 | {% load i18n %}
4 | {% load static %}
5 | {% block content %}
6 |
7 |
8 |
{% trans 'Update Asset Group' %}
9 |
16 |
17 |
18 |
19 |
20 |
{% trans 'Update Asset Group' %}
21 |
22 |
23 |
46 |
47 |
48 |
49 | {% endblock %}
50 |
51 | {% block script %}
52 |
57 | {% endblock %}
--------------------------------------------------------------------------------
/apps/assets/tests.py:
--------------------------------------------------------------------------------
1 | from django.test import TestCase
2 |
3 | # Create your tests here.
4 |
--------------------------------------------------------------------------------
/apps/assets/urls.py:
--------------------------------------------------------------------------------
1 | from django.urls import path
2 |
3 | from apps.assets import views
4 |
5 | app_name = 'assets'
6 |
7 | urlpatterns = [
8 | path('asset/import/', views.AssetImportView.as_view(), name='asset-import'),
9 | path('asset/list/', views.AssetListView.as_view(), name='asset-list'),
10 | path('asset/detail//', views.AssetDetailView.as_view(), name='asset-detail'),
11 | path('asset/sync/', views.AssetSyncView.as_view(), name='asset-sync'),
12 | path('asset/create/', views.AssetCreateView.as_view(), name='asset-create'),
13 | path('asset/update//', views.AssetUpdateView.as_view(), name='asset-update'),
14 | path('asset/delete/', views.AssetDeleteView.as_view(), name='asset-delete'),
15 | path('asset/export/', views.AssetExportView.as_view(), name='asset-export'),
16 | path('group/list/', views.AssetGroupListView.as_view(), name='group-list'),
17 | path('group/create/', views.AssetGroupCreateView.as_view(), name='group-create'),
18 | path('group/update//', views.AssetGroupUpdateView.as_view(), name='group-update'),
19 | path('group/delete/', views.AssetGroupDeleteView.as_view(), name='group-delete'),
20 | ]
21 |
--------------------------------------------------------------------------------
/apps/jobs/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/apps/jobs/__init__.py
--------------------------------------------------------------------------------
/apps/jobs/admin.py:
--------------------------------------------------------------------------------
1 | from django.contrib import admin
2 |
3 | # Register your models here.
4 |
--------------------------------------------------------------------------------
/apps/jobs/apps.py:
--------------------------------------------------------------------------------
1 | from django.apps import AppConfig
2 |
3 |
4 | class JobsConfig(AppConfig):
5 | name = 'jobs'
6 |
--------------------------------------------------------------------------------
/apps/jobs/forms.py:
--------------------------------------------------------------------------------
1 | from django import forms
2 |
3 | from apps.jobs.models import JobInfo, JobType
4 |
5 | __all__ = ['JobTypeForm', 'JobForm']
6 |
7 |
8 | class JobTypeForm(forms.ModelForm):
9 | class Meta:
10 | model = JobType
11 | fields = '__all__'
12 |
13 |
14 | class JobForm(forms.ModelForm):
15 | class Meta:
16 | model = JobInfo
17 | fields = '__all__'
18 |
--------------------------------------------------------------------------------
/apps/jobs/migrations/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/apps/jobs/migrations/__init__.py
--------------------------------------------------------------------------------
/apps/jobs/models.py:
--------------------------------------------------------------------------------
1 | from django.db import models
2 | from django.utils.translation import ugettext_lazy as _
3 |
4 |
5 | # Create your models here.
6 |
7 | class JobType(models.Model):
8 | name = models.CharField(max_length=64, verbose_name=_('Job Type Name'), unique=True)
9 | comment = models.TextField(verbose_name=_('Comment'), blank=True, null=True)
10 |
11 | class Meta:
12 | db_table = 'JobType'
13 | verbose_name = _('Job Type')
14 | verbose_name_plural = _('Job Type')
15 |
16 | def __str__(self):
17 | return self.name
18 |
19 |
20 | class JobInfo(models.Model):
21 | name = models.CharField(max_length=64, verbose_name=_('Job Name'), unique=True)
22 | content = models.TextField(verbose_name=_('Content'), blank=True, null=True)
23 | comment = models.TextField(verbose_name=_('Comment'), blank=True, null=True)
24 | types = models.ForeignKey(to='JobType', on_delete=models.CASCADE, blank=True, verbose_name=_('Job Type'))
25 |
26 | class Meta:
27 | db_table = 'JobInfo'
28 | verbose_name = _('Job Info')
29 | verbose_name_plural = _('Job Info')
30 |
31 | def __str__(self):
32 | return self.name
33 |
--------------------------------------------------------------------------------
/apps/jobs/templates/type/type_create.html:
--------------------------------------------------------------------------------
1 | {% extends "base/_base.html" %}
2 | {% load i18n %}
3 | {% load bootstrap3 %}
4 | {% load static %}
5 | {% block content %}
6 |
7 |
8 |
{% trans 'Create Job Type' %}
9 |
10 |
17 |
18 |
19 |
20 |
21 |
{% trans 'Create Job Type' %}
22 |
23 |
24 |
47 |
48 |
49 |
50 | {% endblock %}
51 |
52 | {% block script %}
53 |
58 | {% endblock %}
--------------------------------------------------------------------------------
/apps/jobs/templates/type/type_update.html:
--------------------------------------------------------------------------------
1 | {% extends "base/_base.html" %}
2 | {% load i18n %}
3 | {% load bootstrap3 %}
4 | {% load static %}
5 | {% block content %}
6 |
7 |
8 |
{% trans 'Update Job Type' %}
9 |
10 |
17 |
18 |
19 |
20 |
21 |
{% trans 'Update Job Type' %}
22 |
23 |
24 |
47 |
48 |
49 |
50 | {% endblock %}
51 |
52 | {% block script %}
53 |
58 | {% endblock %}
--------------------------------------------------------------------------------
/apps/jobs/tests.py:
--------------------------------------------------------------------------------
1 | from django.test import TestCase
2 |
3 | # Create your tests here.
4 |
--------------------------------------------------------------------------------
/apps/jobs/urls.py:
--------------------------------------------------------------------------------
1 | from django.urls import path
2 |
3 | from apps.jobs import views
4 |
5 | app_name = 'jobs'
6 |
7 | urlpatterns = [
8 | path('job/cmd/', views.RunCommandView.as_view(), name='run-cmd'),
9 | path('job/list/', views.JobListView.as_view(), name='job-list'),
10 | path('job/create/', views.JobCreateView.as_view(), name='job-create'),
11 | path('job/update//', views.JobUpdateView.as_view(), name='job-update'),
12 | path('job/delete/', views.JobDeleteView.as_view(), name='job-delete'),
13 | path('job/push/', views.JobFilePushView.as_view(), name='job-push'),
14 | path('type/list/', views.JobTypeListView.as_view(), name='type-list'),
15 | path('type/create/', views.JobTypeCreateView.as_view(), name='type-create'),
16 | path('type/update//', views.JobTypeUpdateView.as_view(), name='type-update'),
17 | path('type/delete/', views.JobTypeDeleteView.as_view(), name='type-delete'),
18 | ]
19 |
--------------------------------------------------------------------------------
/apps/tasks/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/apps/tasks/__init__.py
--------------------------------------------------------------------------------
/apps/tasks/admin.py:
--------------------------------------------------------------------------------
1 | from django.contrib import admin
2 |
3 | # Register your models here.
4 |
--------------------------------------------------------------------------------
/apps/tasks/apps.py:
--------------------------------------------------------------------------------
1 | from django.apps import AppConfig
2 |
3 |
4 | class TasksConfig(AppConfig):
5 | name = 'tasks'
6 |
--------------------------------------------------------------------------------
/apps/tasks/forms.py:
--------------------------------------------------------------------------------
1 | from django import forms
2 |
3 | from djcelery.models import CrontabSchedule, IntervalSchedule, PeriodicTask
4 |
5 | __all__ = ['PeriodicTaskForm', 'CrontabScheduleForm', 'IntervalScheduleForm']
6 |
7 |
8 | class PeriodicTaskForm(forms.ModelForm):
9 | class Meta:
10 | model = PeriodicTask
11 | fields = '__all__'
12 |
13 |
14 | class CrontabScheduleForm(forms.ModelForm):
15 | class Meta:
16 | model = CrontabSchedule
17 | fields = '__all__'
18 |
19 |
20 | class IntervalScheduleForm(forms.ModelForm):
21 | class Meta:
22 | model = IntervalSchedule
23 | fields = '__all__'
24 |
--------------------------------------------------------------------------------
/apps/tasks/migrations/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/apps/tasks/migrations/__init__.py
--------------------------------------------------------------------------------
/apps/tasks/models.py:
--------------------------------------------------------------------------------
1 | from django.db import models
2 |
3 | # Create your models here.
4 |
--------------------------------------------------------------------------------
/apps/tasks/tasks.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | from celery import shared_task
3 | from utils.remote.salt import *
4 | from apps.assets.models import AssetInfo
5 |
6 | salt = SaltApi()
7 |
8 | __all__ = ['sync_info', 'cmd_run']
9 |
10 |
11 | @shared_task
12 | def sync_info(asset_name_list):
13 | result = {}
14 | salt_key = salt.list_all_key()[0]
15 | system_info = salt.grains_items(asset_name_list)
16 | for i in asset_name_list:
17 | asset_obj = AssetInfo.objects.filter(hostname=i)
18 | if i in salt_key:
19 | asset_obj.update(os=system_info[i].get('os'),
20 | os_release=system_info[i].get('osrelease'),
21 | cpu_model=system_info[i].get('cpu_model'),
22 | cpu_count=system_info[i].get('num_cpus'),
23 | mem_total=system_info[i].get('mem_total'),
24 | sn=system_info[i].get('serialnumber'))
25 | result[i] = True
26 | else:
27 | result[i] = False
28 |
29 | return result
30 |
31 |
32 | @shared_task
33 | def cmd_run(asset_name_list, command):
34 | result = salt.cmd_run(tgt=asset_name_list, arg=command)
35 | return result
36 |
--------------------------------------------------------------------------------
/apps/tasks/templates/interval/interval_create.html:
--------------------------------------------------------------------------------
1 | {% extends "base/_base.html" %}
2 | {% load bootstrap3 %}
3 | {% load i18n %}
4 | {% load static %}
5 | {% block content %}
6 |
7 |
8 |
{% trans 'Create Interval' %}
9 |
10 |
17 |
18 |
19 |
20 |
21 |
{% trans 'Create Interval' %}
22 |
23 |
24 |
47 |
48 |
49 |
50 | {% endblock %}
51 |
52 | {% block script %}
53 |
58 | {% endblock %}
--------------------------------------------------------------------------------
/apps/tasks/tests.py:
--------------------------------------------------------------------------------
1 | from django.test import TestCase
2 |
3 | # Create your tests here.
4 |
--------------------------------------------------------------------------------
/apps/tasks/urls.py:
--------------------------------------------------------------------------------
1 | from django.urls import path
2 |
3 | from apps.tasks import views
4 |
5 | app_name = 'tasks'
6 |
7 | urlpatterns = [
8 | path('crontab/list/', views.CrontabListView.as_view(), name='crontab-list'),
9 | path('crontab/create/', views.CrontabCreateView.as_view(), name='crontab-create'),
10 | path('crontab/update//', views.CrontabUpdateView.as_view(), name='crontab-update'),
11 | path('crontab/delete/', views.CrontabDeleteView.as_view(), name='crontab-delete'),
12 | path('interval/list/', views.IntervalListView.as_view(), name='interval-list'),
13 | path('interval/create/', views.IntervalCreateView.as_view(), name='interval-create'),
14 | path('interval/update//', views.IntervalUpdateView.as_view(), name='interval-update'),
15 | path('interval/delete/', views.IntervalDeleteView.as_view(), name='interval-delete'),
16 | path('task/list/', views.PeriodicTaskListView.as_view(), name='task-list'),
17 | path('task/create/', views.PeriodicTaskCreateView.as_view(), name='task-create'),
18 | path('task/update//', views.PeriodicTaskUpdateView.as_view(), name='task-update'),
19 | path('task/delete/', views.PeriodicTaskDeleteView.as_view(), name='task-delete'),
20 | path('task/result/list/', views.TaskResultListView.as_view(), name='task-result-list'),
21 | ]
22 |
--------------------------------------------------------------------------------
/apps/users/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/apps/users/__init__.py
--------------------------------------------------------------------------------
/apps/users/admin.py:
--------------------------------------------------------------------------------
1 | from django.contrib import admin
2 |
3 | # Register your models here.
4 |
--------------------------------------------------------------------------------
/apps/users/api.py:
--------------------------------------------------------------------------------
1 | from .serializers import UserProfileSerializer
2 | from .models import UserProfile
3 |
4 | from rest_framework import viewsets
5 |
6 |
7 | class UserProfileViewSet(viewsets.ModelViewSet):
8 | queryset = UserProfile.objects.all()
9 | serializer_class = UserProfileSerializer
10 |
--------------------------------------------------------------------------------
/apps/users/apps.py:
--------------------------------------------------------------------------------
1 | from django.apps import AppConfig
2 |
3 |
4 | class UsersConfig(AppConfig):
5 | name = 'users'
6 |
--------------------------------------------------------------------------------
/apps/users/forms.py:
--------------------------------------------------------------------------------
1 | from django import forms
2 | from django.contrib.auth.forms import AuthenticationForm
3 | from django.utils.translation import ugettext_lazy as _
4 |
5 | from apps.users.models import *
6 |
7 | __all__ = ['UserLoginForm', 'UserForm', 'UserUpdateForm', 'UserProfileUpdateForm']
8 |
9 |
10 | class UserLoginForm(AuthenticationForm):
11 | username = forms.CharField()
12 | password = forms.CharField(widget=forms.PasswordInput)
13 |
14 |
15 | class UserForm(forms.ModelForm):
16 | class Meta:
17 | model = UserProfile
18 | fields = '__all__'
19 | widgets = {
20 | 'password': forms.PasswordInput(),
21 | }
22 |
23 |
24 | class UserUpdateForm(forms.ModelForm):
25 | password = forms.CharField(
26 | label=_('Password'),
27 | strip=False,
28 | required=False,
29 | widget=forms.PasswordInput,
30 | help_text="Tips: 如果密码不修改,请留空.",
31 | )
32 |
33 | class Meta:
34 | model = UserProfile
35 | exclude = ['password', 'last_login']
36 |
37 |
38 | class UserProfileUpdateForm(forms.ModelForm):
39 | class Meta:
40 | model = UserProfile
41 | exclude = ['password', 'is_superuser', 'last_login', 'groups']
42 |
--------------------------------------------------------------------------------
/apps/users/migrations/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/apps/users/migrations/__init__.py
--------------------------------------------------------------------------------
/apps/users/models.py:
--------------------------------------------------------------------------------
1 | from django.db import models
2 | from django.contrib.auth.models import (
3 | AbstractBaseUser, BaseUserManager, Permission, PermissionsMixin, Group
4 | )
5 | from django.utils.translation import gettext_lazy as _
6 |
7 |
8 | # Create your models here.
9 |
10 |
11 | class UserProfileManager(BaseUserManager):
12 | def create_user(self, username, nickname, email, password=None):
13 | """
14 | Creates and saves a User with the given username, nickname, email and password.
15 | """
16 | if not username:
17 | raise ValueError('Users must have a name')
18 |
19 | if not nickname:
20 | raise ValueError('Users must have a nickname')
21 |
22 | if not email:
23 | raise ValueError('Users must have an email address')
24 |
25 | user = self.model(
26 | username=username,
27 | nickname=nickname,
28 | email=self.normalize_email(email),
29 | )
30 |
31 | user.set_password(password)
32 | user.save(using=self._db)
33 | return user
34 |
35 | def create_superuser(self, username, nickname, email, password):
36 | """
37 | Creates and saves a superuser with the given username, nickname, email, and password.
38 | """
39 | user = self.create_user(username=username,
40 | nickname=nickname,
41 | password=password,
42 | email=email,
43 | )
44 | user.is_superuser = True
45 | user.save(using=self._db)
46 | return user
47 |
48 |
49 | class UserProfile(AbstractBaseUser, PermissionsMixin):
50 | username = models.CharField(verbose_name=_('Username'), max_length=64, unique=True)
51 | nickname = models.CharField(verbose_name=_('Nickname'), max_length=64)
52 | email = models.EmailField(verbose_name=_('Email'), max_length=64, unique=True)
53 | is_active = models.BooleanField(default=True, verbose_name=_('Active'))
54 | is_superuser = models.BooleanField(default=False, verbose_name=_('Superuser'))
55 | comment = models.TextField(verbose_name=_('Comment'), blank=True, null=True)
56 |
57 | objects = UserProfileManager()
58 |
59 | USERNAME_FIELD = 'username'
60 | REQUIRED_FIELDS = ['nickname', 'email']
61 |
62 | class Meta:
63 | db_table = 'UserProfile'
64 | verbose_name = _('User Profile')
65 | verbose_name_plural = _('User Profile')
66 |
67 | def get_full_name(self):
68 | # The user is identified by their email address
69 | return self.email
70 |
71 | def get_user_name(self):
72 | # The user is identified by their email address
73 | return self.username
74 |
75 | def get_short_name(self):
76 | # The user is identified by their email address
77 | return self.nickname
78 |
79 | def __str__(self): # __unicode__ on Python 2
80 | return self.username
81 |
82 | @property
83 | def is_valid(self):
84 | if self.is_active:
85 | return True
86 | return False
87 |
88 | @property
89 | def is_staff(self):
90 | return self.is_superuser
91 |
--------------------------------------------------------------------------------
/apps/users/serializers.py:
--------------------------------------------------------------------------------
1 | from rest_framework import serializers
2 |
3 | from .models import UserProfile
4 |
5 |
6 | class UserProfileSerializer(serializers.ModelSerializer):
7 | class Meta:
8 | model = UserProfile
9 | fields = '__all__'
10 |
--------------------------------------------------------------------------------
/apps/users/tests.py:
--------------------------------------------------------------------------------
1 | from django.test import TestCase
2 |
3 | # Create your tests here.
4 |
--------------------------------------------------------------------------------
/apps/users/urls.py:
--------------------------------------------------------------------------------
1 | from django.urls import path
2 | from apps.users import views
3 |
4 | app_name = 'users'
5 |
6 | urlpatterns = [
7 | path('user/list/', views.UserListView.as_view(), name='user-list'),
8 | path('user/create/', views.UserCreateView.as_view(), name='user-create'),
9 | path('user/update//', views.UserUpdateView.as_view(), name='user-update'),
10 | path('user/delete/', views.UserDeleteView.as_view(), name='user-delete'),
11 | path('role/list/', views.UserRoleListView.as_view(), name='role-list'),
12 | path('role/create/', views.UserRoleCreateView.as_view(), name='role-create'),
13 | path('role/update//', views.UserRoleUpdateView.as_view(), name='role-update'),
14 | path('role/delete/', views.UserRoleDeleteView.as_view(), name='role-delete'),
15 | ]
16 |
--------------------------------------------------------------------------------
/apps/utils/auth/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/apps/utils/auth/__init__.py
--------------------------------------------------------------------------------
/apps/utils/auth/mixins.py:
--------------------------------------------------------------------------------
1 | from django.contrib.auth.mixins import PermissionRequiredMixin
2 | from django.shortcuts import redirect
3 | from django.conf import settings
4 |
5 |
6 | class LoggedInPermissionsMixin(PermissionRequiredMixin):
7 | def dispatch(self, request, *args, **kwargs):
8 | if not request.user.is_authenticated:
9 | return redirect(settings.LOGIN_URL)
10 | return super().dispatch(request, *args, **kwargs)
11 |
--------------------------------------------------------------------------------
/apps/utils/config.ini:
--------------------------------------------------------------------------------
1 | [salt]
2 | url =
3 | user =
4 | password =
5 |
6 | [para]
7 | hostname =
8 | port =
9 | user =
10 | password =
11 |
12 | [file]
13 | src =
14 | dst =
--------------------------------------------------------------------------------
/apps/utils/generic/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/apps/utils/generic/__init__.py
--------------------------------------------------------------------------------
/apps/utils/generic/jobs.py:
--------------------------------------------------------------------------------
1 | import os
2 | import configparser
3 |
4 | from utils.remote.para import *
5 |
6 | config = configparser.ConfigParser()
7 | BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
8 | config.read(os.path.join(BASE_DIR, 'config.ini'))
9 | file_src = config.get('file', 'src')
10 | file_dst = config.get('file', 'dst')
11 |
12 |
13 | def generate_job_file(data):
14 | with open(file_src + data.get('name'), 'w', newline="\n", encoding='utf-8') as f:
15 | content = data.get('content').replace('\r\n', '\n')
16 | f.write(content)
17 |
18 |
19 | def push_job_file(job_name_list):
20 | para = ParaApi()
21 | for job_name in job_name_list:
22 | para.upload(jobname=job_name)
23 |
24 | para.close()
25 |
--------------------------------------------------------------------------------
/apps/utils/generic/shoutcuts.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | def get_object_or_none(model, **kwargs):
3 | try:
4 | obj = model.objects.get(**kwargs)
5 | except model.DoesNotExist:
6 | return None
7 | return obj
8 |
9 |
10 | def get_queryset_or_none(model, **kwargs):
11 | try:
12 | obj_queryset = model.objects.filter(**kwargs)
13 | except model.DoesNotExist:
14 | return None
15 | return obj_queryset
16 |
--------------------------------------------------------------------------------
/apps/utils/remote/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/apps/utils/remote/__init__.py
--------------------------------------------------------------------------------
/apps/utils/remote/para.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | import paramiko
3 | import os
4 | import configparser
5 |
6 | config = configparser.ConfigParser()
7 | BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
8 | config.read(os.path.join(BASE_DIR, 'config.ini'))
9 | para_hostname = config.get('para', 'hostname')
10 | para_port = config.get('para', 'port')
11 | para_user = config.get('para', 'user')
12 | para_password = config.get('para', 'password')
13 | file_src = config.get('file', 'src')
14 | file_dst = config.get('file', 'dst')
15 |
16 | __all__ = ['ParaApi']
17 |
18 |
19 | class ParaApi:
20 | def __init__(self):
21 | self.hostname = para_hostname
22 | self.port = int(para_port)
23 | self.username = para_user
24 | self.password = para_password
25 | self.__transport = self.connect()
26 |
27 | def connect(self):
28 | transport = paramiko.Transport((self.hostname, self.port))
29 | transport.connect(username=self.username, password=self.password)
30 | return transport
31 |
32 | def upload(self, jobname):
33 | sftp = paramiko.SFTPClient.from_transport(self.__transport)
34 | print(os.path.join(file_src, jobname), os.path.join(file_dst, jobname))
35 | sftp.put(os.path.join(file_src, jobname), os.path.join(file_dst, jobname))
36 |
37 | def cmd(self, command):
38 | ssh = paramiko.SSHClient()
39 | ssh._transport = self.__transport
40 | ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
41 | stdin, stdout, stderr = ssh.exec_command(command)
42 | result = stdout.read().decode('utf-8').strip('\n')
43 | err = stderr.read().decode('utf-8').strip('\n')
44 | return result, err
45 |
46 | def close(self):
47 | self.__transport.close()
48 |
49 |
50 | if __name__ == '__main__':
51 | pass
52 |
--------------------------------------------------------------------------------
/docs/img/Crontab列表.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/docs/img/Crontab列表.png
--------------------------------------------------------------------------------
/docs/img/Interval列表.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/docs/img/Interval列表.png
--------------------------------------------------------------------------------
/docs/img/任务结果.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/docs/img/任务结果.png
--------------------------------------------------------------------------------
/docs/img/作业列表.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/docs/img/作业列表.png
--------------------------------------------------------------------------------
/docs/img/作业类型.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/docs/img/作业类型.png
--------------------------------------------------------------------------------
/docs/img/功能说明.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/docs/img/功能说明.png
--------------------------------------------------------------------------------
/docs/img/周期任务.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/docs/img/周期任务.png
--------------------------------------------------------------------------------
/docs/img/执行命令.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/docs/img/执行命令.png
--------------------------------------------------------------------------------
/docs/img/控制面板.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/docs/img/控制面板.png
--------------------------------------------------------------------------------
/docs/img/用户列表.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/docs/img/用户列表.png
--------------------------------------------------------------------------------
/docs/img/用户角色.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/docs/img/用户角色.png
--------------------------------------------------------------------------------
/docs/img/资产列表.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/docs/img/资产列表.png
--------------------------------------------------------------------------------
/docs/img/资产组.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/docs/img/资产组.png
--------------------------------------------------------------------------------
/locale/zh_hans/LC_MESSAGES/django.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/locale/zh_hans/LC_MESSAGES/django.mo
--------------------------------------------------------------------------------
/manage.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | import os
3 | import sys
4 |
5 | if __name__ == "__main__":
6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "pingAdmin.settings")
7 | try:
8 | from django.core.management import execute_from_command_line
9 | except ImportError as exc:
10 | raise ImportError(
11 | "Couldn't import Django. Are you sure it's installed and "
12 | "available on your PYTHONPATH environment variable? Did you "
13 | "forget to activate a virtual environment?"
14 | ) from exc
15 | execute_from_command_line(sys.argv)
16 |
--------------------------------------------------------------------------------
/pingAdmin/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/pingAdmin/__init__.py
--------------------------------------------------------------------------------
/pingAdmin/celery.py:
--------------------------------------------------------------------------------
1 | #! /usr/bin/env python
2 | # coding: utf-8
3 |
4 | import os
5 | from celery import Celery, platforms
6 | from django.conf import settings
7 |
8 | # allow Root user
9 | platforms.C_FORCE_ROOT = True
10 | # set the default Django settings module for the 'celery' program.
11 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'pingAdmin.settings')
12 | app = Celery('pingAdmin')
13 |
14 | # Using a string here means the worker will not have to
15 | # pickle the object when using Windows.
16 | app.config_from_object('django.conf:settings')
17 | app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
18 |
19 |
20 | @app.task(bind=True)
21 | def debug_task(self):
22 | print('Request: {0!r}'.format(self.request))
23 |
--------------------------------------------------------------------------------
/pingAdmin/urls.py:
--------------------------------------------------------------------------------
1 | """pingAdmin URL Configuration
2 |
3 | The `urlpatterns` list routes URLs to views. For more information please see:
4 | https://docs.djangoproject.com/en/2.0/topics/http/urls/
5 | Examples:
6 | Function views
7 | 1. Add an import: from my_app import views
8 | 2. Add a URL to urlpatterns: path('', views.home, name='home')
9 | Class-based views
10 | 1. Add an import: from other_app.views import Home
11 | 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
12 | Including another URLconf
13 | 1. Import the include() function: from django.urls import include, path
14 | 2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
15 | """
16 | from django.contrib import admin
17 | from django.urls import path, include
18 | from django.conf.urls import handler403
19 |
20 | from rest_framework import routers
21 |
22 | from .views import LoginView, LogoutView, IndexView, ProfileView
23 | from apps.assets import api as assets_api
24 | from apps.users import api as users_api
25 |
26 | router = routers.DefaultRouter()
27 | router.register(r'userProfile', users_api.UserProfileViewSet)
28 | router.register(r'assetInfo', assets_api.AssetViewSet)
29 | router.register(r'assetGroup', assets_api.AssetGroupViewSet)
30 |
31 | urlpatterns = [
32 | path('admin/', admin.site.urls),
33 | path('login/', LoginView.as_view(), name='login'),
34 | path('logout/', LogoutView.as_view(), name='logout'),
35 | path('index/', IndexView.as_view(), name='index'),
36 | path('profile/', ProfileView.as_view(), name='profile'),
37 |
38 | path('assets/', include('apps.assets.urls', namespace='assets')),
39 | path('users/', include('apps.users.urls', namespace='users')),
40 | path('tasks/', include('apps.tasks.urls', namespace='tasks')),
41 | path('jobs/', include('apps.jobs.urls', namespace='jobs')),
42 |
43 | path('403/', handler403, kwargs={'exception': Exception('Permission Denied')}, name='handler403'),
44 |
45 | path('api/v1/', include(router.urls)),
46 |
47 |
48 | ]
49 |
--------------------------------------------------------------------------------
/pingAdmin/views.py:
--------------------------------------------------------------------------------
1 | from django.contrib.auth import login as auth_login, logout as auth_logout, authenticate
2 | from django.views.generic import TemplateView, FormView, View
3 | from django.contrib.auth.mixins import LoginRequiredMixin
4 | from django.shortcuts import redirect
5 | from django.urls import reverse_lazy
6 | from django.http import HttpResponse
7 |
8 | from djcelery.models import PeriodicTask
9 | from apps.assets.models import *
10 | from apps.jobs.models import *
11 | from apps.users.models import *
12 | from apps.users.forms import *
13 |
14 |
15 | # Create your views here.
16 |
17 | class LoginView(FormView):
18 | template_name = 'login.html'
19 | form_class = UserLoginForm
20 | success_url = '/index/'
21 |
22 | def post(self, *args, **kwargs):
23 | user_login_form = UserLoginForm(data=self.request.POST)
24 | if user_login_form.is_valid():
25 | auth_login(self.request, user_login_form.get_user())
26 | return redirect(self.success_url)
27 | return super().get(self.request, *args, **kwargs)
28 |
29 |
30 | class LogoutView(View):
31 | def get(self, *args, **kwargs):
32 | auth_logout(self.request)
33 | return redirect(reverse_lazy('login'))
34 |
35 |
36 | class IndexView(LoginRequiredMixin, TemplateView):
37 | template_name = 'index.html'
38 |
39 | def get_context_data(self, **kwargs):
40 | context = super().get_context_data()
41 | context['user_obj'] = UserProfile.objects.all()
42 | context['asset_obj'] = AssetInfo.objects.all()
43 | context['job_obj'] = JobInfo.objects.all()
44 | context['task_obj'] = PeriodicTask.objects.all()
45 | return context
46 |
47 |
48 | class ProfileView(LoginRequiredMixin, TemplateView):
49 | template_name = 'profile.html'
50 |
51 | def post(self, *args, **kwargs):
52 | username = self.request.POST.get('username')
53 | password = self.request.POST.get('password')
54 | new_password = self.request.POST.get('new-password')
55 | confirm_password = self.request.POST.get('confirm-password')
56 | user_obj = UserProfile.objects.get(username=username)
57 | print(self.request.POST)
58 | user_form = UserProfileUpdateForm(self.request.POST, instance=user_obj)
59 |
60 | user = authenticate(username=username, password=password)
61 |
62 | if password and new_password:
63 | # 密码校验是否正确
64 | if user:
65 | if new_password == confirm_password:
66 | profile_form = user_form.save(commit=False)
67 | profile_form.set_password(new_password)
68 | profile_form.save()
69 | return HttpResponse(0)
70 | else:
71 | # print(user_form.errors.as_json())
72 | print("new password is not same as confirm password.")
73 | return HttpResponse(-1)
74 |
75 | else:
76 | print("password check failed")
77 | return HttpResponse(-1)
78 |
79 | # 新密码是否输入
80 | elif password and not new_password:
81 | print("new password is empty.")
82 | return HttpResponse(-1)
83 |
84 | else:
85 | user_form.save()
86 | return HttpResponse(0)
87 |
--------------------------------------------------------------------------------
/pingAdmin/wsgi.py:
--------------------------------------------------------------------------------
1 | """
2 | WSGI config for pingAdmin project.
3 |
4 | It exposes the WSGI callable as a module-level variable named ``application``.
5 |
6 | For more information on this file, see
7 | https://docs.djangoproject.com/en/2.0/howto/deployment/wsgi/
8 | """
9 |
10 | import os
11 |
12 | from django.core.wsgi import get_wsgi_application
13 |
14 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "pingAdmin.settings")
15 |
16 | application = get_wsgi_application()
17 |
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | Django==2.1.2
2 | djangorestframework==3.8.2
3 | django-bootstrap3==11.0.0
4 | django-celery==3.2.2
5 | celery-with-redis==3.0
6 | requests==2.20.0
7 | paramiko==2.4.2
--------------------------------------------------------------------------------
/static/css/bootstrap-validator.css:
--------------------------------------------------------------------------------
1 | /**
2 | * BootstrapValidator (http://bootstrapvalidator.com)
3 | * The best jQuery plugin to validate form fields. Designed to use with Bootstrap 3
4 | *
5 | * @author http://twitter.com/nghuuphuoc
6 | * @copyright (c) 2013 - 2014 Nguyen Huu Phuoc
7 | * @license MIT
8 | */
9 |
10 | .bv-form .help-block {
11 | margin-bottom: 0;
12 | }
13 | .bv-form .tooltip-inner {
14 | text-align: left;
15 | }
16 | .nav-tabs li.bv-tab-success > a {
17 | color: #3c763d;
18 | }
19 | .nav-tabs li.bv-tab-error > a {
20 | color: #a94442;
21 | }
22 |
23 | .bv-form .bv-icon-no-label {
24 | top: 0;
25 | }
26 |
27 | .bv-form .bv-icon-input-group {
28 | top: 0;
29 | z-index: 100;
30 | }
--------------------------------------------------------------------------------
/static/css/colors/blue.css:
--------------------------------------------------------------------------------
1 | @import url(https://fonts.googleapis.com/css?family=Rubik:300,400,500,700,900);
2 | /*Theme Colors*/
3 | /*bootstrap Color*/
4 | /*Normal Color*/
5 | /*Border radius*/
6 | /*Preloader*/
7 | .preloader {
8 | width: 100%;
9 | height: 100%;
10 | top: 0px;
11 | position: fixed;
12 | z-index: 99999;
13 | background: #fff;
14 | }
15 | .preloader .cssload-speeding-wheel {
16 | position: absolute;
17 | top: calc(50% - 3.5px);
18 | left: calc(50% - 3.5px);
19 | }
20 | /*Just change your choise color here its theme Colors*/
21 | body {
22 | background: #fff;
23 | }
24 | /*Top Header Part*/
25 | .logo i {
26 | color: #ffffff;
27 | }
28 | .navbar-header {
29 | background: #2cabe3;
30 | }
31 | .navbar-top-links > li > a {
32 | color: #ffffff;
33 | }
34 | .sidebar .sidebar-head {
35 | background: #ffffff;
36 | }
37 | .sidebar .sidebar-head h3 {
38 | color: #686868;
39 | }
40 | /*Right panel*/
41 | .right-sidebar .rpanel-title {
42 | background: #2cabe3;
43 | }
44 | /*Bread Crumb*/
45 | .bg-title .breadcrumb .active {
46 | color: #2cabe3;
47 | }
48 | /*Sidebar*/
49 | .sidebar {
50 | background: #fff;
51 | box-shadow: 1px 0px 20px rgba(0, 0, 0, 0.08);
52 | }
53 | .sidebar .label-custom {
54 | background: #01c0c8;
55 | }
56 | #side-menu li a {
57 | color: #54667a;
58 | }
59 | #side-menu li a {
60 | color: #54667a;
61 | border-left: 0px solid #fff;
62 | }
63 | #side-menu > li > a:hover,
64 | #side-menu > li > a:focus {
65 | background: rgba(0, 0, 0, 0.07);
66 | }
67 | #side-menu > li > a.active {
68 | background: #2cabe3;
69 | color: #ffffff;
70 | font-weight: 500;
71 | }
72 | #side-menu ul > li > a:hover {
73 | color: #2cabe3;
74 | }
75 | #side-menu ul > li > a.active {
76 | color: #2cabe3;
77 | font-weight: 500;
78 | }
79 | .user-profile .user-pro-body .u-dropdown {
80 | color: #54667a;
81 | }
82 | /*themecolor*/
83 | .bg-theme {
84 | background-color: #707cd2 !important;
85 | }
86 | .bg-theme-dark {
87 | background-color: #2cabe3 !important;
88 | }
89 | /*Button*/
90 | .btn-custom {
91 | background: #2cabe3;
92 | border: 1px solid #2cabe3;
93 | color: #ffffff;
94 | }
95 | .btn-custom:hover {
96 | background: #2cabe3;
97 | opacity: 0.8;
98 | color: #ffffff;
99 | border: 1px solid #2cabe3;
100 | }
101 | /*Custom tab*/
102 | .customtab li.active a,
103 | .customtab li.active a:hover,
104 | .customtab li.active a:focus {
105 | border-bottom: 2px solid #2cabe3;
106 | color: #2cabe3;
107 | }
108 | .tabs-vertical li.active a,
109 | .tabs-vertical li.active a:hover,
110 | .tabs-vertical li.active a:focus {
111 | background: #2cabe3;
112 | border-right: 2px solid #2cabe3;
113 | }
114 | /*Nav-pills*/
115 | .nav-pills > li.active > a,
116 | .nav-pills > li.active > a:focus,
117 | .nav-pills > li.active > a:hover {
118 | background: #2cabe3;
119 | color: #ffffff;
120 | }
121 |
--------------------------------------------------------------------------------
/static/css/colors/megna-dark.css:
--------------------------------------------------------------------------------
1 | @import url(https://fonts.googleapis.com/css?family=Rubik:300,400,500,700,900);
2 | /*Theme Colors*/
3 | /*bootstrap Color*/
4 | /*Normal Color*/
5 | /*Border radius*/
6 | /*Preloader*/
7 | .preloader {
8 | width: 100%;
9 | height: 100%;
10 | top: 0px;
11 | position: fixed;
12 | z-index: 99999;
13 | background: #fff;
14 | }
15 | .preloader .cssload-speeding-wheel {
16 | position: absolute;
17 | top: calc(50% - 3.5px);
18 | left: calc(50% - 3.5px);
19 | }
20 | /*Just change your choise color here its theme Colors*/
21 | body {
22 | background: #2f323e;
23 | }
24 | /*Top Header Part*/
25 | .logo i {
26 | color: #4c5667;
27 | }
28 | .top-left-part .light-logo {
29 | display: inline-block;
30 | }
31 | .top-left-part .dark-logo {
32 | display: none;
33 | }
34 | .navbar-header {
35 | background: #ffffff;
36 | }
37 | .app-search .form-control,
38 | .app-search .form-control:focus {
39 | border: 1px solid rgba(120, 130, 140, 0.13);
40 | }
41 | .navbar-top-links > li > a {
42 | color: #686868;
43 | }
44 | .bg-title {
45 | background: #f1f2f7;
46 | border-bottom: 1px solid rgba(120, 130, 140, 0.13);
47 | }
48 | /*Right panel*/
49 | .right-sidebar .rpanel-title {
50 | background: #2cabe3;
51 | }
52 | /*Bread Crumb*/
53 | .bg-title .breadcrumb .active {
54 | color: #2cabe3;
55 | }
56 | /*Sidebar*/
57 | .sidebar {
58 | background: #2f323e;
59 | box-shadow: 1px 0px 20px rgba(0, 0, 0, 0.08);
60 | }
61 | .sidebar .label-custom {
62 | background: #01c0c8;
63 | }
64 | #side-menu li a {
65 | color: #97999f;
66 | }
67 | #side-menu li a {
68 | color: #97999f;
69 | border-left: 0px solid #2f323e;
70 | }
71 | #side-menu > li > a:hover,
72 | #side-menu > li > a:focus {
73 | background: rgba(0, 0, 0, 0.07);
74 | }
75 | #side-menu > li > a.active {
76 | background: #2cabe3;
77 | color: #ffffff;
78 | font-weight: 500;
79 | }
80 | #side-menu ul > li > a:hover {
81 | color: #ffffff;
82 | }
83 | #side-menu ul > li > a.active {
84 | color: #ffffff;
85 | font-weight: 500;
86 | }
87 | .user-profile .user-pro-body .u-dropdown {
88 | color: #97999f;
89 | }
90 | /*themecolor*/
91 | .bg-theme {
92 | background-color: #707cd2 !important;
93 | }
94 | .bg-theme-dark {
95 | background-color: #2cabe3 !important;
96 | }
97 | /*Button*/
98 | .btn-custom {
99 | background: #2cabe3;
100 | border: 1px solid #2cabe3;
101 | color: #ffffff;
102 | }
103 | .btn-custom:hover {
104 | background: #2cabe3;
105 | opacity: 0.8;
106 | color: #ffffff;
107 | border: 1px solid #2cabe3;
108 | }
109 | /*Custom tab*/
110 | .customtab li.active a,
111 | .customtab li.active a:hover,
112 | .customtab li.active a:focus {
113 | border-bottom: 2px solid #2cabe3;
114 | color: #2cabe3;
115 | }
116 | .tabs-vertical li.active a,
117 | .tabs-vertical li.active a:hover,
118 | .tabs-vertical li.active a:focus {
119 | background: #2cabe3;
120 | border-right: 2px solid #2cabe3;
121 | }
122 | /*Nav-pills*/
123 | .nav-pills > li.active > a,
124 | .nav-pills > li.active > a:focus,
125 | .nav-pills > li.active > a:hover {
126 | background: #2cabe3;
127 | color: #ffffff;
128 | }
129 |
--------------------------------------------------------------------------------
/static/css/colors/megna.css:
--------------------------------------------------------------------------------
1 | @import url(https://fonts.googleapis.com/css?family=Rubik:300,400,500,700,900);
2 | /*Theme Colors*/
3 | /*bootstrap Color*/
4 | /*Normal Color*/
5 | /*Border radius*/
6 | /*Preloader*/
7 | .preloader {
8 | width: 100%;
9 | height: 100%;
10 | top: 0px;
11 | position: fixed;
12 | z-index: 99999;
13 | background: #fff;
14 | }
15 | .preloader .cssload-speeding-wheel {
16 | position: absolute;
17 | top: calc(50% - 3.5px);
18 | left: calc(50% - 3.5px);
19 | }
20 | /*Just change your choise color here its theme Colors*/
21 | body {
22 | background: #fff;
23 | }
24 | /*Top Header Part*/
25 | .logo i {
26 | color: #4c5667;
27 | }
28 | .top-left-part .light-logo {
29 | display: inline-block;
30 | }
31 | .top-left-part .dark-logo {
32 | display: none;
33 | }
34 | .navbar-header {
35 | background: #fff;
36 | /*box-shadow: 1px 0 10px rgba(0, 0, 0, 0.1);*/
37 | border-bottom: 1px solid rgba(120, 130, 140, 0.13);
38 | }
39 | .navbar-top-links > li > a {
40 | color: #686868;
41 | }
42 | .sidebar .sidebar-head {
43 | background: #ffffff;
44 | }
45 | .sidebar .sidebar-head h3 {
46 | color: #686868;
47 | }
48 | /*Right panel*/
49 | .right-sidebar .rpanel-title {
50 | background: #ff7676;
51 | }
52 | /*Bread Crumb*/
53 | .bg-title .breadcrumb .active {
54 | color: #ff7676;
55 | }
56 | /*Sidebar*/
57 | .sidebar {
58 | background: #fff;
59 | box-shadow: 1px 0px 20px rgba(0, 0, 0, 0.08);
60 | }
61 | .sidebar .label-custom {
62 | background: #01c0c8;
63 | }
64 | #side-menu li a {
65 | color: #54667a;
66 | }
67 | #side-menu li a {
68 | color: #54667a;
69 | border-left: 0px solid #fff;
70 | }
71 | #side-menu > li > a:hover,
72 | #side-menu > li > a:focus {
73 | background: rgba(0, 0, 0, 0.07);
74 | }
75 | #side-menu > li > a.active {
76 | background: #ff7676;
77 | color: #ffffff;
78 | font-weight: 500;
79 | }
80 | #side-menu ul > li > a:hover {
81 | color: #ff7676;
82 | }
83 | #side-menu ul > li > a.active {
84 | color: #ff7676;
85 | font-weight: 500;
86 | }
87 | .user-profile .user-pro-body .u-dropdown {
88 | color: #54667a;
89 | }
90 | /*themecolor*/
91 | .bg-theme {
92 | background-color: #707cd2 !important;
93 | }
94 | .bg-theme-dark {
95 | background-color: #ff7676 !important;
96 | }
97 | /*Button*/
98 | .btn-custom {
99 | background: #ff7676;
100 | border: 1px solid #ff7676;
101 | color: #ffffff;
102 | }
103 | .btn-custom:hover {
104 | background: #ff7676;
105 | opacity: 0.8;
106 | color: #ffffff;
107 | border: 1px solid #ff7676;
108 | }
109 | /*Custom tab*/
110 | .customtab li.active a,
111 | .customtab li.active a:hover,
112 | .customtab li.active a:focus {
113 | border-bottom: 2px solid #ff7676;
114 | color: #ff7676;
115 | }
116 | .tabs-vertical li.active a,
117 | .tabs-vertical li.active a:hover,
118 | .tabs-vertical li.active a:focus {
119 | background: #ff7676;
120 | border-right: 2px solid #ff7676;
121 | }
122 | /*Nav-pills*/
123 | .nav-pills > li.active > a,
124 | .nav-pills > li.active > a:focus,
125 | .nav-pills > li.active > a:hover {
126 | background: #ff7676;
127 | color: #ffffff;
128 | }
129 |
--------------------------------------------------------------------------------
/static/css/icons/material-design-iconic-font/fonts/Material-Design-Iconic-Font.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/css/icons/material-design-iconic-font/fonts/Material-Design-Iconic-Font.eot
--------------------------------------------------------------------------------
/static/css/icons/material-design-iconic-font/fonts/Material-Design-Iconic-Font.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/css/icons/material-design-iconic-font/fonts/Material-Design-Iconic-Font.ttf
--------------------------------------------------------------------------------
/static/css/icons/material-design-iconic-font/fonts/Material-Design-Iconic-Font.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/css/icons/material-design-iconic-font/fonts/Material-Design-Iconic-Font.woff
--------------------------------------------------------------------------------
/static/css/icons/material-design-iconic-font/fonts/Material-Design-Iconic-Font.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/css/icons/material-design-iconic-font/fonts/Material-Design-Iconic-Font.woff2
--------------------------------------------------------------------------------
/static/css/icons/material-design-iconic-font/fonts/materialdesignicons-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/css/icons/material-design-iconic-font/fonts/materialdesignicons-webfont.eot
--------------------------------------------------------------------------------
/static/css/icons/material-design-iconic-font/fonts/materialdesignicons-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/css/icons/material-design-iconic-font/fonts/materialdesignicons-webfont.ttf
--------------------------------------------------------------------------------
/static/css/icons/material-design-iconic-font/fonts/materialdesignicons-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/css/icons/material-design-iconic-font/fonts/materialdesignicons-webfont.woff
--------------------------------------------------------------------------------
/static/css/icons/material-design-iconic-font/fonts/materialdesignicons-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/css/icons/material-design-iconic-font/fonts/materialdesignicons-webfont.woff2
--------------------------------------------------------------------------------
/static/css/pingAdmin.css:
--------------------------------------------------------------------------------
1 | /* Custom Logo Style */
2 | .logo i {
3 | font-size: 24px;
4 | border:1px solid #EAEAEA;
5 | padding:5px 6px;
6 | border-radius:50%;
7 | margin-top: 15px;
8 | margin-right: -5px;
9 | }
10 |
11 | /* Custom Header Style */
12 | .custom-h2 {
13 | position:relative;
14 | min-height:1px;
15 | padding-right:15px;
16 | padding-left:15px;
17 | }
18 |
19 | /* Custom Default Buttion Style */
20 | .btn-default, .btn-default.disabled, .btn-default:hover {
21 | background: #fff;
22 | height: 38px;
23 | }
24 |
25 | /* Custom Default Aside Style */
26 | .left-aside {
27 | width: 35%;
28 | /*height: 450px;*/
29 | height: 100%;
30 | margin-bottom: -20px;
31 | }
32 |
33 | .right-aside {
34 | margin-left: 35%;
35 | /*height: 450px;*/
36 | height: 100%;
37 | margin-bottom: -20px;
38 | }
39 | /* Custom Bootstrap-select Style */
40 | .bootstrap-select.btn-group .dropdown-menu {
41 | z-index: 10;
42 | }
43 | /* Custom Switchery Style */
44 | .switchery-small{
45 | margin-top: 5px;
46 | }
47 | /* Custom DataTables Style */
48 | .dataTables_wrapper .dataTables_paginate .paginate_button.current, .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
49 | color: #fff !important;
50 | border: 1px solid #2cabe3;
51 | background-color: #2cabe3;
52 | }
53 |
54 | .dataTables_wrapper .dataTables_paginate .paginate_button:hover {
55 | color: white !important;
56 | border: 1px solid #ddd;
57 | background-color: #ddd;
58 | }
59 |
60 | .dataTables_wrapper .dataTables_paginate .paginate_button.current:active, .dataTables_wrapper .dataTables_paginate .paginate_button:active{
61 | background-color: #1a92c6;
62 | background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #1a92c6), color-stop(100%, #1a92c6));
63 | background: -webkit-linear-gradient(top, #1a92c6 0%, #1a92c6 100%);
64 | background: -moz-linear-gradient(top, #1a92c6 0%, #1a92c6 100%);
65 | background: -ms-linear-gradient(top, #1a92c6 0%, #1a92c6 100%);
66 | background: -o-linear-gradient(top, #1a92c6 0%, #1a92c6 100%);
67 | background: linear-gradient(to bottom, #1a92c6 0%, #1a92c6 100%);
68 | box-shadow: inset 0 0 1px #1a92c6
69 | }
70 |
71 | /* Custom SweetAlert Style */
72 | .sweet-alert .la-ball-fall {
73 | margin-top: -7px;
74 | margin-left: -33px;
75 | }
76 | .sweet-alert button.confirm[disabled] {
77 | color: rgba(85,172,238,0.5)
78 | }
79 |
80 | .sweet-alert .sa-icon:not(.sa-custom) {
81 | transform: scale(0.72);
82 | margin-bottom: -2px;
83 | margin-top: 20px;
84 | }
85 |
86 | .sweet-alert .sa-button-container {
87 | background-color: #f5f8fa;
88 | border-top: 1px solid #e1e8ed;
89 | box-shadow: 0px -1px 0px white;
90 | margin: -25px;
91 | margin-top: 0;
92 | }
93 |
94 | /* Custom CodeMirror Style */
95 | .CodeMirror {
96 | border: 1px solid #cdcdcd;
97 | box-shadow: none;
98 | }
99 |
--------------------------------------------------------------------------------
/static/css/spinners.css:
--------------------------------------------------------------------------------
1 |
2 |
3 | .preloader{
4 | position: relative;
5 | margin: 0 auto;
6 | width: 100px;
7 | }
8 | .preloader:before{
9 | content: '';
10 | display: block;
11 | padding-top: 100%;
12 | }
13 | .circular {
14 | animation: rotate 2s linear infinite;
15 | height: 50px;
16 | transform-origin: center center;
17 | width: 50px;
18 | position: absolute;
19 | top: 0;
20 | bottom: 0;
21 | left: 0;
22 | right: 0;
23 | margin: auto;
24 | }
25 | .path {
26 | stroke-dasharray: 1, 200;
27 | stroke-dashoffset: 0;
28 | animation: dash 1.5s ease-in-out infinite, color 6s ease-in-out infinite;
29 | stroke-linecap: round;
30 | }
31 | @keyframes rotate {
32 | 100% {
33 | transform: rotate(360deg);
34 | }
35 | }
36 |
37 | @keyframes dash {
38 | 0% {
39 | stroke-dasharray: 1, 200;
40 | stroke-dashoffset: 0;
41 | }
42 | 50% {
43 | stroke-dasharray: 89, 200;
44 | stroke-dashoffset: -35px;
45 | }
46 | 100% {
47 | stroke-dasharray: 89, 200;
48 | stroke-dashoffset: -124px;
49 | }
50 | }
51 |
52 | @keyframes color {
53 | 100%,
54 | 0% {
55 | stroke: #d62d20;
56 | }
57 | 40% {
58 | stroke: #0057e7;
59 | }
60 | 66% {
61 | stroke: #008744;
62 | }
63 | 80%,
64 | 90% {
65 | stroke: #ffa700;
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/static/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/static/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/static/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/static/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/static/images/base/admin-logo-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/images/base/admin-logo-dark.png
--------------------------------------------------------------------------------
/static/images/base/admin-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/images/base/admin-logo.png
--------------------------------------------------------------------------------
/static/images/base/admin-text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/images/base/admin-text.png
--------------------------------------------------------------------------------
/static/images/base/busy.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/images/base/busy.gif
--------------------------------------------------------------------------------
/static/images/base/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/images/base/favicon.png
--------------------------------------------------------------------------------
/static/images/base/headline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/images/base/headline.png
--------------------------------------------------------------------------------
/static/images/base/login-register.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/images/base/login-register.jpg
--------------------------------------------------------------------------------
/static/images/profiles/profile.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/images/profiles/profile.jpg
--------------------------------------------------------------------------------
/static/images/users/1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/images/users/1.jpg
--------------------------------------------------------------------------------
/static/images/users/varun.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/images/users/varun.jpg
--------------------------------------------------------------------------------
/static/js/custom.min.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function(){"use strict";var e=$("body");$(function(){$(".preloader").fadeOut(),$("#side-menu").metisMenu()}),$(".open-close").on("click",function(){e.toggleClass("show-sidebar").toggleClass("hide-sidebar"),$(".sidebar-head .open-close i").toggleClass("ti-menu")}),$(".right-side-toggle").on("click",function(){$(".right-sidebar").slideDown(50).toggleClass("shw-rside"),$(".fxhdr").on("click",function(){e.toggleClass("fix-header")}),$(".fxsdr").on("click",function(){e.toggleClass("fix-sidebar")});var i=$(".fxhdr");e.hasClass("fix-header")?i.attr("checked",!0):i.attr("checked",!1)}),$(function(){var i=function(){var i=60,l=window.innerWidth>0?window.innerWidth:this.screen.width,s=(window.innerHeight>0?window.innerHeight:this.screen.height)-1;768>l?($("div.navbar-collapse").addClass("collapse"),i=100):$("div.navbar-collapse").removeClass("collapse"),1170>l?(e.addClass("content-wrapper"),$(".sidebar-nav, .slimScrollDiv").css("overflow-x","visible").parent().css("overflow","visible")):e.removeClass("content-wrapper"),s-=i,1>s&&(s=1),s>i&&$("#page-wrapper").css("min-height",s+"px")},l=window.location,s=$("ul.nav a").filter(function(){return this.href===l||0===l.href.indexOf(this.href)}).addClass("active").parent().parent().addClass("in").parent();s.is("li")&&s.addClass("active"),$(window).ready(i),$(window).bind("resize",i)}),function(e,i,l){var s='[data-perform="panel-collapse"]',n='[data-perform="panel-dismiss"]';e(s).each(function(){var i={toggle:!1},l=e(this).closest(".panel"),s=l.find(".panel-wrapper"),n=e(this).children("i");s.length||(s=l.children(".panel-heading").nextAll().wrapAll("").parent().addClass("panel-wrapper"),i={}),s.collapse(i).on("hide.bs.collapse",function(){n.removeClass("ti-minus").addClass("ti-plus")}).on("show.bs.collapse",function(){n.removeClass("ti-plus").addClass("ti-minus")})}),e(l).on("click",s,function(i){i.preventDefault();var l=e(this).closest(".panel"),s=l.find(".panel-wrapper");s.collapse("toggle")}),e(l).on("click",n,function(i){function s(){var i=l.parent();l.remove(),i.filter(function(){return e(this).is('[class*="col-"]')&&0===e(this).children("*").length}).remove()}i.preventDefault();var l=e(this).closest(".panel");s()})}(jQuery,window,document),$(function(){$('[data-toggle="tooltip"]').tooltip()}),$(function(){$('[data-toggle="popover"]').popover()}),$(".list-task li label").on("click",function(){$(this).toggleClass("task-done")}),$(".settings_box a").on("click",function(){$("ul.theme_color").toggleClass("theme_block")}),$(".collapseble").on("click",function(){$(".collapseblebox").fadeToggle(350)}),$(".slimscrollright").slimScroll({height:"100%",position:"right",size:"5px",color:"#dcdcdc"}),$(".slimscrollsidebar").slimScroll({height:"100%",position:"left",size:"6px",color:"rgba(0,0,0,0.5)"}),$(".chat-list").slimScroll({height:"100%",position:"right",size:"0px",color:"#dcdcdc"}),e.trigger("resize"),$(".visited li a").on("click",function(e){$(".visited li").removeClass("active");var i=$(this).parent();i.hasClass("active")||i.addClass("active"),e.preventDefault()}),$("#to-recover").on("click",function(){$("#loginform").slideUp(),$("#recoverform").fadeIn()}),$(".navbar-toggle").on("click",function(){$(".navbar-toggle i").toggleClass("ti-menu").addClass("ti-close")})});
--------------------------------------------------------------------------------
/static/js/footable-init.js:
--------------------------------------------------------------------------------
1 |
2 | $(window).on('load', function() {
3 | // Pagination
4 | // -----------------------------------------------------------------
5 | var $pagination = $('#foo_pagination'),
6 | $showEntries = $('#foo_show_entries'),
7 | $search = $('#foo_search');
8 | $pagination.footable();
9 | $showEntries.change(function (e) {
10 | e.preventDefault();
11 | var pageSize = $(this).val();
12 | $pagination.data('page-size', pageSize);
13 | $pagination.trigger('footable_initialized');
14 | });
15 |
16 | // Search input
17 | $search.on('input', function (e) {
18 | e.preventDefault();
19 | $pagination.trigger('footable_filter', {filter: $(this).val()});
20 | });
21 | });
22 |
--------------------------------------------------------------------------------
/static/js/pingAdmin.js:
--------------------------------------------------------------------------------
1 | function initSwitchery() {
2 | var elems = Array.prototype.slice.call(document.querySelectorAll('.js-switch'));
3 | $('.js-switch').each(function() {
4 | new Switchery($(this)[0], $(this).data());
5 | });
6 | }
7 |
8 | function initTableiCheck() {
9 | $('#checkAll, #checkItem').iCheck({
10 | handle : 'checkbox',
11 | checkboxClass : 'icheckbox_square-blue',
12 | });
13 | $('#checkAll').on('ifChecked ifUnchecked', function(event){
14 | if (event.type === 'ifChecked') {
15 | $('.checkItem').iCheck('check');
16 | } else {
17 | $('.checkItem').iCheck('uncheck');
18 | }
19 | });
20 | }
21 |
22 | $(document).ready(function() {
23 | initSwitchery();
24 | initFormValid();
25 | initTableiCheck();
26 | });
27 |
--------------------------------------------------------------------------------
/static/js/validator-init.js:
--------------------------------------------------------------------------------
1 | function initFormValid() {
2 | $("#command_form").bootstrapValidator({
3 | live: 'disabled',
4 | submitButtons: '#submit',
5 | feedbackIcons: {
6 | valid: 'glyphicon glyphicon-ok',
7 | invalid: 'glyphicon glyphicon-remove',
8 | validating: 'glyphicon glyphicon-refresh'
9 | },
10 | fields: {
11 | 'assets[]': {
12 | validators: {
13 | notEmpty: {
14 | message: '* 资产与资产组必须选择一项'
15 | },
16 | }
17 | },
18 | 'groups[]': {
19 | validators: {
20 | notEmpty: {
21 | message: '* 资产与资产组必须选择一项'
22 | }
23 | }
24 | },
25 | modules: {
26 | validators: {
27 | notEmpty: {
28 | message: '* 请填写该字段'
29 | }
30 | }
31 | },
32 | content: {
33 | validators: {
34 | notEmpty: {
35 | message: '* 请填写该字段'
36 | }
37 | }
38 | },
39 | sls: {
40 | validators: {
41 | notEmpty: {
42 | message: '* 请填写该字段'
43 | }
44 | }
45 | },
46 | scripts: {
47 | validators: {
48 | notEmpty: {
49 | message: '* 请填写该字段'
50 | }
51 | }
52 | },
53 | }
54 | });
55 | }
--------------------------------------------------------------------------------
/static/plugins/codemirror/css/dracula.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Name: dracula
4 | Author: Michael Kaminsky (http://github.com/mkaminsky11)
5 |
6 | Original dracula color scheme by Zeno Rocha (https://github.com/zenorocha/dracula-theme)
7 |
8 | */
9 |
10 |
11 | .cm-s-dracula.CodeMirror, .cm-s-dracula .CodeMirror-gutters {
12 | background-color: #282a36 !important;
13 | color: #f8f8f2 !important;
14 | border: none;
15 | }
16 | .cm-s-dracula .CodeMirror-gutters { color: #282a36; }
17 | .cm-s-dracula .CodeMirror-cursor { border-left: solid thin #f8f8f0; }
18 | .cm-s-dracula .CodeMirror-linenumber { color: #6D8A88; }
19 | .cm-s-dracula .CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }
20 | .cm-s-dracula .CodeMirror-line::selection, .cm-s-dracula .CodeMirror-line > span::selection, .cm-s-dracula .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }
21 | .cm-s-dracula .CodeMirror-line::-moz-selection, .cm-s-dracula .CodeMirror-line > span::-moz-selection, .cm-s-dracula .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }
22 | .cm-s-dracula span.cm-comment { color: #6272a4; }
23 | .cm-s-dracula span.cm-string, .cm-s-dracula span.cm-string-2 { color: #f1fa8c; }
24 | .cm-s-dracula span.cm-number { color: #bd93f9; }
25 | .cm-s-dracula span.cm-variable { color: #50fa7b; }
26 | .cm-s-dracula span.cm-variable-2 { color: white; }
27 | .cm-s-dracula span.cm-def { color: #50fa7b; }
28 | .cm-s-dracula span.cm-operator { color: #ff79c6; }
29 | .cm-s-dracula span.cm-keyword { color: #ff79c6; }
30 | .cm-s-dracula span.cm-atom { color: #bd93f9; }
31 | .cm-s-dracula span.cm-meta { color: #f8f8f2; }
32 | .cm-s-dracula span.cm-tag { color: #ff79c6; }
33 | .cm-s-dracula span.cm-attribute { color: #50fa7b; }
34 | .cm-s-dracula span.cm-qualifier { color: #50fa7b; }
35 | .cm-s-dracula span.cm-property { color: #66d9ef; }
36 | .cm-s-dracula span.cm-builtin { color: #50fa7b; }
37 | .cm-s-dracula span.cm-variable-3, .cm-s-dracula span.cm-type { color: #ffb86c; }
38 |
39 | .cm-s-dracula .CodeMirror-activeline-background { background: rgba(255,255,255,0.1); }
40 | .cm-s-dracula .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
41 |
--------------------------------------------------------------------------------
/static/plugins/codemirror/css/eclipse.css:
--------------------------------------------------------------------------------
1 | .cm-s-eclipse span.cm-meta { color: #FF1717; }
2 | .cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; }
3 | .cm-s-eclipse span.cm-atom { color: #219; }
4 | .cm-s-eclipse span.cm-number { color: #164; }
5 | .cm-s-eclipse span.cm-def { color: #00f; }
6 | .cm-s-eclipse span.cm-variable { color: black; }
7 | .cm-s-eclipse span.cm-variable-2 { color: #0000C0; }
8 | .cm-s-eclipse span.cm-variable-3 { color: #0000C0; }
9 | .cm-s-eclipse span.cm-property { color: black; }
10 | .cm-s-eclipse span.cm-operator { color: black; }
11 | .cm-s-eclipse span.cm-comment { color: #3F7F5F; }
12 | .cm-s-eclipse span.cm-string { color: #2A00FF; }
13 | .cm-s-eclipse span.cm-string-2 { color: #f50; }
14 | .cm-s-eclipse span.cm-qualifier { color: #555; }
15 | .cm-s-eclipse span.cm-builtin { color: #30a; }
16 | .cm-s-eclipse span.cm-bracket { color: #cc7; }
17 | .cm-s-eclipse span.cm-tag { color: #170; }
18 | .cm-s-eclipse span.cm-attribute { color: #00c; }
19 | .cm-s-eclipse span.cm-link { color: #219; }
20 | .cm-s-eclipse span.cm-error { color: #f00; }
21 |
22 | .cm-s-eclipse .CodeMirror-activeline-background { background: #e8f2ff; }
23 | .cm-s-eclipse .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }
24 |
--------------------------------------------------------------------------------
/static/plugins/datatables/css/buttons.bootstrap.min.css:
--------------------------------------------------------------------------------
1 | @keyframes dtb-spinner{100%{transform:rotate(360deg)}}@-o-keyframes dtb-spinner{100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes dtb-spinner{100%{-ms-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dtb-spinner{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes dtb-spinner{100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}div.dt-button-info{position:fixed;top:50%;left:50%;width:400px;margin-top:-100px;margin-left:-200px;background-color:white;border:2px solid #111;box-shadow:3px 3px 8px rgba(0,0,0,0.3);border-radius:3px;text-align:center;z-index:21}div.dt-button-info h2{padding:0.5em;margin:0;font-weight:normal;border-bottom:1px solid #ddd;background-color:#f3f3f3}div.dt-button-info>div{padding:1em}ul.dt-button-collection.dropdown-menu{display:block;z-index:2002;-webkit-column-gap:8px;-moz-column-gap:8px;-ms-column-gap:8px;-o-column-gap:8px;column-gap:8px}ul.dt-button-collection.dropdown-menu.fixed{position:fixed;top:50%;left:50%;margin-left:-75px;border-radius:0}ul.dt-button-collection.dropdown-menu.fixed.two-column{margin-left:-150px}ul.dt-button-collection.dropdown-menu.fixed.three-column{margin-left:-225px}ul.dt-button-collection.dropdown-menu.fixed.four-column{margin-left:-300px}ul.dt-button-collection.dropdown-menu>*{-webkit-column-break-inside:avoid;break-inside:avoid}ul.dt-button-collection.dropdown-menu.two-column{width:300px;padding-bottom:1px;-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2}ul.dt-button-collection.dropdown-menu.three-column{width:450px;padding-bottom:1px;-webkit-column-count:3;-moz-column-count:3;-ms-column-count:3;-o-column-count:3;column-count:3}ul.dt-button-collection.dropdown-menu.four-column{width:600px;padding-bottom:1px;-webkit-column-count:4;-moz-column-count:4;-ms-column-count:4;-o-column-count:4;column-count:4}ul.dt-button-collection.dropdown-menu .dt-button{border-radius:0}div.dt-button-background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:2001}@media screen and (max-width: 767px){div.dt-buttons{float:none;width:100%;text-align:center;margin-bottom:0.5em}div.dt-buttons a.btn{float:none}}div.dt-buttons button.btn.processing,div.dt-buttons div.btn.processing,div.dt-buttons a.btn.processing{color:rgba(0,0,0,0.2)}div.dt-buttons button.btn.processing:after,div.dt-buttons div.btn.processing:after,div.dt-buttons a.btn.processing:after{position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;box-sizing:border-box;display:block;content:' ';border:2px solid #282828;border-radius:50%;border-left-color:transparent;border-right-color:transparent;animation:dtb-spinner 1500ms infinite linear;-o-animation:dtb-spinner 1500ms infinite linear;-ms-animation:dtb-spinner 1500ms infinite linear;-webkit-animation:dtb-spinner 1500ms infinite linear;-moz-animation:dtb-spinner 1500ms infinite linear}
2 |
--------------------------------------------------------------------------------
/static/plugins/datatables/js/buttons.bootstrap.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | Bootstrap integration for DataTables' Buttons
3 | ©2016 SpryMedia Ltd - datatables.net/license
4 | */
5 | (function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net-bs","datatables.net-buttons"],function(a){return c(a,window,document)}):"object"===typeof exports?module.exports=function(a,b){a||(a=window);if(!b||!b.fn.dataTable)b=require("datatables.net-bs")(a,b).$;b.fn.dataTable.Buttons||require("datatables.net-buttons")(a,b);return c(b,a,a.document)}:c(jQuery,window,document)})(function(c){var a=c.fn.dataTable;c.extend(!0,a.Buttons.defaults,{dom:{container:{className:"dt-buttons btn-group"},
6 | button:{className:"btn btn-default"},collection:{tag:"ul",className:"dt-button-collection dropdown-menu",button:{tag:"li",className:"dt-button",active:"active",disabled:"disabled"},buttonLiner:{tag:"a",className:""}}}});a.ext.buttons.collection.text=function(a){return a.i18n("buttons.collection",'Collection ')};return a.Buttons});
7 |
--------------------------------------------------------------------------------
/static/plugins/datetimepicker/js/bootstrap-datetimepicker.zh-CN.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Simplified Chinese translation for bootstrap-datetimepicker
3 | * Yuan Cheung
4 | */
5 | ;(function($){
6 | $.fn.datetimepicker.dates['zh-CN'] = {
7 | days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"],
8 | daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六", "周日"],
9 | daysMin: ["日", "一", "二", "三", "四", "五", "六", "日"],
10 | months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
11 | monthsShort: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
12 | today: "今天",
13 | suffix: [],
14 | meridiem: ["上午", "下午"]
15 | };
16 | }(jQuery));
17 |
--------------------------------------------------------------------------------
/static/plugins/footable/css/fonts/footable.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/footable/css/fonts/footable.eot
--------------------------------------------------------------------------------
/static/plugins/footable/css/fonts/footable.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/footable/css/fonts/footable.ttf
--------------------------------------------------------------------------------
/static/plugins/footable/css/fonts/footable.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/footable/css/fonts/footable.woff
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/all.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin skins
2 | ----------------------------------- */
3 | @import url("minimal/_all.css");
4 | /*
5 | @import url("minimal/minimal.css");
6 | @import url("minimal/red.css");
7 | @import url("minimal/green.css");
8 | @import url("minimal/blue.css");
9 | @import url("minimal/aero.css");
10 | @import url("minimal/grey.css");
11 | @import url("minimal/orange.css");
12 | @import url("minimal/yellow.css");
13 | @import url("minimal/pink.css");
14 | @import url("minimal/purple.css");
15 | */
16 |
17 | @import url("square/_all.css");
18 | /*
19 | @import url("square/square.css");
20 | @import url("square/red.css");
21 | @import url("square/green.css");
22 | @import url("square/blue.css");
23 | @import url("square/aero.css");
24 | @import url("square/grey.css");
25 | @import url("square/orange.css");
26 | @import url("square/yellow.css");
27 | @import url("square/pink.css");
28 | @import url("square/purple.css");
29 | */
30 |
31 | @import url("flat/_all.css");
32 | /*
33 | @import url("flat/flat.css");
34 | @import url("flat/red.css");
35 | @import url("flat/green.css");
36 | @import url("flat/blue.css");
37 | @import url("flat/aero.css");
38 | @import url("flat/grey.css");
39 | @import url("flat/orange.css");
40 | @import url("flat/yellow.css");
41 | @import url("flat/pink.css");
42 | @import url("flat/purple.css");
43 | */
44 |
45 | @import url("line/_all.css");
46 | /*
47 | @import url("line/line.css");
48 | @import url("line/red.css");
49 | @import url("line/green.css");
50 | @import url("line/blue.css");
51 | @import url("line/aero.css");
52 | @import url("line/grey.css");
53 | @import url("line/orange.css");
54 | @import url("line/yellow.css");
55 | @import url("line/pink.css");
56 | @import url("line/purple.css");
57 | */
58 |
59 | @import url("polaris/polaris.css");
60 |
61 | @import url("futurico/futurico.css");
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/aero.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Flat skin, aero
2 | ----------------------------------- */
3 | .icheckbox_flat-aero,
4 | .iradio_flat-aero {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 20px;
11 | height: 20px;
12 | background: url(aero.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_flat-aero {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_flat-aero.checked {
21 | background-position: -22px 0;
22 | }
23 | .icheckbox_flat-aero.disabled {
24 | background-position: -44px 0;
25 | cursor: default;
26 | }
27 | .icheckbox_flat-aero.checked.disabled {
28 | background-position: -66px 0;
29 | }
30 |
31 | .iradio_flat-aero {
32 | background-position: -88px 0;
33 | }
34 | .iradio_flat-aero.checked {
35 | background-position: -110px 0;
36 | }
37 | .iradio_flat-aero.disabled {
38 | background-position: -132px 0;
39 | cursor: default;
40 | }
41 | .iradio_flat-aero.checked.disabled {
42 | background-position: -154px 0;
43 | }
44 |
45 | /* HiDPI support */
46 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
47 | .icheckbox_flat-aero,
48 | .iradio_flat-aero {
49 | background-image: url(aero@2x.png);
50 | -webkit-background-size: 176px 22px;
51 | background-size: 176px 22px;
52 | }
53 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/aero.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/flat/aero.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/aero@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/flat/aero@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/blue.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Flat skin, blue
2 | ----------------------------------- */
3 | .icheckbox_flat-blue,
4 | .iradio_flat-blue {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 20px;
11 | height: 20px;
12 | background: url(blue.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_flat-blue {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_flat-blue.checked {
21 | background-position: -22px 0;
22 | }
23 | .icheckbox_flat-blue.disabled {
24 | background-position: -44px 0;
25 | cursor: default;
26 | }
27 | .icheckbox_flat-blue.checked.disabled {
28 | background-position: -66px 0;
29 | }
30 |
31 | .iradio_flat-blue {
32 | background-position: -88px 0;
33 | }
34 | .iradio_flat-blue.checked {
35 | background-position: -110px 0;
36 | }
37 | .iradio_flat-blue.disabled {
38 | background-position: -132px 0;
39 | cursor: default;
40 | }
41 | .iradio_flat-blue.checked.disabled {
42 | background-position: -154px 0;
43 | }
44 |
45 | /* HiDPI support */
46 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
47 | .icheckbox_flat-blue,
48 | .iradio_flat-blue {
49 | background-image: url(blue@2x.png);
50 | -webkit-background-size: 176px 22px;
51 | background-size: 176px 22px;
52 | }
53 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/flat/blue.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/blue@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/flat/blue@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/flat.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin flat skin, black
2 | ----------------------------------- */
3 | .icheckbox_flat,
4 | .iradio_flat {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 20px;
11 | height: 20px;
12 | background: url(flat.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_flat {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_flat.checked {
21 | background-position: -22px 0;
22 | }
23 | .icheckbox_flat.disabled {
24 | background-position: -44px 0;
25 | cursor: default;
26 | }
27 | .icheckbox_flat.checked.disabled {
28 | background-position: -66px 0;
29 | }
30 |
31 | .iradio_flat {
32 | background-position: -88px 0;
33 | }
34 | .iradio_flat.checked {
35 | background-position: -110px 0;
36 | }
37 | .iradio_flat.disabled {
38 | background-position: -132px 0;
39 | cursor: default;
40 | }
41 | .iradio_flat.checked.disabled {
42 | background-position: -154px 0;
43 | }
44 |
45 | /* HiDPI support */
46 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
47 | .icheckbox_flat,
48 | .iradio_flat {
49 | background-image: url(flat@2x.png);
50 | -webkit-background-size: 176px 22px;
51 | background-size: 176px 22px;
52 | }
53 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/flat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/flat/flat.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/flat@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/flat/flat@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/green.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Flat skin, green
2 | ----------------------------------- */
3 | .icheckbox_flat-green,
4 | .iradio_flat-green {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 20px;
11 | height: 20px;
12 | background: url(green.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_flat-green {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_flat-green.checked {
21 | background-position: -22px 0;
22 | }
23 | .icheckbox_flat-green.disabled {
24 | background-position: -44px 0;
25 | cursor: default;
26 | }
27 | .icheckbox_flat-green.checked.disabled {
28 | background-position: -66px 0;
29 | }
30 |
31 | .iradio_flat-green {
32 | background-position: -88px 0;
33 | }
34 | .iradio_flat-green.checked {
35 | background-position: -110px 0;
36 | }
37 | .iradio_flat-green.disabled {
38 | background-position: -132px 0;
39 | cursor: default;
40 | }
41 | .iradio_flat-green.checked.disabled {
42 | background-position: -154px 0;
43 | }
44 |
45 | /* HiDPI support */
46 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
47 | .icheckbox_flat-green,
48 | .iradio_flat-green {
49 | background-image: url(green@2x.png);
50 | -webkit-background-size: 176px 22px;
51 | background-size: 176px 22px;
52 | }
53 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/flat/green.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/green@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/flat/green@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/grey.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Flat skin, grey
2 | ----------------------------------- */
3 | .icheckbox_flat-grey,
4 | .iradio_flat-grey {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 20px;
11 | height: 20px;
12 | background: url(grey.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_flat-grey {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_flat-grey.checked {
21 | background-position: -22px 0;
22 | }
23 | .icheckbox_flat-grey.disabled {
24 | background-position: -44px 0;
25 | cursor: default;
26 | }
27 | .icheckbox_flat-grey.checked.disabled {
28 | background-position: -66px 0;
29 | }
30 |
31 | .iradio_flat-grey {
32 | background-position: -88px 0;
33 | }
34 | .iradio_flat-grey.checked {
35 | background-position: -110px 0;
36 | }
37 | .iradio_flat-grey.disabled {
38 | background-position: -132px 0;
39 | cursor: default;
40 | }
41 | .iradio_flat-grey.checked.disabled {
42 | background-position: -154px 0;
43 | }
44 |
45 | /* HiDPI support */
46 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
47 | .icheckbox_flat-grey,
48 | .iradio_flat-grey {
49 | background-image: url(grey@2x.png);
50 | -webkit-background-size: 176px 22px;
51 | background-size: 176px 22px;
52 | }
53 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/flat/grey.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/grey@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/flat/grey@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/orange.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Flat skin, orange
2 | ----------------------------------- */
3 | .icheckbox_flat-orange,
4 | .iradio_flat-orange {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 20px;
11 | height: 20px;
12 | background: url(orange.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_flat-orange {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_flat-orange.checked {
21 | background-position: -22px 0;
22 | }
23 | .icheckbox_flat-orange.disabled {
24 | background-position: -44px 0;
25 | cursor: default;
26 | }
27 | .icheckbox_flat-orange.checked.disabled {
28 | background-position: -66px 0;
29 | }
30 |
31 | .iradio_flat-orange {
32 | background-position: -88px 0;
33 | }
34 | .iradio_flat-orange.checked {
35 | background-position: -110px 0;
36 | }
37 | .iradio_flat-orange.disabled {
38 | background-position: -132px 0;
39 | cursor: default;
40 | }
41 | .iradio_flat-orange.checked.disabled {
42 | background-position: -154px 0;
43 | }
44 |
45 | /* HiDPI support */
46 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
47 | .icheckbox_flat-orange,
48 | .iradio_flat-orange {
49 | background-image: url(orange@2x.png);
50 | -webkit-background-size: 176px 22px;
51 | background-size: 176px 22px;
52 | }
53 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/orange.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/flat/orange.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/orange@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/flat/orange@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/pink.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Flat skin, pink
2 | ----------------------------------- */
3 | .icheckbox_flat-pink,
4 | .iradio_flat-pink {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 20px;
11 | height: 20px;
12 | background: url(pink.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_flat-pink {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_flat-pink.checked {
21 | background-position: -22px 0;
22 | }
23 | .icheckbox_flat-pink.disabled {
24 | background-position: -44px 0;
25 | cursor: default;
26 | }
27 | .icheckbox_flat-pink.checked.disabled {
28 | background-position: -66px 0;
29 | }
30 |
31 | .iradio_flat-pink {
32 | background-position: -88px 0;
33 | }
34 | .iradio_flat-pink.checked {
35 | background-position: -110px 0;
36 | }
37 | .iradio_flat-pink.disabled {
38 | background-position: -132px 0;
39 | cursor: default;
40 | }
41 | .iradio_flat-pink.checked.disabled {
42 | background-position: -154px 0;
43 | }
44 |
45 | /* HiDPI support */
46 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
47 | .icheckbox_flat-pink,
48 | .iradio_flat-pink {
49 | background-image: url(pink@2x.png);
50 | -webkit-background-size: 176px 22px;
51 | background-size: 176px 22px;
52 | }
53 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/pink.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/flat/pink.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/pink@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/flat/pink@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/purple.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Flat skin, purple
2 | ----------------------------------- */
3 | .icheckbox_flat-purple,
4 | .iradio_flat-purple {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 20px;
11 | height: 20px;
12 | background: url(purple.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_flat-purple {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_flat-purple.checked {
21 | background-position: -22px 0;
22 | }
23 | .icheckbox_flat-purple.disabled {
24 | background-position: -44px 0;
25 | cursor: default;
26 | }
27 | .icheckbox_flat-purple.checked.disabled {
28 | background-position: -66px 0;
29 | }
30 |
31 | .iradio_flat-purple {
32 | background-position: -88px 0;
33 | }
34 | .iradio_flat-purple.checked {
35 | background-position: -110px 0;
36 | }
37 | .iradio_flat-purple.disabled {
38 | background-position: -132px 0;
39 | cursor: default;
40 | }
41 | .iradio_flat-purple.checked.disabled {
42 | background-position: -154px 0;
43 | }
44 |
45 | /* HiDPI support */
46 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
47 | .icheckbox_flat-purple,
48 | .iradio_flat-purple {
49 | background-image: url(purple@2x.png);
50 | -webkit-background-size: 176px 22px;
51 | background-size: 176px 22px;
52 | }
53 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/purple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/flat/purple.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/purple@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/flat/purple@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/red.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Flat skin, red
2 | ----------------------------------- */
3 | .icheckbox_flat-red,
4 | .iradio_flat-red {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 20px;
11 | height: 20px;
12 | background: url(red.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_flat-red {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_flat-red.checked {
21 | background-position: -22px 0;
22 | }
23 | .icheckbox_flat-red.disabled {
24 | background-position: -44px 0;
25 | cursor: default;
26 | }
27 | .icheckbox_flat-red.checked.disabled {
28 | background-position: -66px 0;
29 | }
30 |
31 | .iradio_flat-red {
32 | background-position: -88px 0;
33 | }
34 | .iradio_flat-red.checked {
35 | background-position: -110px 0;
36 | }
37 | .iradio_flat-red.disabled {
38 | background-position: -132px 0;
39 | cursor: default;
40 | }
41 | .iradio_flat-red.checked.disabled {
42 | background-position: -154px 0;
43 | }
44 |
45 | /* HiDPI support */
46 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
47 | .icheckbox_flat-red,
48 | .iradio_flat-red {
49 | background-image: url(red@2x.png);
50 | -webkit-background-size: 176px 22px;
51 | background-size: 176px 22px;
52 | }
53 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/flat/red.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/red@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/flat/red@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/yellow.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Flat skin, yellow
2 | ----------------------------------- */
3 | .icheckbox_flat-yellow,
4 | .iradio_flat-yellow {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 20px;
11 | height: 20px;
12 | background: url(yellow.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_flat-yellow {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_flat-yellow.checked {
21 | background-position: -22px 0;
22 | }
23 | .icheckbox_flat-yellow.disabled {
24 | background-position: -44px 0;
25 | cursor: default;
26 | }
27 | .icheckbox_flat-yellow.checked.disabled {
28 | background-position: -66px 0;
29 | }
30 |
31 | .iradio_flat-yellow {
32 | background-position: -88px 0;
33 | }
34 | .iradio_flat-yellow.checked {
35 | background-position: -110px 0;
36 | }
37 | .iradio_flat-yellow.disabled {
38 | background-position: -132px 0;
39 | cursor: default;
40 | }
41 | .iradio_flat-yellow.checked.disabled {
42 | background-position: -154px 0;
43 | }
44 |
45 | /* HiDPI support */
46 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
47 | .icheckbox_flat-yellow,
48 | .iradio_flat-yellow {
49 | background-image: url(yellow@2x.png);
50 | -webkit-background-size: 176px 22px;
51 | background-size: 176px 22px;
52 | }
53 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/yellow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/flat/yellow.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/flat/yellow@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/flat/yellow@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/futurico/futurico.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Futurico skin
2 | ----------------------------------- */
3 | .icheckbox_futurico,
4 | .iradio_futurico {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 16px;
11 | height: 17px;
12 | background: url(futurico.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_futurico {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_futurico.checked {
21 | background-position: -18px 0;
22 | }
23 | .icheckbox_futurico.disabled {
24 | background-position: -36px 0;
25 | cursor: default;
26 | }
27 | .icheckbox_futurico.checked.disabled {
28 | background-position: -54px 0;
29 | }
30 |
31 | .iradio_futurico {
32 | background-position: -72px 0;
33 | }
34 | .iradio_futurico.checked {
35 | background-position: -90px 0;
36 | }
37 | .iradio_futurico.disabled {
38 | background-position: -108px 0;
39 | cursor: default;
40 | }
41 | .iradio_futurico.checked.disabled {
42 | background-position: -126px 0;
43 | }
44 |
45 | /* HiDPI support */
46 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
47 | .icheckbox_futurico,
48 | .iradio_futurico {
49 | background-image: url(futurico@2x.png);
50 | -webkit-background-size: 144px 19px;
51 | background-size: 144px 19px;
52 | }
53 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/futurico/futurico.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/futurico/futurico.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/futurico/futurico@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/futurico/futurico@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/line/aero.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Line skin, aero
2 | ----------------------------------- */
3 | .icheckbox_line-aero,
4 | .iradio_line-aero {
5 | position: relative;
6 | display: block;
7 | margin: 0;
8 | padding: 5px 15px 5px 38px;
9 | font-size: 13px;
10 | line-height: 17px;
11 | color: #fff;
12 | background: #9cc2cb;
13 | border: none;
14 | -webkit-border-radius: 3px;
15 | -moz-border-radius: 3px;
16 | border-radius: 3px;
17 | cursor: pointer;
18 | }
19 | .icheckbox_line-aero .icheck_line-icon,
20 | .iradio_line-aero .icheck_line-icon {
21 | position: absolute;
22 | top: 50%;
23 | left: 13px;
24 | width: 13px;
25 | height: 11px;
26 | margin: -5px 0 0 0;
27 | padding: 0;
28 | overflow: hidden;
29 | background: url(line.png) no-repeat;
30 | border: none;
31 | }
32 | .icheckbox_line-aero.hover,
33 | .icheckbox_line-aero.checked.hover,
34 | .iradio_line-aero.hover {
35 | background: #B5D1D8;
36 | }
37 | .icheckbox_line-aero.checked,
38 | .iradio_line-aero.checked {
39 | background: #9cc2cb;
40 | }
41 | .icheckbox_line-aero.checked .icheck_line-icon,
42 | .iradio_line-aero.checked .icheck_line-icon {
43 | background-position: -15px 0;
44 | }
45 | .icheckbox_line-aero.disabled,
46 | .iradio_line-aero.disabled {
47 | background: #D2E4E8;
48 | cursor: default;
49 | }
50 | .icheckbox_line-aero.disabled .icheck_line-icon,
51 | .iradio_line-aero.disabled .icheck_line-icon {
52 | background-position: -30px 0;
53 | }
54 | .icheckbox_line-aero.checked.disabled,
55 | .iradio_line-aero.checked.disabled {
56 | background: #D2E4E8;
57 | }
58 | .icheckbox_line-aero.checked.disabled .icheck_line-icon,
59 | .iradio_line-aero.checked.disabled .icheck_line-icon {
60 | background-position: -45px 0;
61 | }
62 |
63 | /* HiDPI support */
64 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
65 | .icheckbox_line-aero .icheck_line-icon,
66 | .iradio_line-aero .icheck_line-icon {
67 | background-image: url(line@2x.png);
68 | -webkit-background-size: 60px 13px;
69 | background-size: 60px 13px;
70 | }
71 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/line/blue.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Line skin, blue
2 | ----------------------------------- */
3 | .icheckbox_line-blue,
4 | .iradio_line-blue {
5 | position: relative;
6 | display: block;
7 | margin: 0;
8 | padding: 5px 15px 5px 38px;
9 | font-size: 13px;
10 | line-height: 17px;
11 | color: #fff;
12 | background: #2489c5;
13 | border: none;
14 | -webkit-border-radius: 3px;
15 | -moz-border-radius: 3px;
16 | border-radius: 3px;
17 | cursor: pointer;
18 | }
19 | .icheckbox_line-blue .icheck_line-icon,
20 | .iradio_line-blue .icheck_line-icon {
21 | position: absolute;
22 | top: 50%;
23 | left: 13px;
24 | width: 13px;
25 | height: 11px;
26 | margin: -5px 0 0 0;
27 | padding: 0;
28 | overflow: hidden;
29 | background: url(line.png) no-repeat;
30 | border: none;
31 | }
32 | .icheckbox_line-blue.hover,
33 | .icheckbox_line-blue.checked.hover,
34 | .iradio_line-blue.hover {
35 | background: #3DA0DB;
36 | }
37 | .icheckbox_line-blue.checked,
38 | .iradio_line-blue.checked {
39 | background: #2489c5;
40 | }
41 | .icheckbox_line-blue.checked .icheck_line-icon,
42 | .iradio_line-blue.checked .icheck_line-icon {
43 | background-position: -15px 0;
44 | }
45 | .icheckbox_line-blue.disabled,
46 | .iradio_line-blue.disabled {
47 | background: #ADD7F0;
48 | cursor: default;
49 | }
50 | .icheckbox_line-blue.disabled .icheck_line-icon,
51 | .iradio_line-blue.disabled .icheck_line-icon {
52 | background-position: -30px 0;
53 | }
54 | .icheckbox_line-blue.checked.disabled,
55 | .iradio_line-blue.checked.disabled {
56 | background: #ADD7F0;
57 | }
58 | .icheckbox_line-blue.checked.disabled .icheck_line-icon,
59 | .iradio_line-blue.checked.disabled .icheck_line-icon {
60 | background-position: -45px 0;
61 | }
62 |
63 | /* HiDPI support */
64 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
65 | .icheckbox_line-blue .icheck_line-icon,
66 | .iradio_line-blue .icheck_line-icon {
67 | background-image: url(line@2x.png);
68 | -webkit-background-size: 60px 13px;
69 | background-size: 60px 13px;
70 | }
71 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/line/green.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Line skin, green
2 | ----------------------------------- */
3 | .icheckbox_line-green,
4 | .iradio_line-green {
5 | position: relative;
6 | display: block;
7 | margin: 0;
8 | padding: 5px 15px 5px 38px;
9 | font-size: 13px;
10 | line-height: 17px;
11 | color: #fff;
12 | background: #1b7e5a;
13 | border: none;
14 | -webkit-border-radius: 3px;
15 | -moz-border-radius: 3px;
16 | border-radius: 3px;
17 | cursor: pointer;
18 | }
19 | .icheckbox_line-green .icheck_line-icon,
20 | .iradio_line-green .icheck_line-icon {
21 | position: absolute;
22 | top: 50%;
23 | left: 13px;
24 | width: 13px;
25 | height: 11px;
26 | margin: -5px 0 0 0;
27 | padding: 0;
28 | overflow: hidden;
29 | background: url(line.png) no-repeat;
30 | border: none;
31 | }
32 | .icheckbox_line-green.hover,
33 | .icheckbox_line-green.checked.hover,
34 | .iradio_line-green.hover {
35 | background: #24AA7A;
36 | }
37 | .icheckbox_line-green.checked,
38 | .iradio_line-green.checked {
39 | background: #1b7e5a;
40 | }
41 | .icheckbox_line-green.checked .icheck_line-icon,
42 | .iradio_line-green.checked .icheck_line-icon {
43 | background-position: -15px 0;
44 | }
45 | .icheckbox_line-green.disabled,
46 | .iradio_line-green.disabled {
47 | background: #89E6C4;
48 | cursor: default;
49 | }
50 | .icheckbox_line-green.disabled .icheck_line-icon,
51 | .iradio_line-green.disabled .icheck_line-icon {
52 | background-position: -30px 0;
53 | }
54 | .icheckbox_line-green.checked.disabled,
55 | .iradio_line-green.checked.disabled {
56 | background: #89E6C4;
57 | }
58 | .icheckbox_line-green.checked.disabled .icheck_line-icon,
59 | .iradio_line-green.checked.disabled .icheck_line-icon {
60 | background-position: -45px 0;
61 | }
62 |
63 | /* HiDPI support */
64 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
65 | .icheckbox_line-green .icheck_line-icon,
66 | .iradio_line-green .icheck_line-icon {
67 | background-image: url(line@2x.png);
68 | -webkit-background-size: 60px 13px;
69 | background-size: 60px 13px;
70 | }
71 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/line/grey.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Line skin, grey
2 | ----------------------------------- */
3 | .icheckbox_line-grey,
4 | .iradio_line-grey {
5 | position: relative;
6 | display: block;
7 | margin: 0;
8 | padding: 5px 15px 5px 38px;
9 | font-size: 13px;
10 | line-height: 17px;
11 | color: #fff;
12 | background: #73716e;
13 | border: none;
14 | -webkit-border-radius: 3px;
15 | -moz-border-radius: 3px;
16 | border-radius: 3px;
17 | cursor: pointer;
18 | }
19 | .icheckbox_line-grey .icheck_line-icon,
20 | .iradio_line-grey .icheck_line-icon {
21 | position: absolute;
22 | top: 50%;
23 | left: 13px;
24 | width: 13px;
25 | height: 11px;
26 | margin: -5px 0 0 0;
27 | padding: 0;
28 | overflow: hidden;
29 | background: url(line.png) no-repeat;
30 | border: none;
31 | }
32 | .icheckbox_line-grey.hover,
33 | .icheckbox_line-grey.checked.hover,
34 | .iradio_line-grey.hover {
35 | background: #8B8986;
36 | }
37 | .icheckbox_line-grey.checked,
38 | .iradio_line-grey.checked {
39 | background: #73716e;
40 | }
41 | .icheckbox_line-grey.checked .icheck_line-icon,
42 | .iradio_line-grey.checked .icheck_line-icon {
43 | background-position: -15px 0;
44 | }
45 | .icheckbox_line-grey.disabled,
46 | .iradio_line-grey.disabled {
47 | background: #D5D4D3;
48 | cursor: default;
49 | }
50 | .icheckbox_line-grey.disabled .icheck_line-icon,
51 | .iradio_line-grey.disabled .icheck_line-icon {
52 | background-position: -30px 0;
53 | }
54 | .icheckbox_line-grey.checked.disabled,
55 | .iradio_line-grey.checked.disabled {
56 | background: #D5D4D3;
57 | }
58 | .icheckbox_line-grey.checked.disabled .icheck_line-icon,
59 | .iradio_line-grey.checked.disabled .icheck_line-icon {
60 | background-position: -45px 0;
61 | }
62 |
63 | /* HiDPI support */
64 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
65 | .icheckbox_line-grey .icheck_line-icon,
66 | .iradio_line-grey .icheck_line-icon {
67 | background-image: url(line@2x.png);
68 | -webkit-background-size: 60px 13px;
69 | background-size: 60px 13px;
70 | }
71 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/line/line.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Line skin, black
2 | ----------------------------------- */
3 | .icheckbox_line,
4 | .iradio_line {
5 | position: relative;
6 | display: block;
7 | margin: 0;
8 | padding: 5px 15px 5px 38px;
9 | font-size: 13px;
10 | line-height: 17px;
11 | color: #fff;
12 | background: #000;
13 | border: none;
14 | -webkit-border-radius: 3px;
15 | -moz-border-radius: 3px;
16 | border-radius: 3px;
17 | cursor: pointer;
18 | }
19 | .icheckbox_line .icheck_line-icon,
20 | .iradio_line .icheck_line-icon {
21 | position: absolute;
22 | top: 50%;
23 | left: 13px;
24 | width: 13px;
25 | height: 11px;
26 | margin: -5px 0 0 0;
27 | padding: 0;
28 | overflow: hidden;
29 | background: url(line.png) no-repeat;
30 | border: none;
31 | }
32 | .icheckbox_line.hover,
33 | .icheckbox_line.checked.hover,
34 | .iradio_line.hover {
35 | background: #444;
36 | }
37 | .icheckbox_line.checked,
38 | .iradio_line.checked {
39 | background: #000;
40 | }
41 | .icheckbox_line.checked .icheck_line-icon,
42 | .iradio_line.checked .icheck_line-icon {
43 | background-position: -15px 0;
44 | }
45 | .icheckbox_line.disabled,
46 | .iradio_line.disabled {
47 | background: #ccc;
48 | cursor: default;
49 | }
50 | .icheckbox_line.disabled .icheck_line-icon,
51 | .iradio_line.disabled .icheck_line-icon {
52 | background-position: -30px 0;
53 | }
54 | .icheckbox_line.checked.disabled,
55 | .iradio_line.checked.disabled {
56 | background: #ccc;
57 | }
58 | .icheckbox_line.checked.disabled .icheck_line-icon,
59 | .iradio_line.checked.disabled .icheck_line-icon {
60 | background-position: -45px 0;
61 | }
62 |
63 | /* HiDPI support */
64 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
65 | .icheckbox_line .icheck_line-icon,
66 | .iradio_line .icheck_line-icon {
67 | background-image: url(line@2x.png);
68 | -webkit-background-size: 60px 13px;
69 | background-size: 60px 13px;
70 | }
71 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/line/line.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/line/line.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/line/line@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/line/line@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/line/orange.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Line skin, orange
2 | ----------------------------------- */
3 | .icheckbox_line-orange,
4 | .iradio_line-orange {
5 | position: relative;
6 | display: block;
7 | margin: 0;
8 | padding: 5px 15px 5px 38px;
9 | font-size: 13px;
10 | line-height: 17px;
11 | color: #fff;
12 | background: #f70;
13 | border: none;
14 | -webkit-border-radius: 3px;
15 | -moz-border-radius: 3px;
16 | border-radius: 3px;
17 | cursor: pointer;
18 | }
19 | .icheckbox_line-orange .icheck_line-icon,
20 | .iradio_line-orange .icheck_line-icon {
21 | position: absolute;
22 | top: 50%;
23 | left: 13px;
24 | width: 13px;
25 | height: 11px;
26 | margin: -5px 0 0 0;
27 | padding: 0;
28 | overflow: hidden;
29 | background: url(line.png) no-repeat;
30 | border: none;
31 | }
32 | .icheckbox_line-orange.hover,
33 | .icheckbox_line-orange.checked.hover,
34 | .iradio_line-orange.hover {
35 | background: #FF9233;
36 | }
37 | .icheckbox_line-orange.checked,
38 | .iradio_line-orange.checked {
39 | background: #f70;
40 | }
41 | .icheckbox_line-orange.checked .icheck_line-icon,
42 | .iradio_line-orange.checked .icheck_line-icon {
43 | background-position: -15px 0;
44 | }
45 | .icheckbox_line-orange.disabled,
46 | .iradio_line-orange.disabled {
47 | background: #FFD6B3;
48 | cursor: default;
49 | }
50 | .icheckbox_line-orange.disabled .icheck_line-icon,
51 | .iradio_line-orange.disabled .icheck_line-icon {
52 | background-position: -30px 0;
53 | }
54 | .icheckbox_line-orange.checked.disabled,
55 | .iradio_line-orange.checked.disabled {
56 | background: #FFD6B3;
57 | }
58 | .icheckbox_line-orange.checked.disabled .icheck_line-icon,
59 | .iradio_line-orange.checked.disabled .icheck_line-icon {
60 | background-position: -45px 0;
61 | }
62 |
63 | /* HiDPI support */
64 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
65 | .icheckbox_line-orange .icheck_line-icon,
66 | .iradio_line-orange .icheck_line-icon {
67 | background-image: url(line@2x.png);
68 | -webkit-background-size: 60px 13px;
69 | background-size: 60px 13px;
70 | }
71 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/line/pink.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Line skin, pink
2 | ----------------------------------- */
3 | .icheckbox_line-pink,
4 | .iradio_line-pink {
5 | position: relative;
6 | display: block;
7 | margin: 0;
8 | padding: 5px 15px 5px 38px;
9 | font-size: 13px;
10 | line-height: 17px;
11 | color: #fff;
12 | background: #a77a94;
13 | border: none;
14 | -webkit-border-radius: 3px;
15 | -moz-border-radius: 3px;
16 | border-radius: 3px;
17 | cursor: pointer;
18 | }
19 | .icheckbox_line-pink .icheck_line-icon,
20 | .iradio_line-pink .icheck_line-icon {
21 | position: absolute;
22 | top: 50%;
23 | left: 13px;
24 | width: 13px;
25 | height: 11px;
26 | margin: -5px 0 0 0;
27 | padding: 0;
28 | overflow: hidden;
29 | background: url(line.png) no-repeat;
30 | border: none;
31 | }
32 | .icheckbox_line-pink.hover,
33 | .icheckbox_line-pink.checked.hover,
34 | .iradio_line-pink.hover {
35 | background: #B995A9;
36 | }
37 | .icheckbox_line-pink.checked,
38 | .iradio_line-pink.checked {
39 | background: #a77a94;
40 | }
41 | .icheckbox_line-pink.checked .icheck_line-icon,
42 | .iradio_line-pink.checked .icheck_line-icon {
43 | background-position: -15px 0;
44 | }
45 | .icheckbox_line-pink.disabled,
46 | .iradio_line-pink.disabled {
47 | background: #E0D0DA;
48 | cursor: default;
49 | }
50 | .icheckbox_line-pink.disabled .icheck_line-icon,
51 | .iradio_line-pink.disabled .icheck_line-icon {
52 | background-position: -30px 0;
53 | }
54 | .icheckbox_line-pink.checked.disabled,
55 | .iradio_line-pink.checked.disabled {
56 | background: #E0D0DA;
57 | }
58 | .icheckbox_line-pink.checked.disabled .icheck_line-icon,
59 | .iradio_line-pink.checked.disabled .icheck_line-icon {
60 | background-position: -45px 0;
61 | }
62 |
63 | /* HiDPI support */
64 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
65 | .icheckbox_line-pink .icheck_line-icon,
66 | .iradio_line-pink .icheck_line-icon {
67 | background-image: url(line@2x.png);
68 | -webkit-background-size: 60px 13px;
69 | background-size: 60px 13px;
70 | }
71 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/line/purple.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Line skin, purple
2 | ----------------------------------- */
3 | .icheckbox_line-purple,
4 | .iradio_line-purple {
5 | position: relative;
6 | display: block;
7 | margin: 0;
8 | padding: 5px 15px 5px 38px;
9 | font-size: 13px;
10 | line-height: 17px;
11 | color: #fff;
12 | background: #6a5a8c;
13 | border: none;
14 | -webkit-border-radius: 3px;
15 | -moz-border-radius: 3px;
16 | border-radius: 3px;
17 | cursor: pointer;
18 | }
19 | .icheckbox_line-purple .icheck_line-icon,
20 | .iradio_line-purple .icheck_line-icon {
21 | position: absolute;
22 | top: 50%;
23 | left: 13px;
24 | width: 13px;
25 | height: 11px;
26 | margin: -5px 0 0 0;
27 | padding: 0;
28 | overflow: hidden;
29 | background: url(line.png) no-repeat;
30 | border: none;
31 | }
32 | .icheckbox_line-purple.hover,
33 | .icheckbox_line-purple.checked.hover,
34 | .iradio_line-purple.hover {
35 | background: #8677A7;
36 | }
37 | .icheckbox_line-purple.checked,
38 | .iradio_line-purple.checked {
39 | background: #6a5a8c;
40 | }
41 | .icheckbox_line-purple.checked .icheck_line-icon,
42 | .iradio_line-purple.checked .icheck_line-icon {
43 | background-position: -15px 0;
44 | }
45 | .icheckbox_line-purple.disabled,
46 | .iradio_line-purple.disabled {
47 | background: #D2CCDE;
48 | cursor: default;
49 | }
50 | .icheckbox_line-purple.disabled .icheck_line-icon,
51 | .iradio_line-purple.disabled .icheck_line-icon {
52 | background-position: -30px 0;
53 | }
54 | .icheckbox_line-purple.checked.disabled,
55 | .iradio_line-purple.checked.disabled {
56 | background: #D2CCDE;
57 | }
58 | .icheckbox_line-purple.checked.disabled .icheck_line-icon,
59 | .iradio_line-purple.checked.disabled .icheck_line-icon {
60 | background-position: -45px 0;
61 | }
62 |
63 | /* HiDPI support */
64 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
65 | .icheckbox_line-purple .icheck_line-icon,
66 | .iradio_line-purple .icheck_line-icon {
67 | background-image: url(line@2x.png);
68 | -webkit-background-size: 60px 13px;
69 | background-size: 60px 13px;
70 | }
71 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/line/red.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Line skin, red
2 | ----------------------------------- */
3 | .icheckbox_line-red,
4 | .iradio_line-red {
5 | position: relative;
6 | display: block;
7 | margin: 0;
8 | padding: 5px 15px 5px 38px;
9 | font-size: 13px;
10 | line-height: 17px;
11 | color: #fff;
12 | background: #e56c69;
13 | border: none;
14 | -webkit-border-radius: 3px;
15 | -moz-border-radius: 3px;
16 | border-radius: 3px;
17 | cursor: pointer;
18 | }
19 | .icheckbox_line-red .icheck_line-icon,
20 | .iradio_line-red .icheck_line-icon {
21 | position: absolute;
22 | top: 50%;
23 | left: 13px;
24 | width: 13px;
25 | height: 11px;
26 | margin: -5px 0 0 0;
27 | padding: 0;
28 | overflow: hidden;
29 | background: url(line.png) no-repeat;
30 | border: none;
31 | }
32 | .icheckbox_line-red.hover,
33 | .icheckbox_line-red.checked.hover,
34 | .iradio_line-red.hover {
35 | background: #E98582;
36 | }
37 | .icheckbox_line-red.checked,
38 | .iradio_line-red.checked {
39 | background: #e56c69;
40 | }
41 | .icheckbox_line-red.checked .icheck_line-icon,
42 | .iradio_line-red.checked .icheck_line-icon {
43 | background-position: -15px 0;
44 | }
45 | .icheckbox_line-red.disabled,
46 | .iradio_line-red.disabled {
47 | background: #F7D3D2;
48 | cursor: default;
49 | }
50 | .icheckbox_line-red.disabled .icheck_line-icon,
51 | .iradio_line-red.disabled .icheck_line-icon {
52 | background-position: -30px 0;
53 | }
54 | .icheckbox_line-red.checked.disabled,
55 | .iradio_line-red.checked.disabled {
56 | background: #F7D3D2;
57 | }
58 | .icheckbox_line-red.checked.disabled .icheck_line-icon,
59 | .iradio_line-red.checked.disabled .icheck_line-icon {
60 | background-position: -45px 0;
61 | }
62 |
63 | /* HiDPI support */
64 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
65 | .icheckbox_line-red .icheck_line-icon,
66 | .iradio_line-red .icheck_line-icon {
67 | background-image: url(line@2x.png);
68 | -webkit-background-size: 60px 13px;
69 | background-size: 60px 13px;
70 | }
71 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/line/yellow.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Line skin, yellow
2 | ----------------------------------- */
3 | .icheckbox_line-yellow,
4 | .iradio_line-yellow {
5 | position: relative;
6 | display: block;
7 | margin: 0;
8 | padding: 5px 15px 5px 38px;
9 | font-size: 13px;
10 | line-height: 17px;
11 | color: #fff;
12 | background: #FFC414;
13 | border: none;
14 | -webkit-border-radius: 3px;
15 | -moz-border-radius: 3px;
16 | border-radius: 3px;
17 | cursor: pointer;
18 | }
19 | .icheckbox_line-yellow .icheck_line-icon,
20 | .iradio_line-yellow .icheck_line-icon {
21 | position: absolute;
22 | top: 50%;
23 | left: 13px;
24 | width: 13px;
25 | height: 11px;
26 | margin: -5px 0 0 0;
27 | padding: 0;
28 | overflow: hidden;
29 | background: url(line.png) no-repeat;
30 | border: none;
31 | }
32 | .icheckbox_line-yellow.hover,
33 | .icheckbox_line-yellow.checked.hover,
34 | .iradio_line-yellow.hover {
35 | background: #FFD34F;
36 | }
37 | .icheckbox_line-yellow.checked,
38 | .iradio_line-yellow.checked {
39 | background: #FFC414;
40 | }
41 | .icheckbox_line-yellow.checked .icheck_line-icon,
42 | .iradio_line-yellow.checked .icheck_line-icon {
43 | background-position: -15px 0;
44 | }
45 | .icheckbox_line-yellow.disabled,
46 | .iradio_line-yellow.disabled {
47 | background: #FFE495;
48 | cursor: default;
49 | }
50 | .icheckbox_line-yellow.disabled .icheck_line-icon,
51 | .iradio_line-yellow.disabled .icheck_line-icon {
52 | background-position: -30px 0;
53 | }
54 | .icheckbox_line-yellow.checked.disabled,
55 | .iradio_line-yellow.checked.disabled {
56 | background: #FFE495;
57 | }
58 | .icheckbox_line-yellow.checked.disabled .icheck_line-icon,
59 | .iradio_line-yellow.checked.disabled .icheck_line-icon {
60 | background-position: -45px 0;
61 | }
62 |
63 | /* HiDPI support */
64 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
65 | .icheckbox_line-yellow .icheck_line-icon,
66 | .iradio_line-yellow .icheck_line-icon {
67 | background-image: url(line@2x.png);
68 | -webkit-background-size: 60px 13px;
69 | background-size: 60px 13px;
70 | }
71 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/aero.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Minimal skin, aero
2 | ----------------------------------- */
3 | .icheckbox_minimal-aero,
4 | .iradio_minimal-aero {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 18px;
11 | height: 18px;
12 | background: url(aero.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_minimal-aero {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_minimal-aero.hover {
21 | background-position: -20px 0;
22 | }
23 | .icheckbox_minimal-aero.checked {
24 | background-position: -40px 0;
25 | }
26 | .icheckbox_minimal-aero.disabled {
27 | background-position: -60px 0;
28 | cursor: default;
29 | }
30 | .icheckbox_minimal-aero.checked.disabled {
31 | background-position: -80px 0;
32 | }
33 |
34 | .iradio_minimal-aero {
35 | background-position: -100px 0;
36 | }
37 | .iradio_minimal-aero.hover {
38 | background-position: -120px 0;
39 | }
40 | .iradio_minimal-aero.checked {
41 | background-position: -140px 0;
42 | }
43 | .iradio_minimal-aero.disabled {
44 | background-position: -160px 0;
45 | cursor: default;
46 | }
47 | .iradio_minimal-aero.checked.disabled {
48 | background-position: -180px 0;
49 | }
50 |
51 | /* HiDPI support */
52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
53 | .icheckbox_minimal-aero,
54 | .iradio_minimal-aero {
55 | background-image: url(aero@2x.png);
56 | -webkit-background-size: 200px 20px;
57 | background-size: 200px 20px;
58 | }
59 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/aero.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/minimal/aero.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/aero@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/minimal/aero@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/blue.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Minimal skin, blue
2 | ----------------------------------- */
3 | .icheckbox_minimal-blue,
4 | .iradio_minimal-blue {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 18px;
11 | height: 18px;
12 | background: url(blue.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_minimal-blue {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_minimal-blue.hover {
21 | background-position: -20px 0;
22 | }
23 | .icheckbox_minimal-blue.checked {
24 | background-position: -40px 0;
25 | }
26 | .icheckbox_minimal-blue.disabled {
27 | background-position: -60px 0;
28 | cursor: default;
29 | }
30 | .icheckbox_minimal-blue.checked.disabled {
31 | background-position: -80px 0;
32 | }
33 |
34 | .iradio_minimal-blue {
35 | background-position: -100px 0;
36 | }
37 | .iradio_minimal-blue.hover {
38 | background-position: -120px 0;
39 | }
40 | .iradio_minimal-blue.checked {
41 | background-position: -140px 0;
42 | }
43 | .iradio_minimal-blue.disabled {
44 | background-position: -160px 0;
45 | cursor: default;
46 | }
47 | .iradio_minimal-blue.checked.disabled {
48 | background-position: -180px 0;
49 | }
50 |
51 | /* HiDPI support */
52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
53 | .icheckbox_minimal-blue,
54 | .iradio_minimal-blue {
55 | background-image: url(blue@2x.png);
56 | -webkit-background-size: 200px 20px;
57 | background-size: 200px 20px;
58 | }
59 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/minimal/blue.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/blue@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/minimal/blue@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/green.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Minimal skin, green
2 | ----------------------------------- */
3 | .icheckbox_minimal-green,
4 | .iradio_minimal-green {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 18px;
11 | height: 18px;
12 | background: url(green.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_minimal-green {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_minimal-green.hover {
21 | background-position: -20px 0;
22 | }
23 | .icheckbox_minimal-green.checked {
24 | background-position: -40px 0;
25 | }
26 | .icheckbox_minimal-green.disabled {
27 | background-position: -60px 0;
28 | cursor: default;
29 | }
30 | .icheckbox_minimal-green.checked.disabled {
31 | background-position: -80px 0;
32 | }
33 |
34 | .iradio_minimal-green {
35 | background-position: -100px 0;
36 | }
37 | .iradio_minimal-green.hover {
38 | background-position: -120px 0;
39 | }
40 | .iradio_minimal-green.checked {
41 | background-position: -140px 0;
42 | }
43 | .iradio_minimal-green.disabled {
44 | background-position: -160px 0;
45 | cursor: default;
46 | }
47 | .iradio_minimal-green.checked.disabled {
48 | background-position: -180px 0;
49 | }
50 |
51 | /* HiDPI support */
52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
53 | .icheckbox_minimal-green,
54 | .iradio_minimal-green {
55 | background-image: url(green@2x.png);
56 | -webkit-background-size: 200px 20px;
57 | background-size: 200px 20px;
58 | }
59 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/minimal/green.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/green@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/minimal/green@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/grey.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Minimal skin, grey
2 | ----------------------------------- */
3 | .icheckbox_minimal-grey,
4 | .iradio_minimal-grey {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 18px;
11 | height: 18px;
12 | background: url(grey.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_minimal-grey {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_minimal-grey.hover {
21 | background-position: -20px 0;
22 | }
23 | .icheckbox_minimal-grey.checked {
24 | background-position: -40px 0;
25 | }
26 | .icheckbox_minimal-grey.disabled {
27 | background-position: -60px 0;
28 | cursor: default;
29 | }
30 | .icheckbox_minimal-grey.checked.disabled {
31 | background-position: -80px 0;
32 | }
33 |
34 | .iradio_minimal-grey {
35 | background-position: -100px 0;
36 | }
37 | .iradio_minimal-grey.hover {
38 | background-position: -120px 0;
39 | }
40 | .iradio_minimal-grey.checked {
41 | background-position: -140px 0;
42 | }
43 | .iradio_minimal-grey.disabled {
44 | background-position: -160px 0;
45 | cursor: default;
46 | }
47 | .iradio_minimal-grey.checked.disabled {
48 | background-position: -180px 0;
49 | }
50 |
51 | /* HiDPI support */
52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
53 | .icheckbox_minimal-grey,
54 | .iradio_minimal-grey {
55 | background-image: url(grey@2x.png);
56 | -webkit-background-size: 200px 20px;
57 | background-size: 200px 20px;
58 | }
59 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/minimal/grey.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/grey@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/minimal/grey@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/minimal.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Minimal skin, black
2 | ----------------------------------- */
3 | .icheckbox_minimal,
4 | .iradio_minimal {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 18px;
11 | height: 18px;
12 | background: url(minimal.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_minimal {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_minimal.hover {
21 | background-position: -20px 0;
22 | }
23 | .icheckbox_minimal.checked {
24 | background-position: -40px 0;
25 | }
26 | .icheckbox_minimal.disabled {
27 | background-position: -60px 0;
28 | cursor: default;
29 | }
30 | .icheckbox_minimal.checked.disabled {
31 | background-position: -80px 0;
32 | }
33 |
34 | .iradio_minimal {
35 | background-position: -100px 0;
36 | }
37 | .iradio_minimal.hover {
38 | background-position: -120px 0;
39 | }
40 | .iradio_minimal.checked {
41 | background-position: -140px 0;
42 | }
43 | .iradio_minimal.disabled {
44 | background-position: -160px 0;
45 | cursor: default;
46 | }
47 | .iradio_minimal.checked.disabled {
48 | background-position: -180px 0;
49 | }
50 |
51 | /* HiDPI support */
52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
53 | .icheckbox_minimal,
54 | .iradio_minimal {
55 | background-image: url(minimal@2x.png);
56 | -webkit-background-size: 200px 20px;
57 | background-size: 200px 20px;
58 | }
59 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/minimal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/minimal/minimal.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/minimal@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/minimal/minimal@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/orange.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Minimal skin, orange
2 | ----------------------------------- */
3 | .icheckbox_minimal-orange,
4 | .iradio_minimal-orange {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 18px;
11 | height: 18px;
12 | background: url(orange.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_minimal-orange {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_minimal-orange.hover {
21 | background-position: -20px 0;
22 | }
23 | .icheckbox_minimal-orange.checked {
24 | background-position: -40px 0;
25 | }
26 | .icheckbox_minimal-orange.disabled {
27 | background-position: -60px 0;
28 | cursor: default;
29 | }
30 | .icheckbox_minimal-orange.checked.disabled {
31 | background-position: -80px 0;
32 | }
33 |
34 | .iradio_minimal-orange {
35 | background-position: -100px 0;
36 | }
37 | .iradio_minimal-orange.hover {
38 | background-position: -120px 0;
39 | }
40 | .iradio_minimal-orange.checked {
41 | background-position: -140px 0;
42 | }
43 | .iradio_minimal-orange.disabled {
44 | background-position: -160px 0;
45 | cursor: default;
46 | }
47 | .iradio_minimal-orange.checked.disabled {
48 | background-position: -180px 0;
49 | }
50 |
51 | /* HiDPI support */
52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
53 | .icheckbox_minimal-orange,
54 | .iradio_minimal-orange {
55 | background-image: url(orange@2x.png);
56 | -webkit-background-size: 200px 20px;
57 | background-size: 200px 20px;
58 | }
59 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/orange.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/minimal/orange.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/orange@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/minimal/orange@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/pink.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Minimal skin, pink
2 | ----------------------------------- */
3 | .icheckbox_minimal-pink,
4 | .iradio_minimal-pink {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 18px;
11 | height: 18px;
12 | background: url(pink.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_minimal-pink {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_minimal-pink.hover {
21 | background-position: -20px 0;
22 | }
23 | .icheckbox_minimal-pink.checked {
24 | background-position: -40px 0;
25 | }
26 | .icheckbox_minimal-pink.disabled {
27 | background-position: -60px 0;
28 | cursor: default;
29 | }
30 | .icheckbox_minimal-pink.checked.disabled {
31 | background-position: -80px 0;
32 | }
33 |
34 | .iradio_minimal-pink {
35 | background-position: -100px 0;
36 | }
37 | .iradio_minimal-pink.hover {
38 | background-position: -120px 0;
39 | }
40 | .iradio_minimal-pink.checked {
41 | background-position: -140px 0;
42 | }
43 | .iradio_minimal-pink.disabled {
44 | background-position: -160px 0;
45 | cursor: default;
46 | }
47 | .iradio_minimal-pink.checked.disabled {
48 | background-position: -180px 0;
49 | }
50 |
51 | /* HiDPI support */
52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
53 | .icheckbox_minimal-pink,
54 | .iradio_minimal-pink {
55 | background-image: url(pink@2x.png);
56 | -webkit-background-size: 200px 20px;
57 | background-size: 200px 20px;
58 | }
59 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/pink.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/minimal/pink.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/pink@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/minimal/pink@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/purple.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Minimal skin, purple
2 | ----------------------------------- */
3 | .icheckbox_minimal-purple,
4 | .iradio_minimal-purple {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 18px;
11 | height: 18px;
12 | background: url(purple.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_minimal-purple {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_minimal-purple.hover {
21 | background-position: -20px 0;
22 | }
23 | .icheckbox_minimal-purple.checked {
24 | background-position: -40px 0;
25 | }
26 | .icheckbox_minimal-purple.disabled {
27 | background-position: -60px 0;
28 | cursor: default;
29 | }
30 | .icheckbox_minimal-purple.checked.disabled {
31 | background-position: -80px 0;
32 | }
33 |
34 | .iradio_minimal-purple {
35 | background-position: -100px 0;
36 | }
37 | .iradio_minimal-purple.hover {
38 | background-position: -120px 0;
39 | }
40 | .iradio_minimal-purple.checked {
41 | background-position: -140px 0;
42 | }
43 | .iradio_minimal-purple.disabled {
44 | background-position: -160px 0;
45 | cursor: default;
46 | }
47 | .iradio_minimal-purple.checked.disabled {
48 | background-position: -180px 0;
49 | }
50 |
51 | /* HiDPI support */
52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
53 | .icheckbox_minimal-purple,
54 | .iradio_minimal-purple {
55 | background-image: url(purple@2x.png);
56 | -webkit-background-size: 200px 20px;
57 | background-size: 200px 20px;
58 | }
59 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/purple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/minimal/purple.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/purple@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/minimal/purple@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/red.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Minimal skin, red
2 | ----------------------------------- */
3 | .icheckbox_minimal-red,
4 | .iradio_minimal-red {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 18px;
11 | height: 18px;
12 | background: url(red.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_minimal-red {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_minimal-red.hover {
21 | background-position: -20px 0;
22 | }
23 | .icheckbox_minimal-red.checked {
24 | background-position: -40px 0;
25 | }
26 | .icheckbox_minimal-red.disabled {
27 | background-position: -60px 0;
28 | cursor: default;
29 | }
30 | .icheckbox_minimal-red.checked.disabled {
31 | background-position: -80px 0;
32 | }
33 |
34 | .iradio_minimal-red {
35 | background-position: -100px 0;
36 | }
37 | .iradio_minimal-red.hover {
38 | background-position: -120px 0;
39 | }
40 | .iradio_minimal-red.checked {
41 | background-position: -140px 0;
42 | }
43 | .iradio_minimal-red.disabled {
44 | background-position: -160px 0;
45 | cursor: default;
46 | }
47 | .iradio_minimal-red.checked.disabled {
48 | background-position: -180px 0;
49 | }
50 |
51 | /* HiDPI support */
52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
53 | .icheckbox_minimal-red,
54 | .iradio_minimal-red {
55 | background-image: url(red@2x.png);
56 | -webkit-background-size: 200px 20px;
57 | background-size: 200px 20px;
58 | }
59 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/minimal/red.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/red@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/minimal/red@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/yellow.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Minimal skin, yellow
2 | ----------------------------------- */
3 | .icheckbox_minimal-yellow,
4 | .iradio_minimal-yellow {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 18px;
11 | height: 18px;
12 | background: url(yellow.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_minimal-yellow {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_minimal-yellow.hover {
21 | background-position: -20px 0;
22 | }
23 | .icheckbox_minimal-yellow.checked {
24 | background-position: -40px 0;
25 | }
26 | .icheckbox_minimal-yellow.disabled {
27 | background-position: -60px 0;
28 | cursor: default;
29 | }
30 | .icheckbox_minimal-yellow.checked.disabled {
31 | background-position: -80px 0;
32 | }
33 |
34 | .iradio_minimal-yellow {
35 | background-position: -100px 0;
36 | }
37 | .iradio_minimal-yellow.hover {
38 | background-position: -120px 0;
39 | }
40 | .iradio_minimal-yellow.checked {
41 | background-position: -140px 0;
42 | }
43 | .iradio_minimal-yellow.disabled {
44 | background-position: -160px 0;
45 | cursor: default;
46 | }
47 | .iradio_minimal-yellow.checked.disabled {
48 | background-position: -180px 0;
49 | }
50 |
51 | /* HiDPI support */
52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
53 | .icheckbox_minimal-yellow,
54 | .iradio_minimal-yellow {
55 | background-image: url(yellow@2x.png);
56 | -webkit-background-size: 200px 20px;
57 | background-size: 200px 20px;
58 | }
59 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/yellow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/minimal/yellow.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/minimal/yellow@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/minimal/yellow@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/polaris/polaris.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Polaris skin
2 | ----------------------------------- */
3 | .icheckbox_polaris,
4 | .iradio_polaris {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 29px;
11 | height: 29px;
12 | background: url(polaris.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_polaris {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_polaris.hover {
21 | background-position: -31px 0;
22 | }
23 | .icheckbox_polaris.checked {
24 | background-position: -62px 0;
25 | }
26 | .icheckbox_polaris.disabled {
27 | background-position: -93px 0;
28 | cursor: default;
29 | }
30 | .icheckbox_polaris.checked.disabled {
31 | background-position: -124px 0;
32 | }
33 |
34 | .iradio_polaris {
35 | background-position: -155px 0;
36 | }
37 | .iradio_polaris.hover {
38 | background-position: -186px 0;
39 | }
40 | .iradio_polaris.checked {
41 | background-position: -217px 0;
42 | }
43 | .iradio_polaris.disabled {
44 | background-position: -248px 0;
45 | cursor: default;
46 | }
47 | .iradio_polaris.checked.disabled {
48 | background-position: -279px 0;
49 | }
50 |
51 | /* HiDPI support */
52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
53 | .icheckbox_polaris,
54 | .iradio_polaris {
55 | background-image: url(polaris@2x.png);
56 | -webkit-background-size: 310px 31px;
57 | background-size: 310px 31px;
58 | }
59 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/polaris/polaris.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/polaris/polaris.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/polaris/polaris@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/polaris/polaris@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/aero.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Square skin, aero
2 | ----------------------------------- */
3 | .icheckbox_square-aero,
4 | .iradio_square-aero {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 22px;
11 | height: 22px;
12 | background: url(aero.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_square-aero {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_square-aero.hover {
21 | background-position: -24px 0;
22 | }
23 | .icheckbox_square-aero.checked {
24 | background-position: -48px 0;
25 | }
26 | .icheckbox_square-aero.disabled {
27 | background-position: -72px 0;
28 | cursor: default;
29 | }
30 | .icheckbox_square-aero.checked.disabled {
31 | background-position: -96px 0;
32 | }
33 |
34 | .iradio_square-aero {
35 | background-position: -120px 0;
36 | }
37 | .iradio_square-aero.hover {
38 | background-position: -144px 0;
39 | }
40 | .iradio_square-aero.checked {
41 | background-position: -168px 0;
42 | }
43 | .iradio_square-aero.disabled {
44 | background-position: -192px 0;
45 | cursor: default;
46 | }
47 | .iradio_square-aero.checked.disabled {
48 | background-position: -216px 0;
49 | }
50 |
51 | /* HiDPI support */
52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
53 | .icheckbox_square-aero,
54 | .iradio_square-aero {
55 | background-image: url(aero@2x.png);
56 | -webkit-background-size: 240px 24px;
57 | background-size: 240px 24px;
58 | }
59 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/aero.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/square/aero.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/aero@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/square/aero@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/blue.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Square skin, blue
2 | ----------------------------------- */
3 | .icheckbox_square-blue,
4 | .iradio_square-blue {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 22px;
11 | height: 22px;
12 | background: url(blue.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_square-blue {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_square-blue.hover {
21 | background-position: -24px 0;
22 | }
23 | .icheckbox_square-blue.checked {
24 | background-position: -48px 0;
25 | }
26 | .icheckbox_square-blue.disabled {
27 | background-position: -72px 0;
28 | cursor: default;
29 | }
30 | .icheckbox_square-blue.checked.disabled {
31 | background-position: -96px 0;
32 | }
33 |
34 | .iradio_square-blue {
35 | background-position: -120px 0;
36 | }
37 | .iradio_square-blue.hover {
38 | background-position: -144px 0;
39 | }
40 | .iradio_square-blue.checked {
41 | background-position: -168px 0;
42 | }
43 | .iradio_square-blue.disabled {
44 | background-position: -192px 0;
45 | cursor: default;
46 | }
47 | .iradio_square-blue.checked.disabled {
48 | background-position: -216px 0;
49 | }
50 |
51 | /* HiDPI support */
52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
53 | .icheckbox_square-blue,
54 | .iradio_square-blue {
55 | background-image: url(blue@2x.png);
56 | -webkit-background-size: 240px 24px;
57 | background-size: 240px 24px;
58 | }
59 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/square/blue.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/blue@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/square/blue@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/green.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Square skin, green
2 | ----------------------------------- */
3 | .icheckbox_square-green,
4 | .iradio_square-green {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 22px;
11 | height: 22px;
12 | background: url(green.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_square-green {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_square-green.hover {
21 | background-position: -24px 0;
22 | }
23 | .icheckbox_square-green.checked {
24 | background-position: -48px 0;
25 | }
26 | .icheckbox_square-green.disabled {
27 | background-position: -72px 0;
28 | cursor: default;
29 | }
30 | .icheckbox_square-green.checked.disabled {
31 | background-position: -96px 0;
32 | }
33 |
34 | .iradio_square-green {
35 | background-position: -120px 0;
36 | }
37 | .iradio_square-green.hover {
38 | background-position: -144px 0;
39 | }
40 | .iradio_square-green.checked {
41 | background-position: -168px 0;
42 | }
43 | .iradio_square-green.disabled {
44 | background-position: -192px 0;
45 | cursor: default;
46 | }
47 | .iradio_square-green.checked.disabled {
48 | background-position: -216px 0;
49 | }
50 |
51 | /* HiDPI support */
52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
53 | .icheckbox_square-green,
54 | .iradio_square-green {
55 | background-image: url(green@2x.png);
56 | -webkit-background-size: 240px 24px;
57 | background-size: 240px 24px;
58 | }
59 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/square/green.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/green@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/square/green@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/grey.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Square skin, grey
2 | ----------------------------------- */
3 | .icheckbox_square-grey,
4 | .iradio_square-grey {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 22px;
11 | height: 22px;
12 | background: url(grey.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_square-grey {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_square-grey.hover {
21 | background-position: -24px 0;
22 | }
23 | .icheckbox_square-grey.checked {
24 | background-position: -48px 0;
25 | }
26 | .icheckbox_square-grey.disabled {
27 | background-position: -72px 0;
28 | cursor: default;
29 | }
30 | .icheckbox_square-grey.checked.disabled {
31 | background-position: -96px 0;
32 | }
33 |
34 | .iradio_square-grey {
35 | background-position: -120px 0;
36 | }
37 | .iradio_square-grey.hover {
38 | background-position: -144px 0;
39 | }
40 | .iradio_square-grey.checked {
41 | background-position: -168px 0;
42 | }
43 | .iradio_square-grey.disabled {
44 | background-position: -192px 0;
45 | cursor: default;
46 | }
47 | .iradio_square-grey.checked.disabled {
48 | background-position: -216px 0;
49 | }
50 |
51 | /* HiDPI support */
52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
53 | .icheckbox_square-grey,
54 | .iradio_square-grey {
55 | background-image: url(grey@2x.png);
56 | -webkit-background-size: 240px 24px;
57 | background-size: 240px 24px;
58 | }
59 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/square/grey.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/grey@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/square/grey@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/orange.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Square skin, orange
2 | ----------------------------------- */
3 | .icheckbox_square-orange,
4 | .iradio_square-orange {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 22px;
11 | height: 22px;
12 | background: url(orange.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_square-orange {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_square-orange.hover {
21 | background-position: -24px 0;
22 | }
23 | .icheckbox_square-orange.checked {
24 | background-position: -48px 0;
25 | }
26 | .icheckbox_square-orange.disabled {
27 | background-position: -72px 0;
28 | cursor: default;
29 | }
30 | .icheckbox_square-orange.checked.disabled {
31 | background-position: -96px 0;
32 | }
33 |
34 | .iradio_square-orange {
35 | background-position: -120px 0;
36 | }
37 | .iradio_square-orange.hover {
38 | background-position: -144px 0;
39 | }
40 | .iradio_square-orange.checked {
41 | background-position: -168px 0;
42 | }
43 | .iradio_square-orange.disabled {
44 | background-position: -192px 0;
45 | cursor: default;
46 | }
47 | .iradio_square-orange.checked.disabled {
48 | background-position: -216px 0;
49 | }
50 |
51 | /* HiDPI support */
52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
53 | .icheckbox_square-orange,
54 | .iradio_square-orange {
55 | background-image: url(orange@2x.png);
56 | -webkit-background-size: 240px 24px;
57 | background-size: 240px 24px;
58 | }
59 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/orange.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/square/orange.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/orange@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/square/orange@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/pink.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Square skin, pink
2 | ----------------------------------- */
3 | .icheckbox_square-pink,
4 | .iradio_square-pink {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 22px;
11 | height: 22px;
12 | background: url(pink.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_square-pink {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_square-pink.hover {
21 | background-position: -24px 0;
22 | }
23 | .icheckbox_square-pink.checked {
24 | background-position: -48px 0;
25 | }
26 | .icheckbox_square-pink.disabled {
27 | background-position: -72px 0;
28 | cursor: default;
29 | }
30 | .icheckbox_square-pink.checked.disabled {
31 | background-position: -96px 0;
32 | }
33 |
34 | .iradio_square-pink {
35 | background-position: -120px 0;
36 | }
37 | .iradio_square-pink.hover {
38 | background-position: -144px 0;
39 | }
40 | .iradio_square-pink.checked {
41 | background-position: -168px 0;
42 | }
43 | .iradio_square-pink.disabled {
44 | background-position: -192px 0;
45 | cursor: default;
46 | }
47 | .iradio_square-pink.checked.disabled {
48 | background-position: -216px 0;
49 | }
50 |
51 | /* HiDPI support */
52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
53 | .icheckbox_square-pink,
54 | .iradio_square-pink {
55 | background-image: url(pink@2x.png);
56 | -webkit-background-size: 240px 24px;
57 | background-size: 240px 24px;
58 | }
59 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/pink.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/square/pink.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/pink@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/square/pink@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/purple.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Square skin, purple
2 | ----------------------------------- */
3 | .icheckbox_square-purple,
4 | .iradio_square-purple {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 22px;
11 | height: 22px;
12 | background: url(purple.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_square-purple {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_square-purple.hover {
21 | background-position: -24px 0;
22 | }
23 | .icheckbox_square-purple.checked {
24 | background-position: -48px 0;
25 | }
26 | .icheckbox_square-purple.disabled {
27 | background-position: -72px 0;
28 | cursor: default;
29 | }
30 | .icheckbox_square-purple.checked.disabled {
31 | background-position: -96px 0;
32 | }
33 |
34 | .iradio_square-purple {
35 | background-position: -120px 0;
36 | }
37 | .iradio_square-purple.hover {
38 | background-position: -144px 0;
39 | }
40 | .iradio_square-purple.checked {
41 | background-position: -168px 0;
42 | }
43 | .iradio_square-purple.disabled {
44 | background-position: -192px 0;
45 | cursor: default;
46 | }
47 | .iradio_square-purple.checked.disabled {
48 | background-position: -216px 0;
49 | }
50 |
51 | /* HiDPI support */
52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
53 | .icheckbox_square-purple,
54 | .iradio_square-purple {
55 | background-image: url(purple@2x.png);
56 | -webkit-background-size: 240px 24px;
57 | background-size: 240px 24px;
58 | }
59 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/purple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/square/purple.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/purple@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/square/purple@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/red.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Square skin, red
2 | ----------------------------------- */
3 | .icheckbox_square-red,
4 | .iradio_square-red {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 22px;
11 | height: 22px;
12 | background: url(red.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_square-red {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_square-red.hover {
21 | background-position: -24px 0;
22 | }
23 | .icheckbox_square-red.checked {
24 | background-position: -48px 0;
25 | }
26 | .icheckbox_square-red.disabled {
27 | background-position: -72px 0;
28 | cursor: default;
29 | }
30 | .icheckbox_square-red.checked.disabled {
31 | background-position: -96px 0;
32 | }
33 |
34 | .iradio_square-red {
35 | background-position: -120px 0;
36 | }
37 | .iradio_square-red.hover {
38 | background-position: -144px 0;
39 | }
40 | .iradio_square-red.checked {
41 | background-position: -168px 0;
42 | }
43 | .iradio_square-red.disabled {
44 | background-position: -192px 0;
45 | cursor: default;
46 | }
47 | .iradio_square-red.checked.disabled {
48 | background-position: -216px 0;
49 | }
50 |
51 | /* HiDPI support */
52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
53 | .icheckbox_square-red,
54 | .iradio_square-red {
55 | background-image: url(red@2x.png);
56 | -webkit-background-size: 240px 24px;
57 | background-size: 240px 24px;
58 | }
59 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/square/red.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/red@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/square/red@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/square.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Square skin, black
2 | ----------------------------------- */
3 | .icheckbox_square,
4 | .iradio_square {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 22px;
11 | height: 22px;
12 | background: url(square.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_square {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_square.hover {
21 | background-position: -24px 0;
22 | }
23 | .icheckbox_square.checked {
24 | background-position: -48px 0;
25 | }
26 | .icheckbox_square.disabled {
27 | background-position: -72px 0;
28 | cursor: default;
29 | }
30 | .icheckbox_square.checked.disabled {
31 | background-position: -96px 0;
32 | }
33 |
34 | .iradio_square {
35 | background-position: -120px 0;
36 | }
37 | .iradio_square.hover {
38 | background-position: -144px 0;
39 | }
40 | .iradio_square.checked {
41 | background-position: -168px 0;
42 | }
43 | .iradio_square.disabled {
44 | background-position: -192px 0;
45 | cursor: default;
46 | }
47 | .iradio_square.checked.disabled {
48 | background-position: -216px 0;
49 | }
50 |
51 | /* HiDPI support */
52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
53 | .icheckbox_square,
54 | .iradio_square {
55 | background-image: url(square@2x.png);
56 | -webkit-background-size: 240px 24px;
57 | background-size: 240px 24px;
58 | }
59 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/square.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/square/square.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/square@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/square/square@2x.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/yellow.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Square skin, yellow
2 | ----------------------------------- */
3 | .icheckbox_square-yellow,
4 | .iradio_square-yellow {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 22px;
11 | height: 22px;
12 | background: url(yellow.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_square-yellow {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_square-yellow.hover {
21 | background-position: -24px 0;
22 | }
23 | .icheckbox_square-yellow.checked {
24 | background-position: -48px 0;
25 | }
26 | .icheckbox_square-yellow.disabled {
27 | background-position: -72px 0;
28 | cursor: default;
29 | }
30 | .icheckbox_square-yellow.checked.disabled {
31 | background-position: -96px 0;
32 | }
33 |
34 | .iradio_square-yellow {
35 | background-position: -120px 0;
36 | }
37 | .iradio_square-yellow.hover {
38 | background-position: -144px 0;
39 | }
40 | .iradio_square-yellow.checked {
41 | background-position: -168px 0;
42 | }
43 | .iradio_square-yellow.disabled {
44 | background-position: -192px 0;
45 | cursor: default;
46 | }
47 | .iradio_square-yellow.checked.disabled {
48 | background-position: -216px 0;
49 | }
50 |
51 | /* HiDPI support */
52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi), (min-resolution: 1.25dppx) {
53 | .icheckbox_square-yellow,
54 | .iradio_square-yellow {
55 | background-image: url(yellow@2x.png);
56 | -webkit-background-size: 240px 24px;
57 | background-size: 240px 24px;
58 | }
59 | }
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/yellow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/square/yellow.png
--------------------------------------------------------------------------------
/static/plugins/icheck/skins/square/yellow@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icheck/skins/square/yellow@2x.png
--------------------------------------------------------------------------------
/static/plugins/icons/font-awesome/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/font-awesome/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/static/plugins/icons/font-awesome/fonts/fontawesome-webfont-old.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/font-awesome/fonts/fontawesome-webfont-old.ttf
--------------------------------------------------------------------------------
/static/plugins/icons/font-awesome/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/font-awesome/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/static/plugins/icons/font-awesome/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/font-awesome/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/static/plugins/icons/font-awesome/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/font-awesome/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/static/plugins/icons/font-awesome/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/font-awesome/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/static/plugins/icons/linea-icons/fonts/linea-arrows-10.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/linea-icons/fonts/linea-arrows-10.eot
--------------------------------------------------------------------------------
/static/plugins/icons/linea-icons/fonts/linea-arrows-10.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/linea-icons/fonts/linea-arrows-10.ttf
--------------------------------------------------------------------------------
/static/plugins/icons/linea-icons/fonts/linea-arrows-10.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/linea-icons/fonts/linea-arrows-10.woff
--------------------------------------------------------------------------------
/static/plugins/icons/linea-icons/fonts/linea-basic-10.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/linea-icons/fonts/linea-basic-10.eot
--------------------------------------------------------------------------------
/static/plugins/icons/linea-icons/fonts/linea-basic-10.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/linea-icons/fonts/linea-basic-10.ttf
--------------------------------------------------------------------------------
/static/plugins/icons/linea-icons/fonts/linea-basic-10.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/linea-icons/fonts/linea-basic-10.woff
--------------------------------------------------------------------------------
/static/plugins/icons/linea-icons/fonts/linea-basic-elaboration-10.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/linea-icons/fonts/linea-basic-elaboration-10.eot
--------------------------------------------------------------------------------
/static/plugins/icons/linea-icons/fonts/linea-basic-elaboration-10.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/linea-icons/fonts/linea-basic-elaboration-10.ttf
--------------------------------------------------------------------------------
/static/plugins/icons/linea-icons/fonts/linea-basic-elaboration-10.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/linea-icons/fonts/linea-basic-elaboration-10.woff
--------------------------------------------------------------------------------
/static/plugins/icons/linea-icons/fonts/linea-ecommerce-10.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/linea-icons/fonts/linea-ecommerce-10.eot
--------------------------------------------------------------------------------
/static/plugins/icons/linea-icons/fonts/linea-ecommerce-10.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/linea-icons/fonts/linea-ecommerce-10.ttf
--------------------------------------------------------------------------------
/static/plugins/icons/linea-icons/fonts/linea-ecommerce-10.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/linea-icons/fonts/linea-ecommerce-10.woff
--------------------------------------------------------------------------------
/static/plugins/icons/linea-icons/fonts/linea-music-10.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/linea-icons/fonts/linea-music-10.eot
--------------------------------------------------------------------------------
/static/plugins/icons/linea-icons/fonts/linea-music-10.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/linea-icons/fonts/linea-music-10.ttf
--------------------------------------------------------------------------------
/static/plugins/icons/linea-icons/fonts/linea-music-10.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/linea-icons/fonts/linea-music-10.woff
--------------------------------------------------------------------------------
/static/plugins/icons/linea-icons/fonts/linea-software-10.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/linea-icons/fonts/linea-software-10.eot
--------------------------------------------------------------------------------
/static/plugins/icons/linea-icons/fonts/linea-software-10.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/linea-icons/fonts/linea-software-10.ttf
--------------------------------------------------------------------------------
/static/plugins/icons/linea-icons/fonts/linea-software-10.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/linea-icons/fonts/linea-software-10.woff
--------------------------------------------------------------------------------
/static/plugins/icons/linea-icons/fonts/linea-weather-10.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/linea-icons/fonts/linea-weather-10.eot
--------------------------------------------------------------------------------
/static/plugins/icons/linea-icons/fonts/linea-weather-10.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/linea-icons/fonts/linea-weather-10.ttf
--------------------------------------------------------------------------------
/static/plugins/icons/linea-icons/fonts/linea-weather-10.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/linea-icons/fonts/linea-weather-10.woff
--------------------------------------------------------------------------------
/static/plugins/icons/simple-line-icons/fonts/Simple-Line-Icons.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/simple-line-icons/fonts/Simple-Line-Icons.eot
--------------------------------------------------------------------------------
/static/plugins/icons/simple-line-icons/fonts/Simple-Line-Icons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/simple-line-icons/fonts/Simple-Line-Icons.ttf
--------------------------------------------------------------------------------
/static/plugins/icons/simple-line-icons/fonts/Simple-Line-Icons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/simple-line-icons/fonts/Simple-Line-Icons.woff
--------------------------------------------------------------------------------
/static/plugins/icons/simple-line-icons/fonts/Simple-Line-Icons.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/simple-line-icons/fonts/Simple-Line-Icons.woff2
--------------------------------------------------------------------------------
/static/plugins/icons/themify-icons/fonts/themify.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/themify-icons/fonts/themify.eot
--------------------------------------------------------------------------------
/static/plugins/icons/themify-icons/fonts/themify.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/themify-icons/fonts/themify.ttf
--------------------------------------------------------------------------------
/static/plugins/icons/themify-icons/fonts/themify.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/themify-icons/fonts/themify.woff
--------------------------------------------------------------------------------
/static/plugins/icons/weather-icons/css/weather-icons-core.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'weathericons';
3 | src: url('../fonts/weathericons-regular-webfont.eot');
4 | src: url('../fonts/weathericons-regular-webfont.eot?#iefix') format('embedded-opentype'), url('../fonts/weathericons-regular-webfont.woff2') format('woff2'), url('../fonts/weathericons-regular-webfont.woff') format('woff'), url('../fonts/weathericons-regular-webfont.ttf') format('truetype'), url('../fonts/weathericons-regular-webfont.svg#weather_iconsregular') format('svg');
5 | font-weight: normal;
6 | font-style: normal;
7 | }
8 | .wi {
9 | display: inline-block;
10 | font-family: 'weathericons';
11 | font-style: normal;
12 | font-weight: normal;
13 | line-height: 1;
14 | -webkit-font-smoothing: antialiased;
15 | -moz-osx-font-smoothing: grayscale;
16 | }
17 | .wi-fw {
18 | text-align: center;
19 | width: 1.4em;
20 | }
21 | .wi-rotate-90 {
22 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
23 | -webkit-transform: rotate(90deg);
24 | -ms-transform: rotate(90deg);
25 | transform: rotate(90deg);
26 | }
27 | .wi-rotate-180 {
28 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
29 | -webkit-transform: rotate(180deg);
30 | -ms-transform: rotate(180deg);
31 | transform: rotate(180deg);
32 | }
33 | .wi-rotate-270 {
34 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
35 | -webkit-transform: rotate(270deg);
36 | -ms-transform: rotate(270deg);
37 | transform: rotate(270deg);
38 | }
39 | .wi-flip-horizontal {
40 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
41 | -webkit-transform: scale(-1, 1);
42 | -ms-transform: scale(-1, 1);
43 | transform: scale(-1, 1);
44 | }
45 | .wi-flip-vertical {
46 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
47 | -webkit-transform: scale(1, -1);
48 | -ms-transform: scale(1, -1);
49 | transform: scale(1, -1);
50 | }
51 |
--------------------------------------------------------------------------------
/static/plugins/icons/weather-icons/css/weather-icons-variables.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/weather-icons/css/weather-icons-variables.css
--------------------------------------------------------------------------------
/static/plugins/icons/weather-icons/font/weathericons-regular-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/weather-icons/font/weathericons-regular-webfont.eot
--------------------------------------------------------------------------------
/static/plugins/icons/weather-icons/font/weathericons-regular-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/weather-icons/font/weathericons-regular-webfont.ttf
--------------------------------------------------------------------------------
/static/plugins/icons/weather-icons/font/weathericons-regular-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/weather-icons/font/weathericons-regular-webfont.woff
--------------------------------------------------------------------------------
/static/plugins/icons/weather-icons/font/weathericons-regular-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xpitz/pingAdmin/8c3027a6842efc1e20a217a1f6b1fbc6cad33e70/static/plugins/icons/weather-icons/font/weathericons-regular-webfont.woff2
--------------------------------------------------------------------------------
/static/plugins/multiselect/css/style.css:
--------------------------------------------------------------------------------
1 | .github.ribbon {
2 | position: fixed;
3 | display: block;
4 | top: 40px;
5 | right: 0;
6 | border: 0;
7 | z-index: 1001;
8 | }
9 |
10 | .prettyprint {
11 | padding: 10px!important;
12 | }
13 |
14 | #wrap {
15 | padding-top: 70px;
16 | }
17 |
18 | #home h1 {
19 | margin-bottom: 30px;
20 | }
21 | #demo,
22 | #examples,
23 | #support,
24 | #download {
25 | padding-top: 40px;
26 | }
27 |
--------------------------------------------------------------------------------
/static/plugins/sidebar-nav/css/sidebar-nav.min.css:
--------------------------------------------------------------------------------
1 | /*
2 | * metismenu - v1.1.3
3 | * Easy menu jQuery plugin for Twitter Bootstrap 3
4 | * https://github.com/onokumus/metisMenu
5 | *
6 | * Made by Osman Nuri Okumus
7 | * Under MIT License
8 | */
9 |
10 | .arrow{float:right;line-height:1.42857}.glyphicon.arrow:before{content:"\e079"}.active>a>.glyphicon.arrow:before{content:"\e114"}.fa.arrow:before{content:"\f104"}.active>a>.fa.arrow:before{content:"\f107"}.plus-times{float:right}.fa.plus-times:before{content:"\f067"}.active>a>.fa.plus-times{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.plus-minus{float:right}.fa.plus-minus:before{content:"\f067"}.active>a>.fa.plus-minus:before{content:"\f068"}
--------------------------------------------------------------------------------
/static/plugins/sidebar-nav/js/sidebar-nav.min.js:
--------------------------------------------------------------------------------
1 | /*
2 | * metismenu - v1.1.3
3 | * Easy menu jQuery plugin for Twitter Bootstrap 3
4 | * https://github.com/onokumus/metisMenu
5 | *
6 | * Made by Osman Nuri Okumus
7 | * Under MIT License
8 | */
9 | !function(a,b,c){function d(b,c){this.element=a(b),this.settings=a.extend({},f,c),this._defaults=f,this._name=e,this.init()}var e="metisMenu",f={toggle:!0,doubleTapToGo:!1};d.prototype={init:function(){var b=this.element,d=this.settings.toggle,f=this;this.isIE()<=9?(b.find("li.active").has("ul").children("ul").collapse("show"),b.find("li").not(".active").has("ul").children("ul").collapse("hide")):(b.find("li.active").has("ul").children("ul").addClass("collapse in"),b.find("li").not(".active").has("ul").children("ul").addClass("collapse")),f.settings.doubleTapToGo&&b.find("li.active").has("ul").children("a").addClass("doubleTapToGo"),b.find("li").has("ul").children("a").on("click."+e,function(b){return b.preventDefault(),f.settings.doubleTapToGo&&f.doubleTapToGo(a(this))&&"#"!==a(this).attr("href")&&""!==a(this).attr("href")?(b.stopPropagation(),void(c.location=a(this).attr("href"))):(a(this).parent("li").toggleClass("active").children("ul").collapse("toggle"),void(d&&a(this).parent("li").siblings().removeClass("active").children("ul.in").collapse("hide")))})},isIE:function(){for(var a,b=3,d=c.createElement("div"),e=d.getElementsByTagName("i");d.innerHTML="",e[0];)return b>4?b:a},doubleTapToGo:function(a){var b=this.element;return a.hasClass("doubleTapToGo")?(a.removeClass("doubleTapToGo"),!0):a.parent().children("ul").length?(b.find(".doubleTapToGo").removeClass("doubleTapToGo"),a.addClass("doubleTapToGo"),!1):void 0},remove:function(){this.element.off("."+e),this.element.removeData(e)}},a.fn[e]=function(b){return this.each(function(){var c=a(this);c.data(e)&&c.data(e).remove(),c.data(e,new d(this,b))}),this}}(jQuery,window,document);
--------------------------------------------------------------------------------
/static/plugins/styleswitcher/js/jQuery.style.switcher.js:
--------------------------------------------------------------------------------
1 | // Theme color settings
2 | $(document).ready(function () {
3 | function store(name, val) {
4 | if (typeof (Storage) !== "undefined") {
5 | localStorage.setItem(name, val);
6 | } else {
7 | window.alert('Please use a modern browser to properly view this template!');
8 | }
9 | }
10 | $("*[data-theme]").click(function (e) {
11 | e.preventDefault();
12 | var currentStyle = $(this).attr('data-theme');
13 | store('theme', currentStyle);
14 | $('#theme').attr({
15 | href: '/static/css/colors/' + currentStyle + '.css'
16 | })
17 | });
18 |
19 | var currentTheme = get('theme');
20 | if (currentTheme) {
21 | $('#theme').attr({
22 | href: '/static/css/colors/' + currentTheme + '.css'
23 | });
24 | }
25 | // color selector
26 | $('#themecolors').on('click', 'a', function () {
27 | $('#themecolors li a').removeClass('working');
28 | $(this).addClass('working')
29 | });
30 |
31 | });
32 |
33 | function get(name) {
34 |
35 | }
36 |
37 | $(document).ready(function () {
38 | $("*[data-theme]").click(function (e) {
39 | e.preventDefault();
40 | var currentStyle = $(this).attr('data-theme');
41 | store('theme', currentStyle);
42 | $('#theme').attr({
43 | href: '/static/css/colors/' + currentStyle + '.css'
44 | })
45 | });
46 |
47 | var currentTheme = get('theme');
48 | if (currentTheme) {
49 | $('#theme').attr({
50 | href: '/static/css/colors/' + currentTheme + '.css'
51 | });
52 | }
53 | // color selector
54 | $('#themecolors').on('click', 'a', function () {
55 | $('#themecolors li a').removeClass('working');
56 | $(this).addClass('working')
57 | });
58 | });
59 |
--------------------------------------------------------------------------------
/static/plugins/switchery/css/switchery.min.css:
--------------------------------------------------------------------------------
1 | .switchery{background-color:#fff;border:1px solid #dfdfdf;border-radius:20px;cursor:pointer;display:inline-block;height:30px;position:relative;vertical-align:middle;width:50px;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;box-sizing:content-box;background-clip:content-box}.switchery>small{background:#fff;border-radius:100%;box-shadow:0 1px 3px rgba(0,0,0,0.4);height:30px;position:absolute;top:0;width:30px}.switchery-small{border-radius:20px;height:20px;width:33px}.switchery-small>small{height:20px;width:20px}.switchery-large{border-radius:40px;height:40px;width:66px}.switchery-large>small{height:40px;width:40px}
--------------------------------------------------------------------------------
/templates/403.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | pingAdmin - The DevOps Platform
11 |
12 | {% include "base/_css.html" %}
13 |
14 |
15 |
16 |
17 |
18 |
19 |
403
20 |
Forbidden Error
21 |
You don't have permission to access on this server.
22 |
Back to home
23 |
24 |
25 |
26 | {% include "base/_js.html" %}
27 |
28 |
29 |
--------------------------------------------------------------------------------
/templates/base/_css.html:
--------------------------------------------------------------------------------
1 | {% load static %}
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | {##}
30 | {##}
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/templates/base/_js.html:
--------------------------------------------------------------------------------
1 | {% load static %}
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 | {##}
39 | {##}
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 | {##}
50 |
--------------------------------------------------------------------------------