├── Autotestplat-V5.0使用手册.docx ├── Autotestplat ├── __init__.py ├── celery.py ├── settings.py ├── urls.py └── wsgi.py ├── LICENSE ├── README.md ├── Redis-x64-3.2.100 ├── EventLog.dll ├── dump.rdb ├── redis-benchmark.exe ├── redis-benchmark.pdb ├── redis-check-aof.exe ├── redis-check-aof.pdb ├── redis-cli.exe ├── redis-cli.pdb ├── redis-server.exe ├── redis-server.pdb ├── redis.windows-service.conf └── redis.windows.conf ├── autotest ├── __init__.py ├── admin.py ├── apps.py ├── models.py ├── static │ ├── css │ │ ├── bootstrap.min.css │ │ ├── codemirror.css │ │ ├── dt.css │ │ ├── fileinput.min.css │ │ ├── navbar.css │ │ ├── select2.min.css │ │ └── style.css │ ├── dist │ │ ├── css │ │ │ ├── animate.css │ │ │ ├── design-iconic-font.min.css │ │ │ ├── dripicons.css │ │ │ ├── font-awesome.min.css │ │ │ ├── glyphicons.css │ │ │ ├── ionicons.min.css │ │ │ ├── lightgallery.css │ │ │ ├── linea-icon.css │ │ │ ├── pe-icon-7-stroke.css │ │ │ ├── simple-line-icons.css │ │ │ ├── style.css │ │ │ ├── style.css.map │ │ │ └── themify-icons.css │ │ └── fonts │ │ │ └── ionicons │ │ │ ├── ionicons.eot │ │ │ ├── ionicons.svg │ │ │ ├── ionicons.ttf │ │ │ ├── ionicons.woff │ │ │ └── ionicons.woff2 │ ├── js │ │ ├── apptestcase.js │ │ ├── bootstrap.min.js │ │ ├── codemirror.js │ │ ├── exporting.js │ │ ├── fileinput.min.js │ │ ├── index.js │ │ ├── jquery.min.js │ │ ├── performance.js │ │ ├── product.js │ │ ├── public.js │ │ ├── report.js │ │ ├── select2.full.min.js │ │ ├── select2.min.js │ │ ├── systemsettings.js │ │ ├── testcase.js │ │ ├── testplan.js │ │ ├── user.js │ │ └── webtestcase.js │ ├── src │ │ ├── localfiles │ │ │ ├── bootstrap.min.js │ │ │ ├── dataTables.bootstrap4.min.js │ │ │ └── jquery.dataTables.min.js │ │ └── pic │ │ │ ├── check.png │ │ │ ├── icon_add.png │ │ │ ├── icon_del.png │ │ │ ├── icon_edit.png │ │ │ ├── icon_edit_1.png │ │ │ ├── ui_add.png │ │ │ ├── ui_delete.png │ │ │ ├── ui_edit.png │ │ │ ├── ui_radio_button.png │ │ │ ├── ui_search.png │ │ │ └── user.png │ └── vendors │ │ ├── bootstrap │ │ └── dist │ │ │ ├── css │ │ │ └── bootstrap.min.css │ │ │ └── js │ │ │ └── bootstrap.min.js │ │ ├── jquery │ │ └── dist │ │ │ └── jquery.min.js │ │ ├── laydate │ │ ├── laydate.js │ │ └── theme │ │ │ └── default │ │ │ ├── font │ │ │ ├── iconfont.eot │ │ │ ├── iconfont.svg │ │ │ ├── iconfont.ttf │ │ │ └── iconfont.woff │ │ │ └── laydate.css │ │ ├── owl.carousel │ │ └── dist │ │ │ ├── assets │ │ │ ├── owl.carousel.min.css │ │ │ ├── owl.theme.default.min.css │ │ │ └── owl.video.play.png │ │ │ └── owl.carousel.min.js │ │ └── popper.js │ │ └── dist │ │ └── umd │ │ └── popper.min.js ├── tasks.py ├── templates │ ├── app_testcase.html │ ├── index.html │ ├── interface_add.html │ ├── interface_edit.html │ ├── interface_performance.html │ ├── interface_report.html │ ├── interface_report_detail.html │ ├── interface_testcase.html │ ├── interface_testplan.html │ ├── login.html │ ├── product.html │ ├── system_setting.html │ ├── user.html │ └── web_testcase.html ├── test_out.log ├── tests.py ├── urls.py ├── users.txt ├── views.py ├── views_apptestcase.py ├── views_index.py ├── views_interface.py ├── views_interfacereport.py ├── views_interfacetestplan.py ├── views_jmeter.py ├── views_performance.py ├── views_product.py ├── views_systemsettings.py ├── views_user.py └── views_webtestcase.py ├── autotestplat.sql ├── chromedriver.exe ├── manage.py ├── requirements.txt ├── start_beat.bat ├── start_service.bat └── start_worker.bat /Autotestplat-V5.0使用手册.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/testdevhome/Autotestplat/78ffaa365c593bee2d8224d34920b63837f5f40f/Autotestplat-V5.0使用手册.docx -------------------------------------------------------------------------------- /Autotestplat/__init__.py: -------------------------------------------------------------------------------- 1 | import pymysql 2 | 3 | pymysql.version_info=(1,4,3,"final",0) 4 | pymysql.install_as_MySQLdb() -------------------------------------------------------------------------------- /Autotestplat/celery.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | ############################################ 3 | #Auther::Fin 4 | #Version:Autotestplat-V2.3 5 | ############################################ 6 | from __future__ import absolute_import 7 | import os 8 | from celery import Celery 9 | import django 10 | from django.conf import settings 11 | 12 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'Autotestplat.settings') 13 | django.setup() 14 | 15 | app = Celery('Autotestplat') 16 | 17 | app.config_from_object('django.conf:settings') 18 | app.autodiscover_tasks(lambda: settings.INSTALLED_APPS) 19 | 20 | app.conf.enable_utc = True 21 | app.conf.timezone = "Asia/Shanghai" 22 | 23 | @app.task(bind=True) 24 | def debug_task(self): 25 | print('Request: {0!r}'.format(self.request)) -------------------------------------------------------------------------------- /Autotestplat/settings.py: -------------------------------------------------------------------------------- 1 | """ 2 | Django settings for Autotestplat project. 3 | 4 | Generated by 'django-admin startproject' using Django 2.1.3. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/2.2/topics/settings/ 8 | 9 | For the full list of settings and their values, see 10 | https://docs.djangoproject.com/en/2.2/ref/settings/ 11 | """ 12 | 13 | import os 14 | 15 | import djcelery 16 | djcelery.setup_loader() 17 | 18 | # Build paths inside the project like this: os.path.join(BASE_DIR, ...) 19 | BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 20 | 21 | 22 | # Quick-start development settings - unsuitable for production 23 | # See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/ 24 | 25 | # SECURITY WARNING: keep the secret key used in production secret! 26 | SECRET_KEY = '4(l9q$nnrl8@kzf!#at)6g44086o!xz8!5h)mo@(y0!!f$3*y#' 27 | 28 | # SECURITY WARNING: don't run with debug turned on in production! 29 | DEBUG = True 30 | 31 | ALLOWED_HOSTS = ['*'] 32 | 33 | 34 | INSTALLED_APPS = [ 35 | 'django.contrib.admin', 36 | 'django.contrib.auth', 37 | 'django.contrib.contenttypes', 38 | 'django.contrib.sessions', 39 | 'django.contrib.messages', 40 | 'django.contrib.staticfiles', 41 | 'autotest', 42 | 'djcelery', 43 | 'django_redis', 44 | ] 45 | 46 | MIDDLEWARE = [ 47 | 'django.middleware.security.SecurityMiddleware', 48 | 'django.contrib.sessions.middleware.SessionMiddleware', 49 | 'django.middleware.common.CommonMiddleware', 50 | 'django.contrib.auth.middleware.AuthenticationMiddleware', 51 | 'django.contrib.messages.middleware.MessageMiddleware', 52 | 'django.middleware.clickjacking.XFrameOptionsMiddleware', 53 | ] 54 | 55 | ROOT_URLCONF = 'Autotestplat.urls' 56 | 57 | TEMPLATES = [ 58 | { 59 | 'BACKEND': 'django.template.backends.django.DjangoTemplates', 60 | # 'DIRS': [], 61 | 'DIRS': [os.path.join(BASE_DIR, 'autotest/templates')], 62 | 'APP_DIRS': True, 63 | 'OPTIONS': { 64 | 'context_processors': [ 65 | 'django.template.context_processors.debug', 66 | 'django.template.context_processors.request', 67 | 'django.contrib.auth.context_processors.auth', 68 | 'django.contrib.messages.context_processors.messages', 69 | ], 70 | }, 71 | }, 72 | ] 73 | 74 | WSGI_APPLICATION = 'Autotestplat.wsgi.application' 75 | 76 | 77 | DATABASES = { 78 | 'default': { 79 | 'ENGINE': 'django.db.backends.mysql', 80 | 'NAME': 'autotestplat', 81 | 'HOST': '127.0.0.1', 82 | 'PORT': 3306, 83 | 'USER': 'root', 84 | 'PASSWORD': 'test123456'} 85 | } 86 | 87 | AUTH_PASSWORD_VALIDATORS = [ 88 | { 89 | 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 90 | }, 91 | { 92 | 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 93 | }, 94 | { 95 | 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 96 | }, 97 | { 98 | 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 99 | }, 100 | ] 101 | 102 | 103 | LANGUAGE_CODE = 'en-us' 104 | TIME_ZONE = 'Asia/Shanghai' 105 | USE_I18N = True 106 | USE_L10N = True 107 | USE_TZ = True 108 | 109 | 110 | STATIC_URL = '/static/' 111 | STATICFILES_DIRS = [ 112 | os.path.join(BASE_DIR, "autotest").join("static") 113 | ] 114 | 115 | MEDIA_URL = "/upload/" 116 | MEDIA_ROOT = os.path.join(BASE_DIR,'upload') 117 | 118 | CACHES = { 119 | 'default': { 120 | 'BACKEND': 'django_redis.cache.RedisCache', 121 | 'LOCATION': 'redis://127.0.0.1:6379/1', 122 | }, 123 | } 124 | REDIS_TIMEOUT=7*24*60*60 125 | CUBES_REDIS_TIMEOUT=60*60 126 | NEVER_REDIS_TIMEOUT=365*24*60*60 127 | 128 | 129 | CELERY_TIMEZONE = 'Asia/Shanghai' 130 | CELERY_ENABLE_UTC=True 131 | # BROKER_URL= 'amqp://root:root@127.0.0.1:5672/of1' #rabbitmq 132 | BROKER_URL = 'redis://127.0.0.1:6379/0' 133 | BROKER_TRANSPORT = 'redis' 134 | CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/1' 135 | CELERY_ACCEPT_CONTENT = ['json'] 136 | CELERY_TASK_SERIALIZER = 'json' 137 | CELERY_RESULT_SERIALIZER = 'json' 138 | CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler' -------------------------------------------------------------------------------- /Autotestplat/urls.py: -------------------------------------------------------------------------------- 1 | """Autotestplat URL Configuration 2 | 3 | The `urlpatterns` list routes URLs to views. For more information please see: 4 | https://docs.djangoproject.com/en/2.2/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 | 19 | 20 | urlpatterns = [ 21 | path('admin/', admin.site.urls), 22 | path('autotest/', include('autotest.urls')), 23 | ] 24 | -------------------------------------------------------------------------------- /Autotestplat/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for Autotestplat 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.2/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', 'Autotestplat.settings') 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Autotestplat 2 | AI+自动化测试平台系统 3 | 4 | 最新版本已升级到Autotestplat6.0,接入了大模型,支持AI生成测试用例,是付费版本,
5 | Autotestplat6.0及以后的版本都将是付费版本,如有需要请请联系作者购买,作者微信:fin123456,公众号:测试开发社区! 6 | 7 | 8 | Autotestplat-v5.2.2及以前版本依然开源免费 9 | 功能介绍:
10 | 实现了接口自动化测试,产品/项目,用户,系统参数设置,接口测试用例,测试计划,定时任务,测试报告。
11 | 实现了实时接口性能测试,生成测试脚本,执行测试,测试报告。
12 | 实现了AppUI自动化设置,用例录入,单个用例运行,全部用例运行。
13 | 实现了WebUI自动化设置,用例录入,单个用例执行,全部用例执行。 14 |
15 | 16 | 部署指南: 17 | python3.6 18 | django2.1.3 19 | 更高版本待后续更新...
20 | 1、下载和安装python 3.6、git、mysql、redis等安装包https://github.com/testdevhome/installPackage
21 | 2、git clone https://github.com/testdevhome/Autotestplat
22 | 3、cd Autotestplat 
23 | 4、pip install -r requirements.txt
24 | 5、创建和导入数据库
25 | 创建数据库名autotestplat,导入autotestplat.sql 26 | 修改数据库连接配置文件 Autotestplat/settings.py 77行 DATABASES 27 | 6、运行命令 python manage.py runserver 0.0.0.0:80 
28 | 7、运行命令 redis-server redis.conf
29 | 8、python manage.py celery worker -c 6 -l debug
30 | 9、python manage.py celery beat
31 | 10、访问 127.0.0.1/autotest/login
32 | 33 | 操作手册:
34 | 接口测试
35 | 第一步、设置用户,设置产品/项目,用户设置默认产品,也就是当前正在进入使用的产品。
36 | 第二步、在系统设置中设置参数,环境设置即设置host地址,常量即设置固定值作为参数,变量可以是时间戳,随机数字、字符等。
37 | 第三步、在接口用例中进行接口用例录入调试,设置断言,通过正则表达式设置关联参数,执行;在接口中通过{关键字}设置参数。
38 | 第四步、在测试计划中选择接口用例,定时设置,勾选用例调试。
39 | 第五步、在测试报告中查看测试记录,报告的详情数据。
40 | 性能测试
41 | 第一步、选择接口,输入并发数,持续压测时间,点击生成jmeter脚本。
42 | 第二步、点击测试开始。
43 | 第三步、点击查看结果。
44 | AppUI测试
45 | 第一步、系统设置App设置。
46 | 第二步、启动weditor,连接手机,抓取App元素控件,录入用例。
47 | 第三步、执行,查看用例结果。
48 | WebUI测试
49 | 第一步、系统设置Web设置。
50 | 第二步、安装谷歌浏览器版本100.0.4896.75 (正式版本) (32 位)。
51 | 第三步、执行,查看用例结果。
52 | 53 | ![image](https://github.com/testdevhome/Doc/blob/main/pic/userproduct.png) 54 | ![image](https://github.com/testdevhome/Doc/blob/main/pic/systemsetting.png) 55 | ![image](https://github.com/testdevhome/Doc/blob/main/pic/testcase.png) 56 | ![image](https://github.com/testdevhome/Doc/blob/main/pic/edittestcase.png) 57 | ![image](https://github.com/testdevhome/Doc/blob/main/pic/testplan.png) 58 | ![image](https://github.com/testdevhome/Doc/blob/main/pic/addapi.png) 59 | ![image](https://github.com/testdevhome/Doc/blob/main/pic/report.png) 60 | ![image](https://github.com/testdevhome/Doc/blob/main/pic/performance.png) 61 | ![image](https://github.com/testdevhome/Doc/blob/main/pic/appUI.png) 62 | ![image](https://github.com/testdevhome/Doc/blob/main/pic/webUI.png) 63 | 64 | 65 | 欢迎关注我们的微信公众号,请扫一扫如下图: 66 | 67 | ![image](https://github.com/testdevhome/Doc/blob/main/pic-V1.0/testdevhome.jpg) 68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /Redis-x64-3.2.100/EventLog.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/testdevhome/Autotestplat/78ffaa365c593bee2d8224d34920b63837f5f40f/Redis-x64-3.2.100/EventLog.dll -------------------------------------------------------------------------------- /Redis-x64-3.2.100/dump.rdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/testdevhome/Autotestplat/78ffaa365c593bee2d8224d34920b63837f5f40f/Redis-x64-3.2.100/dump.rdb -------------------------------------------------------------------------------- /Redis-x64-3.2.100/redis-benchmark.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/testdevhome/Autotestplat/78ffaa365c593bee2d8224d34920b63837f5f40f/Redis-x64-3.2.100/redis-benchmark.exe -------------------------------------------------------------------------------- /Redis-x64-3.2.100/redis-benchmark.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/testdevhome/Autotestplat/78ffaa365c593bee2d8224d34920b63837f5f40f/Redis-x64-3.2.100/redis-benchmark.pdb -------------------------------------------------------------------------------- /Redis-x64-3.2.100/redis-check-aof.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/testdevhome/Autotestplat/78ffaa365c593bee2d8224d34920b63837f5f40f/Redis-x64-3.2.100/redis-check-aof.exe -------------------------------------------------------------------------------- /Redis-x64-3.2.100/redis-check-aof.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/testdevhome/Autotestplat/78ffaa365c593bee2d8224d34920b63837f5f40f/Redis-x64-3.2.100/redis-check-aof.pdb -------------------------------------------------------------------------------- /Redis-x64-3.2.100/redis-cli.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/testdevhome/Autotestplat/78ffaa365c593bee2d8224d34920b63837f5f40f/Redis-x64-3.2.100/redis-cli.exe -------------------------------------------------------------------------------- /Redis-x64-3.2.100/redis-cli.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/testdevhome/Autotestplat/78ffaa365c593bee2d8224d34920b63837f5f40f/Redis-x64-3.2.100/redis-cli.pdb -------------------------------------------------------------------------------- /Redis-x64-3.2.100/redis-server.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/testdevhome/Autotestplat/78ffaa365c593bee2d8224d34920b63837f5f40f/Redis-x64-3.2.100/redis-server.exe -------------------------------------------------------------------------------- /Redis-x64-3.2.100/redis-server.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/testdevhome/Autotestplat/78ffaa365c593bee2d8224d34920b63837f5f40f/Redis-x64-3.2.100/redis-server.pdb -------------------------------------------------------------------------------- /autotest/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/testdevhome/Autotestplat/78ffaa365c593bee2d8224d34920b63837f5f40f/autotest/__init__.py -------------------------------------------------------------------------------- /autotest/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /autotest/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class AutoConfig(AppConfig): 5 | name = 'autotest' 6 | -------------------------------------------------------------------------------- /autotest/static/css/codemirror.css: -------------------------------------------------------------------------------- 1 | /* BASICS */ 2 | 3 | .CodeMirror { 4 | /* Set height, width, borders, and global font properties here */ 5 | font-family: monospace; 6 | height: 300px; 7 | color: black; 8 | direction: ltr; 9 | } 10 | 11 | /* PADDING */ 12 | 13 | .CodeMirror-lines { 14 | padding: 4px 0; /* Vertical padding around content */ 15 | } 16 | .CodeMirror pre.CodeMirror-line, 17 | .CodeMirror pre.CodeMirror-line-like { 18 | padding: 0 4px; /* Horizontal padding of content */ 19 | } 20 | 21 | .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { 22 | background-color: white; /* The little square between H and V scrollbars */ 23 | } 24 | 25 | /* GUTTER */ 26 | 27 | .CodeMirror-gutters { 28 | border-right: 1px solid #ddd; 29 | background-color: #f7f7f7; 30 | white-space: nowrap; 31 | } 32 | .CodeMirror-linenumbers {} 33 | .CodeMirror-linenumber { 34 | padding: 0 3px 0 5px; 35 | min-width: 20px; 36 | text-align: right; 37 | color: #999; 38 | white-space: nowrap; 39 | } 40 | 41 | .CodeMirror-guttermarker { color: black; } 42 | .CodeMirror-guttermarker-subtle { color: #999; } 43 | 44 | /* CURSOR */ 45 | 46 | .CodeMirror-cursor { 47 | border-left: 1px solid black; 48 | border-right: none; 49 | width: 0; 50 | } 51 | /* Shown when moving in bi-directional text */ 52 | .CodeMirror div.CodeMirror-secondarycursor { 53 | border-left: 1px solid silver; 54 | } 55 | .cm-fat-cursor .CodeMirror-cursor { 56 | width: auto; 57 | border: 0 !important; 58 | background: #7e7; 59 | } 60 | .cm-fat-cursor div.CodeMirror-cursors { 61 | z-index: 1; 62 | } 63 | .cm-fat-cursor .CodeMirror-line::selection, 64 | .cm-fat-cursor .CodeMirror-line > span::selection, 65 | .cm-fat-cursor .CodeMirror-line > span > span::selection { background: transparent; } 66 | .cm-fat-cursor .CodeMirror-line::-moz-selection, 67 | .cm-fat-cursor .CodeMirror-line > span::-moz-selection, 68 | .cm-fat-cursor .CodeMirror-line > span > span::-moz-selection { background: transparent; } 69 | .cm-fat-cursor { caret-color: transparent; } 70 | @-moz-keyframes blink { 71 | 0% {} 72 | 50% { background-color: transparent; } 73 | 100% {} 74 | } 75 | @-webkit-keyframes blink { 76 | 0% {} 77 | 50% { background-color: transparent; } 78 | 100% {} 79 | } 80 | @keyframes blink { 81 | 0% {} 82 | 50% { background-color: transparent; } 83 | 100% {} 84 | } 85 | 86 | /* Can style cursor different in overwrite (non-insert) mode */ 87 | .CodeMirror-overwrite .CodeMirror-cursor {} 88 | 89 | .cm-tab { display: inline-block; text-decoration: inherit; } 90 | 91 | .CodeMirror-rulers { 92 | position: absolute; 93 | left: 0; right: 0; top: -50px; bottom: 0; 94 | overflow: hidden; 95 | } 96 | .CodeMirror-ruler { 97 | border-left: 1px solid #ccc; 98 | top: 0; bottom: 0; 99 | position: absolute; 100 | } 101 | 102 | /* DEFAULT THEME */ 103 | 104 | .cm-s-default .cm-header {color: blue;} 105 | .cm-s-default .cm-quote {color: #090;} 106 | .cm-negative {color: #d44;} 107 | .cm-positive {color: #292;} 108 | .cm-header, .cm-strong {font-weight: bold;} 109 | .cm-em {font-style: italic;} 110 | .cm-link {text-decoration: underline;} 111 | .cm-strikethrough {text-decoration: line-through;} 112 | 113 | .cm-s-default .cm-keyword {color: #708;} 114 | .cm-s-default .cm-atom {color: #219;} 115 | .cm-s-default .cm-number {color: #164;} 116 | .cm-s-default .cm-def {color: #00f;} 117 | .cm-s-default .cm-variable, 118 | .cm-s-default .cm-punctuation, 119 | .cm-s-default .cm-property, 120 | .cm-s-default .cm-operator {} 121 | .cm-s-default .cm-variable-2 {color: #05a;} 122 | .cm-s-default .cm-variable-3, .cm-s-default .cm-type {color: #085;} 123 | .cm-s-default .cm-comment {color: #a50;} 124 | .cm-s-default .cm-string {color: #a11;} 125 | .cm-s-default .cm-string-2 {color: #f50;} 126 | .cm-s-default .cm-meta {color: #555;} 127 | .cm-s-default .cm-qualifier {color: #555;} 128 | .cm-s-default .cm-builtin {color: #30a;} 129 | .cm-s-default .cm-bracket {color: #997;} 130 | .cm-s-default .cm-tag {color: #170;} 131 | .cm-s-default .cm-attribute {color: #00c;} 132 | .cm-s-default .cm-hr {color: #999;} 133 | .cm-s-default .cm-link {color: #00c;} 134 | 135 | .cm-s-default .cm-error {color: #f00;} 136 | .cm-invalidchar {color: #f00;} 137 | 138 | .CodeMirror-composing { border-bottom: 2px solid; } 139 | 140 | /* Default styles for common addons */ 141 | 142 | div.CodeMirror span.CodeMirror-matchingbracket {color: #0b0;} 143 | div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;} 144 | .CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); } 145 | .CodeMirror-activeline-background {background: #e8f2ff;} 146 | 147 | /* STOP */ 148 | 149 | /* The rest of this file contains styles related to the mechanics of 150 | the editor. You probably shouldn't touch them. */ 151 | 152 | .CodeMirror { 153 | position: relative; 154 | overflow: hidden; 155 | background: white; 156 | } 157 | 158 | .CodeMirror-scroll { 159 | overflow: scroll !important; /* Things will break if this is overridden */ 160 | /* 50px is the magic margin used to hide the element's real scrollbars */ 161 | /* See overflow: hidden in .CodeMirror */ 162 | margin-bottom: -50px; margin-right: -50px; 163 | padding-bottom: 50px; 164 | height: 100%; 165 | outline: none; /* Prevent dragging from highlighting the element */ 166 | position: relative; 167 | z-index: 0; 168 | } 169 | .CodeMirror-sizer { 170 | position: relative; 171 | border-right: 50px solid transparent; 172 | } 173 | 174 | /* The fake, visible scrollbars. Used to force redraw during scrolling 175 | before actual scrolling happens, thus preventing shaking and 176 | flickering artifacts. */ 177 | .CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { 178 | position: absolute; 179 | z-index: 6; 180 | display: none; 181 | outline: none; 182 | } 183 | .CodeMirror-vscrollbar { 184 | right: 0; top: 0; 185 | overflow-x: hidden; 186 | overflow-y: scroll; 187 | } 188 | .CodeMirror-hscrollbar { 189 | bottom: 0; left: 0; 190 | overflow-y: hidden; 191 | overflow-x: scroll; 192 | } 193 | .CodeMirror-scrollbar-filler { 194 | right: 0; bottom: 0; 195 | } 196 | .CodeMirror-gutter-filler { 197 | left: 0; bottom: 0; 198 | } 199 | 200 | .CodeMirror-gutters { 201 | position: absolute; left: 0; top: 0; 202 | min-height: 100%; 203 | z-index: 3; 204 | } 205 | .CodeMirror-gutter { 206 | white-space: normal; 207 | height: 100%; 208 | display: inline-block; 209 | vertical-align: top; 210 | margin-bottom: -50px; 211 | } 212 | .CodeMirror-gutter-wrapper { 213 | position: absolute; 214 | z-index: 4; 215 | background: none !important; 216 | border: none !important; 217 | } 218 | .CodeMirror-gutter-background { 219 | position: absolute; 220 | top: 0; bottom: 0; 221 | z-index: 4; 222 | } 223 | .CodeMirror-gutter-elt { 224 | position: absolute; 225 | cursor: default; 226 | z-index: 4; 227 | } 228 | .CodeMirror-gutter-wrapper ::selection { background-color: transparent } 229 | .CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent } 230 | 231 | .CodeMirror-lines { 232 | cursor: text; 233 | min-height: 1px; /* prevents collapsing before first draw */ 234 | } 235 | .CodeMirror pre.CodeMirror-line, 236 | .CodeMirror pre.CodeMirror-line-like { 237 | /* Reset some styles that the rest of the page might have set */ 238 | -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; 239 | border-width: 0; 240 | background: transparent; 241 | font-family: inherit; 242 | font-size: inherit; 243 | margin: 0; 244 | white-space: pre; 245 | word-wrap: normal; 246 | line-height: inherit; 247 | color: inherit; 248 | z-index: 2; 249 | position: relative; 250 | overflow: visible; 251 | -webkit-tap-highlight-color: transparent; 252 | -webkit-font-variant-ligatures: contextual; 253 | font-variant-ligatures: contextual; 254 | } 255 | .CodeMirror-wrap pre.CodeMirror-line, 256 | .CodeMirror-wrap pre.CodeMirror-line-like { 257 | word-wrap: break-word; 258 | white-space: pre-wrap; 259 | word-break: normal; 260 | } 261 | 262 | .CodeMirror-linebackground { 263 | position: absolute; 264 | left: 0; right: 0; top: 0; bottom: 0; 265 | z-index: 0; 266 | } 267 | 268 | .CodeMirror-linewidget { 269 | position: relative; 270 | z-index: 2; 271 | padding: 0.1px; /* Force widget margins to stay inside of the container */ 272 | } 273 | 274 | .CodeMirror-widget {} 275 | 276 | .CodeMirror-rtl pre { direction: rtl; } 277 | 278 | .CodeMirror-code { 279 | outline: none; 280 | } 281 | 282 | /* Force content-box sizing for the elements where we expect it */ 283 | .CodeMirror-scroll, 284 | .CodeMirror-sizer, 285 | .CodeMirror-gutter, 286 | .CodeMirror-gutters, 287 | .CodeMirror-linenumber { 288 | -moz-box-sizing: content-box; 289 | box-sizing: content-box; 290 | } 291 | 292 | .CodeMirror-measure { 293 | position: absolute; 294 | width: 100%; 295 | height: 0; 296 | overflow: hidden; 297 | visibility: hidden; 298 | } 299 | 300 | .CodeMirror-cursor { 301 | position: absolute; 302 | pointer-events: none; 303 | } 304 | .CodeMirror-measure pre { position: static; } 305 | 306 | div.CodeMirror-cursors { 307 | visibility: hidden; 308 | position: relative; 309 | z-index: 3; 310 | } 311 | div.CodeMirror-dragcursors { 312 | visibility: visible; 313 | } 314 | 315 | .CodeMirror-focused div.CodeMirror-cursors { 316 | visibility: visible; 317 | } 318 | 319 | .CodeMirror-selected { background: #d9d9d9; } 320 | .CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; } 321 | .CodeMirror-crosshair { cursor: crosshair; } 322 | .CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; } 323 | .CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; } 324 | 325 | .cm-searching { 326 | background-color: #ffa; 327 | background-color: rgba(255, 255, 0, .4); 328 | } 329 | 330 | /* Used to force a border model for a node */ 331 | .cm-force-border { padding-right: .1px; } 332 | 333 | @media print { 334 | /* Hide the cursor when printing */ 335 | .CodeMirror div.CodeMirror-cursors { 336 | visibility: hidden; 337 | } 338 | } 339 | 340 | /* See issue #2901 */ 341 | .cm-tab-wrap-hack:after { content: ''; } 342 | 343 | /* Help users use markselection to safely style text background */ 344 | span.CodeMirror-selectedtext { background: none; } 345 | -------------------------------------------------------------------------------- /autotest/static/css/dt.css: -------------------------------------------------------------------------------- 1 | table.dataTable td.dt-control{text-align:center;cursor:pointer}table.dataTable td.dt-control:before{height:1em;width:1em;margin-top:-9px;display:inline-block;color:white;border:.15em solid white;border-radius:1em;box-shadow:0 0 .2em #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:"Courier New",Courier,monospace;line-height:1em;content:"+";background-color:#31b131}table.dataTable tr.dt-hasChild td.dt-control:before{content:"-";background-color:#d33333}table.dataTable thead>tr>th.sorting,table.dataTable thead>tr>th.sorting_asc,table.dataTable thead>tr>th.sorting_desc,table.dataTable thead>tr>th.sorting_asc_disabled,table.dataTable thead>tr>th.sorting_desc_disabled,table.dataTable thead>tr>td.sorting,table.dataTable thead>tr>td.sorting_asc,table.dataTable thead>tr>td.sorting_desc,table.dataTable thead>tr>td.sorting_asc_disabled,table.dataTable thead>tr>td.sorting_desc_disabled{cursor:pointer;position:relative;padding-right:26px}table.dataTable thead>tr>th.sorting:before,table.dataTable thead>tr>th.sorting:after,table.dataTable thead>tr>th.sorting_asc:before,table.dataTable thead>tr>th.sorting_asc:after,table.dataTable thead>tr>th.sorting_desc:before,table.dataTable thead>tr>th.sorting_desc:after,table.dataTable thead>tr>th.sorting_asc_disabled:before,table.dataTable thead>tr>th.sorting_asc_disabled:after,table.dataTable thead>tr>th.sorting_desc_disabled:before,table.dataTable thead>tr>th.sorting_desc_disabled:after,table.dataTable thead>tr>td.sorting:before,table.dataTable thead>tr>td.sorting:after,table.dataTable thead>tr>td.sorting_asc:before,table.dataTable thead>tr>td.sorting_asc:after,table.dataTable thead>tr>td.sorting_desc:before,table.dataTable thead>tr>td.sorting_desc:after,table.dataTable thead>tr>td.sorting_asc_disabled:before,table.dataTable thead>tr>td.sorting_asc_disabled:after,table.dataTable thead>tr>td.sorting_desc_disabled:before,table.dataTable thead>tr>td.sorting_desc_disabled:after{position:absolute;display:block;opacity:.125;right:10px;line-height:9px;font-size:2em;color:black;}table.dataTable thead>tr>th.sorting:before,table.dataTable thead>tr>th.sorting_asc:before,table.dataTable thead>tr>th.sorting_desc:before,table.dataTable thead>tr>th.sorting_asc_disabled:before,table.dataTable thead>tr>th.sorting_desc_disabled:before,table.dataTable thead>tr>td.sorting:before,table.dataTable thead>tr>td.sorting_asc:before,table.dataTable thead>tr>td.sorting_desc:before,table.dataTable thead>tr>td.sorting_asc_disabled:before,table.dataTable thead>tr>td.sorting_desc_disabled:before{bottom:50%;content:"▴"}table.dataTable thead>tr>th.sorting:after,table.dataTable thead>tr>th.sorting_asc:after,table.dataTable thead>tr>th.sorting_desc:after,table.dataTable thead>tr>th.sorting_asc_disabled:after,table.dataTable thead>tr>th.sorting_desc_disabled:after,table.dataTable thead>tr>td.sorting:after,table.dataTable thead>tr>td.sorting_asc:after,table.dataTable thead>tr>td.sorting_desc:after,table.dataTable thead>tr>td.sorting_asc_disabled:after,table.dataTable thead>tr>td.sorting_desc_disabled:after{top:50%;content:"▾"}table.dataTable thead>tr>th.sorting_asc:before,table.dataTable thead>tr>th.sorting_desc:after,table.dataTable thead>tr>td.sorting_asc:before,table.dataTable thead>tr>td.sorting_desc:after{opacity:.6}table.dataTable thead>tr>th.sorting_desc_disabled:after,table.dataTable thead>tr>th.sorting_asc_disabled:before,table.dataTable thead>tr>td.sorting_desc_disabled:after,table.dataTable thead>tr>td.sorting_asc_disabled:before{display:none}table.dataTable thead>tr>th:active,table.dataTable thead>tr>td:active{outline:none}div.dataTables_scrollBody table.dataTable thead>tr>th:before,div.dataTables_scrollBody table.dataTable thead>tr>th:after,div.dataTables_scrollBody table.dataTable thead>tr>td:before,div.dataTables_scrollBody table.dataTable thead>tr>td:after{display:none}div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:2px}div.dataTables_processing>div:last-child{position:relative;width:80px;height:15px;margin:1em auto}div.dataTables_processing>div:last-child>div{position:absolute;top:0;width:13px;height:13px;border-radius:50%;background:rgba(2, 117, 216, 0.9);animation-timing-function:cubic-bezier(0, 1, 1, 0)}div.dataTables_processing>div:last-child>div:nth-child(1){left:8px;animation:datatables-loader-1 .6s infinite}div.dataTables_processing>div:last-child>div:nth-child(2){left:8px;animation:datatables-loader-2 .6s infinite}div.dataTables_processing>div:last-child>div:nth-child(3){left:32px;animation:datatables-loader-2 .6s infinite}div.dataTables_processing>div:last-child>div:nth-child(4){left:56px;animation:datatables-loader-3 .6s infinite}@keyframes datatables-loader-1{0%{transform:scale(0)}100%{transform:scale(1)}}@keyframes datatables-loader-3{0%{transform:scale(1)}100%{transform:scale(0)}}@keyframes datatables-loader-2{0%{transform:translate(0, 0)}100%{transform:translate(24px, 0)}}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center,table.dataTable td.dataTables_empty{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable thead th,table.dataTable thead td,table.dataTable tfoot th,table.dataTable tfoot td{text-align:left}table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable{clear:both;margin-top:6px !important;margin-bottom:6px !important;max-width:none !important;border-collapse:separate !important;border-spacing:0}table.dataTable td,table.dataTable th{-webkit-box-sizing:content-box;box-sizing:content-box}table.dataTable td.dataTables_empty,table.dataTable th.dataTables_empty{text-align:center}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable.table-striped>tbody>tr:nth-of-type(2n+1){background-color:transparent}table.dataTable>tbody>tr{background-color:transparent}table.dataTable>tbody>tr.selected>*{box-shadow:inset 0 0 0 9999px rgba(2, 117, 216, 0.9);color:white}table.dataTable.table-striped>tbody>tr.odd>*{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.05)}table.dataTable.table-striped>tbody>tr.odd.selected>*{box-shadow:inset 0 0 0 9999px rgba(2, 117, 216, 0.95)}table.dataTable.table-hover>tbody>tr:hover>*{box-shadow:inset 0 0 0 9999px rgba(0, 0, 0, 0.075)}table.dataTable.table-hover>tbody>tr.selected:hover>*{box-shadow:inset 0 0 0 9999px rgba(2, 117, 216, 0.975)}div.dataTables_wrapper div.dataTables_length label{font-weight:normal;text-align:left;white-space:nowrap}div.dataTables_wrapper div.dataTables_length select{width:auto;display:inline-block}div.dataTables_wrapper div.dataTables_filter{text-align:right}div.dataTables_wrapper div.dataTables_filter label{font-weight:normal;white-space:nowrap;text-align:left}div.dataTables_wrapper div.dataTables_filter input{margin-left:.5em;display:inline-block;width:auto}div.dataTables_wrapper div.dataTables_info{padding-top:.85em}div.dataTables_wrapper div.dataTables_paginate{margin:0;white-space:nowrap;text-align:right}div.dataTables_wrapper div.dataTables_paginate ul.pagination{margin:2px 0;white-space:nowrap;justify-content:flex-end}div.dataTables_wrapper div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:1em 0}div.dataTables_scrollHead table.dataTable{margin-bottom:0 !important}div.dataTables_scrollBody>table{border-top:none;margin-top:0 !important;margin-bottom:0 !important}div.dataTables_scrollBody>table>thead .sorting:before,div.dataTables_scrollBody>table>thead .sorting_asc:before,div.dataTables_scrollBody>table>thead .sorting_desc:before,div.dataTables_scrollBody>table>thead .sorting:after,div.dataTables_scrollBody>table>thead .sorting_asc:after,div.dataTables_scrollBody>table>thead .sorting_desc:after{display:none}div.dataTables_scrollBody>table>tbody tr:first-child th,div.dataTables_scrollBody>table>tbody tr:first-child td{border-top:none}div.dataTables_scrollFoot>.dataTables_scrollFootInner{box-sizing:content-box}div.dataTables_scrollFoot>.dataTables_scrollFootInner>table{margin-top:0 !important;border-top:none}@media screen and (max-width: 767px){div.dataTables_wrapper div.dataTables_length,div.dataTables_wrapper div.dataTables_filter,div.dataTables_wrapper div.dataTables_info,div.dataTables_wrapper div.dataTables_paginate{text-align:center}div.dataTables_wrapper div.dataTables_paginate ul.pagination{justify-content:center !important}}table.dataTable.table-sm>thead>tr>th:not(.sorting_disabled){padding-right:20px}table.table-bordered.dataTable{border-right-width:0}table.table-bordered.dataTable th,table.table-bordered.dataTable td{border-left-width:0}table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable td:last-child,table.table-bordered.dataTable td:last-child{border-right-width:1px}table.table-bordered.dataTable tbody th,table.table-bordered.dataTable tbody td{border-bottom-width:0}div.dataTables_scrollHead table.table-bordered{border-bottom-width:0}div.table-responsive>div.dataTables_wrapper>div.row{margin:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^=col-]:first-child{padding-left:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^=col-]:last-child{padding-right:0} -------------------------------------------------------------------------------- /autotest/static/css/fileinput.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * @copyright Copyright © Kartik Visweswaran, Krajee.com, 2014 - 2015 3 | * @package bootstrap-fileinput 4 | * @version 4.1.8 5 | * 6 | * File input styling for Bootstrap 3.0 7 | * Built for Yii Framework 2.0 8 | * Author: Kartik Visweswaran 9 | * Year: 2015 10 | * For more Yii related demos visit http://demos.krajee.com 11 | */.file-input{overflow-x:auto}.file-loading{top:0;right:0;width:25px;height:25px;font-size:999px;text-align:right;color:#fff;background:transparent url(../img/loading.gif) top left no-repeat;border:none}.btn-file{position:relative;overflow:hidden}.btn-file input[type=file]{position:absolute;top:0;right:0;min-width:100%;min-height:100%;text-align:right;filter:alpha(opacity=0);opacity:0;background:none repeat scroll 0 0 transparent;cursor:inherit;display:block}.file-caption .glyphicon{display:inline-block;min-width:18px;float:left;margin-top:2px}.file-caption-name{display:inline-block;overflow:hidden;max-height:20px;padding-right:10px;word-break:break-all}.file-caption-ellipsis{position:absolute;right:10px;margin-top:-6px;font-size:1.2em;display:none;font-weight:700;cursor:default}.kv-has-ellipsis .file-caption-ellipsis{display:inline}.kv-has-ellipsis{padding-right:17px}.kv-search-container .kv-search-clear{position:absolute;padding:10px;right:0}.file-error-message{background-color:#f2dede;color:#a94442;text-align:center;border-radius:5px;padding:5px}.file-error-message pre,.file-error-message ul{text-align:left;margin:5px 0}.file-caption-disabled{background-color:#EEE;cursor:not-allowed;opacity:1}.file-input .btn .disabled,.file-input .btn[disabled]{cursor:not-allowed}.file-preview{border-radius:5px;border:1px solid #ddd;padding:5px;width:100%;margin-bottom:5px}.file-preview-frame{display:table;margin:8px;height:160px;border:1px solid #ddd;box-shadow:1px 1px 5px 0 #a2958a;padding:6px;float:left;text-align:center;vertical-align:middle}.file-preview-frame:hover{box-shadow:3px 3px 5px 0 #333}.file-preview-image{height:160px;vertical-align:text-center}.file-preview-text{width:160px;color:#428bca;font-size:11px;text-align:center}.file-preview-other{padding-top:48px;text-align:center}.file-preview-other i{font-size:2.4em}.file-other-error{width:100%;padding-top:30px;text-align:right}.file-input-ajax-new .fileinput-remove-button,.file-input-ajax-new .fileinput-upload-button,.file-input-new .close,.file-input-new .file-preview,.file-input-new .fileinput-remove-button,.file-input-new .fileinput-upload-button,.file-input-new .glyphicon-file{display:none}.loading{background:transparent url(../img/loading.gif) no-repeat scroll center center content-box!important}.wrap-indicator{font-weight:700;color:#245269;cursor:pointer}.file-actions{text-align:left}.file-footer-buttons{float:right}.file-thumbnail-footer .file-caption-name{padding-top:4px;font-size:11px;color:#777}.file-upload-indicator{padding-top:2px;cursor:default}.file-upload-indicator:hover{font-size:1.2em;font-weight:700;padding-top:0}.file-drop-zone{border:1px dashed #aaa;border-radius:4px;height:100%;text-align:center;vertical-align:middle;margin:12px 15px 12px 12px;padding:5px}.file-drop-zone-title{color:#aaa;font-size:40px;padding:85px 10px}.highlighted{border:2px dashed #999!important;background-color:#f0f0f0}.file-uploading{background-image:url(../img/loading-sm.gif);background-position:center bottom 10px;background-repeat:no-repeat;opacity:.6}.file-icon-large{font-size:1.2em} -------------------------------------------------------------------------------- /autotest/static/css/navbar.css: -------------------------------------------------------------------------------- 1 | 2 | .textarea { 3 | width: 100%; 4 | box-sizing: border-box; 5 | border: 0; 6 | height: 600px; 7 | } 8 | .textarea1 { 9 | width: 100%; 10 | box-sizing: border-box; 11 | border: 0; 12 | height: 350px; 13 | } 14 | .headline > li { 15 | font-weight: bold; 16 | list-style: none; 17 | float: left; 18 | margin-left: 20px; 19 | } 20 | .btn.staticB { 21 | color: #324148; 22 | background-color: #eaecec; 23 | border-color: #eaecec; 24 | } 25 | .btn.staticB.activeB{ 26 | color: #fff; 27 | background-color: #00acf0; 28 | border-color: #00acf0; 29 | } 30 | .tooltipm { 31 | position: relative; 32 | display: inline-block; 33 | } 34 | .tooltipm .tooltiptextm { 35 | visibility: hidden; 36 | width: 380px; 37 | background-color: #d6d9daee; 38 | color: #000; 39 | text-align: center; 40 | border-radius: 6px; 41 | padding: 5px 0; 42 | position: absolute; 43 | z-index: 1; 44 | top: 150%; 45 | left: 50%; 46 | margin-left: -190px; 47 | } 48 | .tooltipm .tooltiptextm::after { 49 | content: ""; 50 | position: absolute; 51 | bottom: 100%; 52 | left: 50%; 53 | margin-left: -5px; 54 | border-width: 5px; 55 | border-style: solid; 56 | border-color: transparent transparent #d6d9dadd transparent; 57 | } 58 | .tooltipm:hover .tooltiptextm { 59 | visibility: visible; 60 | z-index: 2; 61 | } 62 | #help 63 | { 64 | position: absolute; 65 | right: 160px; 66 | } 67 | #logout 68 | { 69 | position: absolute; 70 | right: 50px; 71 | } 72 | #navUser 73 | { 74 | position: absolute; 75 | right: 70px; 76 | display: flex; 77 | } 78 | #userName img { 79 | margin-right: 2px; 80 | margin-bottom: -3px; 81 | } 82 | a { 83 | cursor:pointer; 84 | text-decoration:none 85 | } 86 | td { 87 | font-size: 14px; 88 | } 89 | .screenHeight{ 90 | min-height: calc(100vh); 91 | } 92 | 93 | #select-option { 94 | height: 40px; 95 | font-size: 14px; 96 | border: none; 97 | color: inherit; 98 | text-align: left; 99 | width: 100%; 100 | } 101 | 102 | #select-option option { 103 | font-size: 14px; 104 | } 105 | 106 | #select-option option:hover { 107 | background-color: #f5f5f5; 108 | } 109 | 110 | #select-option option:checked { 111 | text-align: right; 112 | } 113 | 114 | .tree ul { 115 | position: relative; 116 | padding-left: 1em; 117 | } 118 | 119 | .node-hovered { 120 | background-color: #f0f0f0; 121 | cursor: pointer; 122 | } 123 | 124 | .node-hovered > ul, .node-hovered > li { 125 | background-color: white; 126 | } 127 | 128 | .small-border { 129 | border: 1px solid #000; 130 | } 131 | 132 | .small-border-table { 133 | border: 1px solid #0003; 134 | } 135 | 136 | -------------------------------------------------------------------------------- /autotest/static/css/select2.min.css: -------------------------------------------------------------------------------- 1 | .select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__placeholder{color:#999;margin-top:5px;float:left}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-top:5px;margin-right:10px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline{float:right}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:white}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top, #fff 50%, #eee 100%);background-image:-o-linear-gradient(top, #fff 50%, #eee 100%);background-image:linear-gradient(to bottom, #fff 50%, #eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top, #eee 50%, #ccc 100%);background-image:-o-linear-gradient(top, #eee 50%, #ccc 100%);background-image:linear-gradient(to bottom, #eee 50%, #ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top, #fff 0%, #eee 50%);background-image:-o-linear-gradient(top, #fff 0%, #eee 50%);background-image:linear-gradient(to bottom, #fff 0%, #eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top, #eee 50%, #fff 100%);background-image:-o-linear-gradient(top, #eee 50%, #fff 100%);background-image:linear-gradient(to bottom, #eee 50%, #fff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{float:right}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb} 2 | -------------------------------------------------------------------------------- /autotest/static/dist/css/dripicons.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | @font-face { 4 | font-family: "dripicons-v2"; 5 | src:url("../fonts/dripicons/dripicons-v2.eot"); 6 | src:url("../fonts/dripicons/dripicons-v2.eot?#iefix") format("embedded-opentype"), 7 | url("../fonts/dripicons/dripicons-v2.woff") format("woff"), 8 | url("../fonts/dripicons/dripicons-v2.ttf") format("truetype"), 9 | url("../fonts/dripicons/dripicons-v2.svg#dripicons-v2") format("svg"); 10 | font-weight: normal; 11 | font-style: normal; 12 | 13 | } 14 | 15 | [data-icon]:before { 16 | font-family: "dripicons-v2" !important; 17 | content: attr(data-icon); 18 | font-style: normal !important; 19 | font-weight: normal !important; 20 | font-variant: normal !important; 21 | text-transform: none !important; 22 | speak: none; 23 | line-height: 1; 24 | -webkit-font-smoothing: antialiased; 25 | -moz-osx-font-smoothing: grayscale; 26 | } 27 | 28 | [class^="dripicons-"]:before, 29 | [class*=" dripicons-"]:before { 30 | font-family: "dripicons-v2" !important; 31 | font-style: normal !important; 32 | font-weight: normal !important; 33 | font-variant: normal !important; 34 | text-transform: none !important; 35 | speak: none; 36 | line-height: 1; 37 | -webkit-font-smoothing: antialiased; 38 | -moz-osx-font-smoothing: grayscale; 39 | } 40 | 41 | .dripicons-alarm:before { 42 | content: "\61"; 43 | } 44 | .dripicons-align-center:before { 45 | content: "\62"; 46 | } 47 | .dripicons-align-justify:before { 48 | content: "\63"; 49 | } 50 | .dripicons-align-left:before { 51 | content: "\64"; 52 | } 53 | .dripicons-align-right:before { 54 | content: "\65"; 55 | } 56 | .dripicons-anchor:before { 57 | content: "\66"; 58 | } 59 | .dripicons-archive:before { 60 | content: "\67"; 61 | } 62 | .dripicons-arrow-down:before { 63 | content: "\68"; 64 | } 65 | .dripicons-arrow-left:before { 66 | content: "\69"; 67 | } 68 | .dripicons-arrow-right:before { 69 | content: "\6a"; 70 | } 71 | .dripicons-arrow-thin-down:before { 72 | content: "\6b"; 73 | } 74 | .dripicons-arrow-thin-left:before { 75 | content: "\6c"; 76 | } 77 | .dripicons-arrow-thin-right:before { 78 | content: "\6d"; 79 | } 80 | .dripicons-arrow-thin-up:before { 81 | content: "\6e"; 82 | } 83 | .dripicons-arrow-up:before { 84 | content: "\6f"; 85 | } 86 | .dripicons-article:before { 87 | content: "\70"; 88 | } 89 | .dripicons-backspace:before { 90 | content: "\71"; 91 | } 92 | .dripicons-basket:before { 93 | content: "\72"; 94 | } 95 | .dripicons-basketball:before { 96 | content: "\73"; 97 | } 98 | .dripicons-battery-empty:before { 99 | content: "\74"; 100 | } 101 | .dripicons-battery-full:before { 102 | content: "\75"; 103 | } 104 | .dripicons-battery-low:before { 105 | content: "\76"; 106 | } 107 | .dripicons-battery-medium:before { 108 | content: "\77"; 109 | } 110 | .dripicons-bell:before { 111 | content: "\78"; 112 | } 113 | .dripicons-blog:before { 114 | content: "\79"; 115 | } 116 | .dripicons-bluetooth:before { 117 | content: "\7a"; 118 | } 119 | .dripicons-bold:before { 120 | content: "\41"; 121 | } 122 | .dripicons-bookmark:before { 123 | content: "\42"; 124 | } 125 | .dripicons-bookmarks:before { 126 | content: "\43"; 127 | } 128 | .dripicons-box:before { 129 | content: "\44"; 130 | } 131 | .dripicons-briefcase:before { 132 | content: "\45"; 133 | } 134 | .dripicons-brightness-low:before { 135 | content: "\46"; 136 | } 137 | .dripicons-brightness-max:before { 138 | content: "\47"; 139 | } 140 | .dripicons-brightness-medium:before { 141 | content: "\48"; 142 | } 143 | .dripicons-broadcast:before { 144 | content: "\49"; 145 | } 146 | .dripicons-browser:before { 147 | content: "\4a"; 148 | } 149 | .dripicons-browser-upload:before { 150 | content: "\4b"; 151 | } 152 | .dripicons-brush:before { 153 | content: "\4c"; 154 | } 155 | .dripicons-calendar:before { 156 | content: "\4d"; 157 | } 158 | .dripicons-camcorder:before { 159 | content: "\4e"; 160 | } 161 | .dripicons-camera:before { 162 | content: "\4f"; 163 | } 164 | .dripicons-card:before { 165 | content: "\50"; 166 | } 167 | .dripicons-cart:before { 168 | content: "\51"; 169 | } 170 | .dripicons-checklist:before { 171 | content: "\52"; 172 | } 173 | .dripicons-checkmark:before { 174 | content: "\53"; 175 | } 176 | .dripicons-chevron-down:before { 177 | content: "\54"; 178 | } 179 | .dripicons-chevron-left:before { 180 | content: "\55"; 181 | } 182 | .dripicons-chevron-right:before { 183 | content: "\56"; 184 | } 185 | .dripicons-chevron-up:before { 186 | content: "\57"; 187 | } 188 | .dripicons-clipboard:before { 189 | content: "\58"; 190 | } 191 | .dripicons-clock:before { 192 | content: "\59"; 193 | } 194 | .dripicons-clockwise:before { 195 | content: "\5a"; 196 | } 197 | .dripicons-cloud:before { 198 | content: "\30"; 199 | } 200 | .dripicons-cloud-download:before { 201 | content: "\31"; 202 | } 203 | .dripicons-cloud-upload:before { 204 | content: "\32"; 205 | } 206 | .dripicons-code:before { 207 | content: "\33"; 208 | } 209 | .dripicons-contract:before { 210 | content: "\34"; 211 | } 212 | .dripicons-contract-2:before { 213 | content: "\35"; 214 | } 215 | .dripicons-conversation:before { 216 | content: "\36"; 217 | } 218 | .dripicons-copy:before { 219 | content: "\37"; 220 | } 221 | .dripicons-crop:before { 222 | content: "\38"; 223 | } 224 | .dripicons-cross:before { 225 | content: "\39"; 226 | } 227 | .dripicons-crosshair:before { 228 | content: "\21"; 229 | } 230 | .dripicons-cutlery:before { 231 | content: "\22"; 232 | } 233 | .dripicons-device-desktop:before { 234 | content: "\23"; 235 | } 236 | .dripicons-device-mobile:before { 237 | content: "\24"; 238 | } 239 | .dripicons-device-tablet:before { 240 | content: "\25"; 241 | } 242 | .dripicons-direction:before { 243 | content: "\26"; 244 | } 245 | .dripicons-disc:before { 246 | content: "\27"; 247 | } 248 | .dripicons-document:before { 249 | content: "\28"; 250 | } 251 | .dripicons-document-delete:before { 252 | content: "\29"; 253 | } 254 | .dripicons-document-edit:before { 255 | content: "\2a"; 256 | } 257 | .dripicons-document-new:before { 258 | content: "\2b"; 259 | } 260 | .dripicons-document-remove:before { 261 | content: "\2c"; 262 | } 263 | .dripicons-dot:before { 264 | content: "\2d"; 265 | } 266 | .dripicons-dots-2:before { 267 | content: "\2e"; 268 | } 269 | .dripicons-dots-3:before { 270 | content: "\2f"; 271 | } 272 | .dripicons-download:before { 273 | content: "\3a"; 274 | } 275 | .dripicons-duplicate:before { 276 | content: "\3b"; 277 | } 278 | .dripicons-enter:before { 279 | content: "\3c"; 280 | } 281 | .dripicons-exit:before { 282 | content: "\3d"; 283 | } 284 | .dripicons-expand:before { 285 | content: "\3e"; 286 | } 287 | .dripicons-expand-2:before { 288 | content: "\3f"; 289 | } 290 | .dripicons-experiment:before { 291 | content: "\40"; 292 | } 293 | .dripicons-export:before { 294 | content: "\5b"; 295 | } 296 | .dripicons-feed:before { 297 | content: "\5d"; 298 | } 299 | .dripicons-flag:before { 300 | content: "\5e"; 301 | } 302 | .dripicons-flashlight:before { 303 | content: "\5f"; 304 | } 305 | .dripicons-folder:before { 306 | content: "\60"; 307 | } 308 | .dripicons-folder-open:before { 309 | content: "\7b"; 310 | } 311 | .dripicons-forward:before { 312 | content: "\7c"; 313 | } 314 | .dripicons-gaming:before { 315 | content: "\7d"; 316 | } 317 | .dripicons-gear:before { 318 | content: "\7e"; 319 | } 320 | .dripicons-graduation:before { 321 | content: "\5c"; 322 | } 323 | .dripicons-graph-bar:before { 324 | content: "\e000"; 325 | } 326 | .dripicons-graph-line:before { 327 | content: "\e001"; 328 | } 329 | .dripicons-graph-pie:before { 330 | content: "\e002"; 331 | } 332 | .dripicons-headset:before { 333 | content: "\e003"; 334 | } 335 | .dripicons-heart:before { 336 | content: "\e004"; 337 | } 338 | .dripicons-help:before { 339 | content: "\e005"; 340 | } 341 | .dripicons-home:before { 342 | content: "\e006"; 343 | } 344 | .dripicons-hourglass:before { 345 | content: "\e007"; 346 | } 347 | .dripicons-inbox:before { 348 | content: "\e008"; 349 | } 350 | .dripicons-information:before { 351 | content: "\e009"; 352 | } 353 | .dripicons-italic:before { 354 | content: "\e00a"; 355 | } 356 | .dripicons-jewel:before { 357 | content: "\e00b"; 358 | } 359 | .dripicons-lifting:before { 360 | content: "\e00c"; 361 | } 362 | .dripicons-lightbulb:before { 363 | content: "\e00d"; 364 | } 365 | .dripicons-link:before { 366 | content: "\e00e"; 367 | } 368 | .dripicons-link-broken:before { 369 | content: "\e00f"; 370 | } 371 | .dripicons-list:before { 372 | content: "\e010"; 373 | } 374 | .dripicons-loading:before { 375 | content: "\e011"; 376 | } 377 | .dripicons-location:before { 378 | content: "\e012"; 379 | } 380 | .dripicons-lock:before { 381 | content: "\e013"; 382 | } 383 | .dripicons-lock-open:before { 384 | content: "\e014"; 385 | } 386 | .dripicons-mail:before { 387 | content: "\e015"; 388 | } 389 | .dripicons-map:before { 390 | content: "\e016"; 391 | } 392 | .dripicons-media-loop:before { 393 | content: "\e017"; 394 | } 395 | .dripicons-media-next:before { 396 | content: "\e018"; 397 | } 398 | .dripicons-media-pause:before { 399 | content: "\e019"; 400 | } 401 | .dripicons-media-play:before { 402 | content: "\e01a"; 403 | } 404 | .dripicons-media-previous:before { 405 | content: "\e01b"; 406 | } 407 | .dripicons-media-record:before { 408 | content: "\e01c"; 409 | } 410 | .dripicons-media-shuffle:before { 411 | content: "\e01d"; 412 | } 413 | .dripicons-media-stop:before { 414 | content: "\e01e"; 415 | } 416 | .dripicons-medical:before { 417 | content: "\e01f"; 418 | } 419 | .dripicons-menu:before { 420 | content: "\e020"; 421 | } 422 | .dripicons-message:before { 423 | content: "\e021"; 424 | } 425 | .dripicons-meter:before { 426 | content: "\e022"; 427 | } 428 | .dripicons-microphone:before { 429 | content: "\e023"; 430 | } 431 | .dripicons-minus:before { 432 | content: "\e024"; 433 | } 434 | .dripicons-monitor:before { 435 | content: "\e025"; 436 | } 437 | .dripicons-move:before { 438 | content: "\e026"; 439 | } 440 | .dripicons-music:before { 441 | content: "\e027"; 442 | } 443 | .dripicons-network-1:before { 444 | content: "\e028"; 445 | } 446 | .dripicons-network-2:before { 447 | content: "\e029"; 448 | } 449 | .dripicons-network-3:before { 450 | content: "\e02a"; 451 | } 452 | .dripicons-network-4:before { 453 | content: "\e02b"; 454 | } 455 | .dripicons-network-5:before { 456 | content: "\e02c"; 457 | } 458 | .dripicons-pamphlet:before { 459 | content: "\e02d"; 460 | } 461 | .dripicons-paperclip:before { 462 | content: "\e02e"; 463 | } 464 | .dripicons-pencil:before { 465 | content: "\e02f"; 466 | } 467 | .dripicons-phone:before { 468 | content: "\e030"; 469 | } 470 | .dripicons-photo:before { 471 | content: "\e031"; 472 | } 473 | .dripicons-photo-group:before { 474 | content: "\e032"; 475 | } 476 | .dripicons-pill:before { 477 | content: "\e033"; 478 | } 479 | .dripicons-pin:before { 480 | content: "\e034"; 481 | } 482 | .dripicons-plus:before { 483 | content: "\e035"; 484 | } 485 | .dripicons-power:before { 486 | content: "\e036"; 487 | } 488 | .dripicons-preview:before { 489 | content: "\e037"; 490 | } 491 | .dripicons-print:before { 492 | content: "\e038"; 493 | } 494 | .dripicons-pulse:before { 495 | content: "\e039"; 496 | } 497 | .dripicons-question:before { 498 | content: "\e03a"; 499 | } 500 | .dripicons-reply:before { 501 | content: "\e03b"; 502 | } 503 | .dripicons-reply-all:before { 504 | content: "\e03c"; 505 | } 506 | .dripicons-return:before { 507 | content: "\e03d"; 508 | } 509 | .dripicons-retweet:before { 510 | content: "\e03e"; 511 | } 512 | .dripicons-rocket:before { 513 | content: "\e03f"; 514 | } 515 | .dripicons-scale:before { 516 | content: "\e040"; 517 | } 518 | .dripicons-search:before { 519 | content: "\e041"; 520 | } 521 | .dripicons-shopping-bag:before { 522 | content: "\e042"; 523 | } 524 | .dripicons-skip:before { 525 | content: "\e043"; 526 | } 527 | .dripicons-stack:before { 528 | content: "\e044"; 529 | } 530 | .dripicons-star:before { 531 | content: "\e045"; 532 | } 533 | .dripicons-stopwatch:before { 534 | content: "\e046"; 535 | } 536 | .dripicons-store:before { 537 | content: "\e047"; 538 | } 539 | .dripicons-suitcase:before { 540 | content: "\e048"; 541 | } 542 | .dripicons-swap:before { 543 | content: "\e049"; 544 | } 545 | .dripicons-tag:before { 546 | content: "\e04a"; 547 | } 548 | .dripicons-tag-delete:before { 549 | content: "\e04b"; 550 | } 551 | .dripicons-tags:before { 552 | content: "\e04c"; 553 | } 554 | .dripicons-thumbs-down:before { 555 | content: "\e04d"; 556 | } 557 | .dripicons-thumbs-up:before { 558 | content: "\e04e"; 559 | } 560 | .dripicons-ticket:before { 561 | content: "\e04f"; 562 | } 563 | .dripicons-time-reverse:before { 564 | content: "\e050"; 565 | } 566 | .dripicons-to-do:before { 567 | content: "\e051"; 568 | } 569 | .dripicons-toggles:before { 570 | content: "\e052"; 571 | } 572 | .dripicons-trash:before { 573 | content: "\e053"; 574 | } 575 | .dripicons-trophy:before { 576 | content: "\e054"; 577 | } 578 | .dripicons-upload:before { 579 | content: "\e055"; 580 | } 581 | .dripicons-user:before { 582 | content: "\e056"; 583 | } 584 | .dripicons-user-group:before { 585 | content: "\e057"; 586 | } 587 | .dripicons-user-id:before { 588 | content: "\e058"; 589 | } 590 | .dripicons-vibrate:before { 591 | content: "\e059"; 592 | } 593 | .dripicons-view-apps:before { 594 | content: "\e05a"; 595 | } 596 | .dripicons-view-list:before { 597 | content: "\e05b"; 598 | } 599 | .dripicons-view-list-large:before { 600 | content: "\e05c"; 601 | } 602 | .dripicons-view-thumb:before { 603 | content: "\e05d"; 604 | } 605 | .dripicons-volume-full:before { 606 | content: "\e05e"; 607 | } 608 | .dripicons-volume-low:before { 609 | content: "\e05f"; 610 | } 611 | .dripicons-volume-medium:before { 612 | content: "\e060"; 613 | } 614 | .dripicons-volume-off:before { 615 | content: "\e061"; 616 | } 617 | .dripicons-wallet:before { 618 | content: "\e062"; 619 | } 620 | .dripicons-warning:before { 621 | content: "\e063"; 622 | } 623 | .dripicons-web:before { 624 | content: "\e064"; 625 | } 626 | .dripicons-weight:before { 627 | content: "\e065"; 628 | } 629 | .dripicons-wifi:before { 630 | content: "\e066"; 631 | } 632 | .dripicons-wrong:before { 633 | content: "\e067"; 634 | } 635 | .dripicons-zoom-in:before { 636 | content: "\e068"; 637 | } 638 | .dripicons-zoom-out:before { 639 | content: "\e069"; 640 | } 641 | -------------------------------------------------------------------------------- /autotest/static/dist/css/pe-icon-7-stroke.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Pe-icon-7-stroke'; 3 | src:url('../fonts/pe-icon-7/Pe-icon-7-stroke.eot?d7yf1v'); 4 | src:url('../fonts/pe-icon-7/Pe-icon-7-stroke.eot?#iefixd7yf1v') format('embedded-opentype'), 5 | url('../fonts/pe-icon-7/Pe-icon-7-stroke.woff?d7yf1v') format('woff'), 6 | url('../fonts/pe-icon-7/Pe-icon-7-stroke.ttf?d7yf1v') format('truetype'), 7 | url('../fonts/pe-icon-7/Pe-icon-7-stroke.svg?d7yf1v#Pe-icon-7-stroke') format('svg'); 8 | font-weight: normal; 9 | font-style: normal; 10 | } 11 | 12 | [class^="pe-7s-"], [class*=" pe-7s-"] { 13 | font-family: 'Pe-icon-7-stroke'; 14 | speak: none; 15 | font-style: normal; 16 | font-weight: normal; 17 | font-variant: normal; 18 | text-transform: none; 19 | line-height: 1; 20 | 21 | /* Better Font Rendering =========== */ 22 | -webkit-font-smoothing: antialiased; 23 | -moz-osx-font-smoothing: grayscale; 24 | } 25 | 26 | .pe-7s-album:before { 27 | content: "\e6aa"; 28 | } 29 | .pe-7s-arc:before { 30 | content: "\e6ab"; 31 | } 32 | .pe-7s-back-2:before { 33 | content: "\e6ac"; 34 | } 35 | .pe-7s-bandaid:before { 36 | content: "\e6ad"; 37 | } 38 | .pe-7s-car:before { 39 | content: "\e6ae"; 40 | } 41 | .pe-7s-diamond:before { 42 | content: "\e6af"; 43 | } 44 | .pe-7s-door-lock:before { 45 | content: "\e6b0"; 46 | } 47 | .pe-7s-eyedropper:before { 48 | content: "\e6b1"; 49 | } 50 | .pe-7s-female:before { 51 | content: "\e6b2"; 52 | } 53 | .pe-7s-gym:before { 54 | content: "\e6b3"; 55 | } 56 | .pe-7s-hammer:before { 57 | content: "\e6b4"; 58 | } 59 | .pe-7s-headphones:before { 60 | content: "\e6b5"; 61 | } 62 | .pe-7s-helm:before { 63 | content: "\e6b6"; 64 | } 65 | .pe-7s-hourglass:before { 66 | content: "\e6b7"; 67 | } 68 | .pe-7s-leaf:before { 69 | content: "\e6b8"; 70 | } 71 | .pe-7s-magic-wand:before { 72 | content: "\e6b9"; 73 | } 74 | .pe-7s-male:before { 75 | content: "\e6ba"; 76 | } 77 | .pe-7s-map-2:before { 78 | content: "\e6bb"; 79 | } 80 | .pe-7s-next-2:before { 81 | content: "\e6bc"; 82 | } 83 | .pe-7s-paint-bucket:before { 84 | content: "\e6bd"; 85 | } 86 | .pe-7s-pendrive:before { 87 | content: "\e6be"; 88 | } 89 | .pe-7s-photo:before { 90 | content: "\e6bf"; 91 | } 92 | .pe-7s-piggy:before { 93 | content: "\e6c0"; 94 | } 95 | .pe-7s-plugin:before { 96 | content: "\e6c1"; 97 | } 98 | .pe-7s-refresh-2:before { 99 | content: "\e6c2"; 100 | } 101 | .pe-7s-rocket:before { 102 | content: "\e6c3"; 103 | } 104 | .pe-7s-settings:before { 105 | content: "\e6c4"; 106 | } 107 | .pe-7s-shield:before { 108 | content: "\e6c5"; 109 | } 110 | .pe-7s-smile:before { 111 | content: "\e6c6"; 112 | } 113 | .pe-7s-usb:before { 114 | content: "\e6c7"; 115 | } 116 | .pe-7s-vector:before { 117 | content: "\e6c8"; 118 | } 119 | .pe-7s-wine:before { 120 | content: "\e6c9"; 121 | } 122 | .pe-7s-cloud-upload:before { 123 | content: "\e68a"; 124 | } 125 | .pe-7s-cash:before { 126 | content: "\e68c"; 127 | } 128 | .pe-7s-close:before { 129 | content: "\e680"; 130 | } 131 | .pe-7s-bluetooth:before { 132 | content: "\e68d"; 133 | } 134 | .pe-7s-cloud-download:before { 135 | content: "\e68b"; 136 | } 137 | .pe-7s-way:before { 138 | content: "\e68e"; 139 | } 140 | .pe-7s-close-circle:before { 141 | content: "\e681"; 142 | } 143 | .pe-7s-id:before { 144 | content: "\e68f"; 145 | } 146 | .pe-7s-angle-up:before { 147 | content: "\e682"; 148 | } 149 | .pe-7s-wristwatch:before { 150 | content: "\e690"; 151 | } 152 | .pe-7s-angle-up-circle:before { 153 | content: "\e683"; 154 | } 155 | .pe-7s-world:before { 156 | content: "\e691"; 157 | } 158 | .pe-7s-angle-right:before { 159 | content: "\e684"; 160 | } 161 | .pe-7s-volume:before { 162 | content: "\e692"; 163 | } 164 | .pe-7s-angle-right-circle:before { 165 | content: "\e685"; 166 | } 167 | .pe-7s-users:before { 168 | content: "\e693"; 169 | } 170 | .pe-7s-angle-left:before { 171 | content: "\e686"; 172 | } 173 | .pe-7s-user-female:before { 174 | content: "\e694"; 175 | } 176 | .pe-7s-angle-left-circle:before { 177 | content: "\e687"; 178 | } 179 | .pe-7s-up-arrow:before { 180 | content: "\e695"; 181 | } 182 | .pe-7s-angle-down:before { 183 | content: "\e688"; 184 | } 185 | .pe-7s-switch:before { 186 | content: "\e696"; 187 | } 188 | .pe-7s-angle-down-circle:before { 189 | content: "\e689"; 190 | } 191 | .pe-7s-scissors:before { 192 | content: "\e697"; 193 | } 194 | .pe-7s-wallet:before { 195 | content: "\e600"; 196 | } 197 | .pe-7s-safe:before { 198 | content: "\e698"; 199 | } 200 | .pe-7s-volume2:before { 201 | content: "\e601"; 202 | } 203 | .pe-7s-volume1:before { 204 | content: "\e602"; 205 | } 206 | .pe-7s-voicemail:before { 207 | content: "\e603"; 208 | } 209 | .pe-7s-video:before { 210 | content: "\e604"; 211 | } 212 | .pe-7s-user:before { 213 | content: "\e605"; 214 | } 215 | .pe-7s-upload:before { 216 | content: "\e606"; 217 | } 218 | .pe-7s-unlock:before { 219 | content: "\e607"; 220 | } 221 | .pe-7s-umbrella:before { 222 | content: "\e608"; 223 | } 224 | .pe-7s-trash:before { 225 | content: "\e609"; 226 | } 227 | .pe-7s-tools:before { 228 | content: "\e60a"; 229 | } 230 | .pe-7s-timer:before { 231 | content: "\e60b"; 232 | } 233 | .pe-7s-ticket:before { 234 | content: "\e60c"; 235 | } 236 | .pe-7s-target:before { 237 | content: "\e60d"; 238 | } 239 | .pe-7s-sun:before { 240 | content: "\e60e"; 241 | } 242 | .pe-7s-study:before { 243 | content: "\e60f"; 244 | } 245 | .pe-7s-stopwatch:before { 246 | content: "\e610"; 247 | } 248 | .pe-7s-star:before { 249 | content: "\e611"; 250 | } 251 | .pe-7s-speaker:before { 252 | content: "\e612"; 253 | } 254 | .pe-7s-signal:before { 255 | content: "\e613"; 256 | } 257 | .pe-7s-shuffle:before { 258 | content: "\e614"; 259 | } 260 | .pe-7s-shopbag:before { 261 | content: "\e615"; 262 | } 263 | .pe-7s-share:before { 264 | content: "\e616"; 265 | } 266 | .pe-7s-server:before { 267 | content: "\e617"; 268 | } 269 | .pe-7s-search:before { 270 | content: "\e618"; 271 | } 272 | .pe-7s-film:before { 273 | content: "\e6a5"; 274 | } 275 | .pe-7s-science:before { 276 | content: "\e619"; 277 | } 278 | .pe-7s-disk:before { 279 | content: "\e6a6"; 280 | } 281 | .pe-7s-ribbon:before { 282 | content: "\e61a"; 283 | } 284 | .pe-7s-repeat:before { 285 | content: "\e61b"; 286 | } 287 | .pe-7s-refresh:before { 288 | content: "\e61c"; 289 | } 290 | .pe-7s-add-user:before { 291 | content: "\e6a9"; 292 | } 293 | .pe-7s-refresh-cloud:before { 294 | content: "\e61d"; 295 | } 296 | .pe-7s-paperclip:before { 297 | content: "\e69c"; 298 | } 299 | .pe-7s-radio:before { 300 | content: "\e61e"; 301 | } 302 | .pe-7s-note2:before { 303 | content: "\e69d"; 304 | } 305 | .pe-7s-print:before { 306 | content: "\e61f"; 307 | } 308 | .pe-7s-network:before { 309 | content: "\e69e"; 310 | } 311 | .pe-7s-prev:before { 312 | content: "\e620"; 313 | } 314 | .pe-7s-mute:before { 315 | content: "\e69f"; 316 | } 317 | .pe-7s-power:before { 318 | content: "\e621"; 319 | } 320 | .pe-7s-medal:before { 321 | content: "\e6a0"; 322 | } 323 | .pe-7s-portfolio:before { 324 | content: "\e622"; 325 | } 326 | .pe-7s-like2:before { 327 | content: "\e6a1"; 328 | } 329 | .pe-7s-plus:before { 330 | content: "\e623"; 331 | } 332 | .pe-7s-left-arrow:before { 333 | content: "\e6a2"; 334 | } 335 | .pe-7s-play:before { 336 | content: "\e624"; 337 | } 338 | .pe-7s-key:before { 339 | content: "\e6a3"; 340 | } 341 | .pe-7s-plane:before { 342 | content: "\e625"; 343 | } 344 | .pe-7s-joy:before { 345 | content: "\e6a4"; 346 | } 347 | .pe-7s-photo-gallery:before { 348 | content: "\e626"; 349 | } 350 | .pe-7s-pin:before { 351 | content: "\e69b"; 352 | } 353 | .pe-7s-phone:before { 354 | content: "\e627"; 355 | } 356 | .pe-7s-plug:before { 357 | content: "\e69a"; 358 | } 359 | .pe-7s-pen:before { 360 | content: "\e628"; 361 | } 362 | .pe-7s-right-arrow:before { 363 | content: "\e699"; 364 | } 365 | .pe-7s-paper-plane:before { 366 | content: "\e629"; 367 | } 368 | .pe-7s-delete-user:before { 369 | content: "\e6a7"; 370 | } 371 | .pe-7s-paint:before { 372 | content: "\e62a"; 373 | } 374 | .pe-7s-bottom-arrow:before { 375 | content: "\e6a8"; 376 | } 377 | .pe-7s-notebook:before { 378 | content: "\e62b"; 379 | } 380 | .pe-7s-note:before { 381 | content: "\e62c"; 382 | } 383 | .pe-7s-next:before { 384 | content: "\e62d"; 385 | } 386 | .pe-7s-news-paper:before { 387 | content: "\e62e"; 388 | } 389 | .pe-7s-musiclist:before { 390 | content: "\e62f"; 391 | } 392 | .pe-7s-music:before { 393 | content: "\e630"; 394 | } 395 | .pe-7s-mouse:before { 396 | content: "\e631"; 397 | } 398 | .pe-7s-more:before { 399 | content: "\e632"; 400 | } 401 | .pe-7s-moon:before { 402 | content: "\e633"; 403 | } 404 | .pe-7s-monitor:before { 405 | content: "\e634"; 406 | } 407 | .pe-7s-micro:before { 408 | content: "\e635"; 409 | } 410 | .pe-7s-menu:before { 411 | content: "\e636"; 412 | } 413 | .pe-7s-map:before { 414 | content: "\e637"; 415 | } 416 | .pe-7s-map-marker:before { 417 | content: "\e638"; 418 | } 419 | .pe-7s-mail:before { 420 | content: "\e639"; 421 | } 422 | .pe-7s-mail-open:before { 423 | content: "\e63a"; 424 | } 425 | .pe-7s-mail-open-file:before { 426 | content: "\e63b"; 427 | } 428 | .pe-7s-magnet:before { 429 | content: "\e63c"; 430 | } 431 | .pe-7s-loop:before { 432 | content: "\e63d"; 433 | } 434 | .pe-7s-look:before { 435 | content: "\e63e"; 436 | } 437 | .pe-7s-lock:before { 438 | content: "\e63f"; 439 | } 440 | .pe-7s-lintern:before { 441 | content: "\e640"; 442 | } 443 | .pe-7s-link:before { 444 | content: "\e641"; 445 | } 446 | .pe-7s-like:before { 447 | content: "\e642"; 448 | } 449 | .pe-7s-light:before { 450 | content: "\e643"; 451 | } 452 | .pe-7s-less:before { 453 | content: "\e644"; 454 | } 455 | .pe-7s-keypad:before { 456 | content: "\e645"; 457 | } 458 | .pe-7s-junk:before { 459 | content: "\e646"; 460 | } 461 | .pe-7s-info:before { 462 | content: "\e647"; 463 | } 464 | .pe-7s-home:before { 465 | content: "\e648"; 466 | } 467 | .pe-7s-help2:before { 468 | content: "\e649"; 469 | } 470 | .pe-7s-help1:before { 471 | content: "\e64a"; 472 | } 473 | .pe-7s-graph3:before { 474 | content: "\e64b"; 475 | } 476 | .pe-7s-graph2:before { 477 | content: "\e64c"; 478 | } 479 | .pe-7s-graph1:before { 480 | content: "\e64d"; 481 | } 482 | .pe-7s-graph:before { 483 | content: "\e64e"; 484 | } 485 | .pe-7s-global:before { 486 | content: "\e64f"; 487 | } 488 | .pe-7s-gleam:before { 489 | content: "\e650"; 490 | } 491 | .pe-7s-glasses:before { 492 | content: "\e651"; 493 | } 494 | .pe-7s-gift:before { 495 | content: "\e652"; 496 | } 497 | .pe-7s-folder:before { 498 | content: "\e653"; 499 | } 500 | .pe-7s-flag:before { 501 | content: "\e654"; 502 | } 503 | .pe-7s-filter:before { 504 | content: "\e655"; 505 | } 506 | .pe-7s-file:before { 507 | content: "\e656"; 508 | } 509 | .pe-7s-expand1:before { 510 | content: "\e657"; 511 | } 512 | .pe-7s-exapnd2:before { 513 | content: "\e658"; 514 | } 515 | .pe-7s-edit:before { 516 | content: "\e659"; 517 | } 518 | .pe-7s-drop:before { 519 | content: "\e65a"; 520 | } 521 | .pe-7s-drawer:before { 522 | content: "\e65b"; 523 | } 524 | .pe-7s-download:before { 525 | content: "\e65c"; 526 | } 527 | .pe-7s-display2:before { 528 | content: "\e65d"; 529 | } 530 | .pe-7s-display1:before { 531 | content: "\e65e"; 532 | } 533 | .pe-7s-diskette:before { 534 | content: "\e65f"; 535 | } 536 | .pe-7s-date:before { 537 | content: "\e660"; 538 | } 539 | .pe-7s-cup:before { 540 | content: "\e661"; 541 | } 542 | .pe-7s-culture:before { 543 | content: "\e662"; 544 | } 545 | .pe-7s-crop:before { 546 | content: "\e663"; 547 | } 548 | .pe-7s-credit:before { 549 | content: "\e664"; 550 | } 551 | .pe-7s-copy-file:before { 552 | content: "\e665"; 553 | } 554 | .pe-7s-config:before { 555 | content: "\e666"; 556 | } 557 | .pe-7s-compass:before { 558 | content: "\e667"; 559 | } 560 | .pe-7s-comment:before { 561 | content: "\e668"; 562 | } 563 | .pe-7s-coffee:before { 564 | content: "\e669"; 565 | } 566 | .pe-7s-cloud:before { 567 | content: "\e66a"; 568 | } 569 | .pe-7s-clock:before { 570 | content: "\e66b"; 571 | } 572 | .pe-7s-check:before { 573 | content: "\e66c"; 574 | } 575 | .pe-7s-chat:before { 576 | content: "\e66d"; 577 | } 578 | .pe-7s-cart:before { 579 | content: "\e66e"; 580 | } 581 | .pe-7s-camera:before { 582 | content: "\e66f"; 583 | } 584 | .pe-7s-call:before { 585 | content: "\e670"; 586 | } 587 | .pe-7s-calculator:before { 588 | content: "\e671"; 589 | } 590 | .pe-7s-browser:before { 591 | content: "\e672"; 592 | } 593 | .pe-7s-box2:before { 594 | content: "\e673"; 595 | } 596 | .pe-7s-box1:before { 597 | content: "\e674"; 598 | } 599 | .pe-7s-bookmarks:before { 600 | content: "\e675"; 601 | } 602 | .pe-7s-bicycle:before { 603 | content: "\e676"; 604 | } 605 | .pe-7s-bell:before { 606 | content: "\e677"; 607 | } 608 | .pe-7s-battery:before { 609 | content: "\e678"; 610 | } 611 | .pe-7s-ball:before { 612 | content: "\e679"; 613 | } 614 | .pe-7s-back:before { 615 | content: "\e67a"; 616 | } 617 | .pe-7s-attention:before { 618 | content: "\e67b"; 619 | } 620 | .pe-7s-anchor:before { 621 | content: "\e67c"; 622 | } 623 | .pe-7s-albums:before { 624 | content: "\e67d"; 625 | } 626 | .pe-7s-alarm:before { 627 | content: "\e67e"; 628 | } 629 | .pe-7s-airplay:before { 630 | content: "\e67f"; 631 | } 632 | -------------------------------------------------------------------------------- /autotest/static/dist/fonts/ionicons/ionicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/testdevhome/Autotestplat/78ffaa365c593bee2d8224d34920b63837f5f40f/autotest/static/dist/fonts/ionicons/ionicons.eot -------------------------------------------------------------------------------- /autotest/static/dist/fonts/ionicons/ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/testdevhome/Autotestplat/78ffaa365c593bee2d8224d34920b63837f5f40f/autotest/static/dist/fonts/ionicons/ionicons.ttf -------------------------------------------------------------------------------- /autotest/static/dist/fonts/ionicons/ionicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/testdevhome/Autotestplat/78ffaa365c593bee2d8224d34920b63837f5f40f/autotest/static/dist/fonts/ionicons/ionicons.woff -------------------------------------------------------------------------------- /autotest/static/dist/fonts/ionicons/ionicons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/testdevhome/Autotestplat/78ffaa365c593bee2d8224d34920b63837f5f40f/autotest/static/dist/fonts/ionicons/ionicons.woff2 -------------------------------------------------------------------------------- /autotest/static/js/exporting.js: -------------------------------------------------------------------------------- 1 | /* 2 | Highcharts JS v5.0.12 (2017-05-24) 3 | Exporting module 4 | 5 | (c) 2010-2017 Torstein Honsi 6 | 7 | License: www.highcharts.com/license 8 | */ 9 | (function(k){"object"===typeof module&&module.exports?module.exports=k:k(Highcharts)})(function(k){(function(f){var k=f.defaultOptions,p=f.doc,A=f.Chart,w=f.addEvent,I=f.removeEvent,E=f.fireEvent,t=f.createElement,B=f.discardElement,v=f.css,n=f.merge,C=f.pick,h=f.each,F=f.objectEach,u=f.extend,J=f.isTouchDevice,D=f.win,G=D.navigator.userAgent,K=f.Renderer.prototype.symbols;/Edge\/|Trident\/|MSIE /.test(G);/firefox/i.test(G);u(k.lang,{printChart:"Print chart",downloadPNG:"Download PNG image",downloadJPEG:"Download JPEG image", 10 | downloadPDF:"Download PDF document",downloadSVG:"Download SVG vector image",contextButtonTitle:"Chart context menu"});k.navigation={buttonOptions:{theme:{},symbolSize:14,symbolX:12.5,symbolY:10.5,align:"right",buttonSpacing:3,height:22,verticalAlign:"top",width:24}};n(!0,k.navigation,{menuStyle:{border:"1px solid #999999",background:"#ffffff",padding:"5px 0"},menuItemStyle:{padding:"0.5em 1em",background:"none",color:"#333333",fontSize:J?"14px":"11px",transition:"background 250ms, color 250ms"},menuItemHoverStyle:{background:"#335cad", 11 | color:"#ffffff"},buttonOptions:{symbolFill:"#666666",symbolStroke:"#666666",symbolStrokeWidth:3,theme:{fill:"#ffffff",stroke:"none",padding:5}}});k.exporting={type:"image/png",url:"https://export.highcharts.com/",printMaxWidth:780,scale:2,buttons:{contextButton:{className:"highcharts-contextbutton",menuClassName:"highcharts-contextmenu",symbol:"menu",_titleKey:"contextButtonTitle",menuItems:[{textKey:"printChart",onclick:function(){this.print()}},{separator:!0},{textKey:"downloadPNG",onclick:function(){this.exportChart()}}, 12 | {textKey:"downloadJPEG",onclick:function(){this.exportChart({type:"image/jpeg"})}},{textKey:"downloadPDF",onclick:function(){this.exportChart({type:"application/pdf"})}},{textKey:"downloadSVG",onclick:function(){this.exportChart({type:"image/svg+xml"})}}]}}};f.post=function(a,b,e){var c=t("form",n({method:"post",action:a,enctype:"multipart/form-data"},e),{display:"none"},p.body);F(b,function(a,b){t("input",{type:"hidden",name:b,value:a},null,c)});c.submit();B(c)};u(A.prototype,{sanitizeSVG:function(a, 13 | b){if(b&&b.exporting&&b.exporting.allowHTML){var e=a.match(/<\/svg>(.*?$)/);e&&e[1]&&(e='\x3cforeignObject x\x3d"0" y\x3d"0" width\x3d"'+b.chart.width+'" height\x3d"'+b.chart.height+'"\x3e\x3cbody xmlns\x3d"http://www.w3.org/1999/xhtml"\x3e'+e[1]+"\x3c/body\x3e\x3c/foreignObject\x3e",a=a.replace("\x3c/svg\x3e",e+"\x3c/svg\x3e"))}a=a.replace(/zIndex="[^"]+"/g,"").replace(/isShadow="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery[0-9]+="[^"]+"/g,"").replace(/url\(("|")(\S+)("|")\)/g, 14 | "url($2)").replace(/url\([^#]+#/g,"url(#").replace(/.*?$/,"\x3c/svg\x3e").replace(/(fill|stroke)="rgba\(([ 0-9]+,[ 0-9]+,[ 0-9]+),([ 0-9\.]+)\)"/g,'$1\x3d"rgb($2)" $1-opacity\x3d"$3"').replace(/ /g,"\u00a0").replace(/­/g,"\u00ad");return a=a.replace(//g,"\x3c$1title\x3e").replace(/height=([^" ]+)/g, 15 | 'height\x3d"$1"').replace(/width=([^" ]+)/g,'width\x3d"$1"').replace(/hc-svg-href="([^"]+)">/g,'xlink:href\x3d"$1"/\x3e').replace(/ id=([^" >]+)/g,' id\x3d"$1"').replace(/class=([^" >]+)/g,'class\x3d"$1"').replace(/ transform /g," ").replace(/:(path|rect)/g,"$1").replace(/style="([^"]+)"/g,function(a){return a.toLowerCase()})},getChartHTML:function(){return this.container.innerHTML},getSVG:function(a){var b,e,c,r,m,g=n(this.options,a);p.createElementNS||(p.createElementNS=function(a,b){return p.createElement(b)}); 16 | e=t("div",null,{position:"absolute",top:"-9999em",width:this.chartWidth+"px",height:this.chartHeight+"px"},p.body);c=this.renderTo.style.width;m=this.renderTo.style.height;c=g.exporting.sourceWidth||g.chart.width||/px$/.test(c)&&parseInt(c,10)||600;m=g.exporting.sourceHeight||g.chart.height||/px$/.test(m)&&parseInt(m,10)||400;u(g.chart,{animation:!1,renderTo:e,forExport:!0,renderer:"SVGRenderer",width:c,height:m});g.exporting.enabled=!1;delete g.data;g.series=[];h(this.series,function(a){r=n(a.userOptions, 17 | {animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:a.visible});r.isInternal||g.series.push(r)});h(this.axes,function(a){a.userOptions.internalKey||(a.userOptions.internalKey=f.uniqueKey())});b=new f.Chart(g,this.callback);a&&h(["xAxis","yAxis","series"],function(c){var d={};a[c]&&(d[c]=a[c],b.update(d))});h(this.axes,function(a){var c=f.find(b.axes,function(b){return b.options.internalKey===a.userOptions.internalKey}),d=a.getExtremes(),e=d.userMin,d=d.userMax;!c||void 0===e&&void 0===d|| 18 | c.setExtremes(e,d,!0,!1)});c=b.getChartHTML();c=this.sanitizeSVG(c,g);g=null;b.destroy();B(e);return c},getSVGForExport:function(a,b){var e=this.options.exporting;return this.getSVG(n({chart:{borderRadius:0}},e.chartOptions,b,{exporting:{sourceWidth:a&&a.sourceWidth||e.sourceWidth,sourceHeight:a&&a.sourceHeight||e.sourceHeight}}))},exportChart:function(a,b){b=this.getSVGForExport(a,b);a=n(this.options.exporting,a);f.post(a.url,{filename:a.filename||"chart",type:a.type,width:a.width||0,scale:a.scale, 19 | svg:b},a.formAttributes)},print:function(){var a=this,b=a.container,e=[],c=b.parentNode,f=p.body,m=f.childNodes,g=a.options.exporting.printMaxWidth,d,H;if(!a.isPrinting){a.isPrinting=!0;a.pointer.reset(null,0);E(a,"beforePrint");if(H=g&&a.chartWidth>g)d=[a.options.chart.width,void 0,!1],a.setSize(g,void 0,!1);h(m,function(a,b){1===a.nodeType&&(e[b]=a.style.display,a.style.display="none")});f.appendChild(b);D.focus();D.print();setTimeout(function(){c.appendChild(b);h(m,function(a,b){1===a.nodeType&& 20 | (a.style.display=e[b])});a.isPrinting=!1;H&&a.setSize.apply(a,d);E(a,"afterPrint")},1E3)}},contextMenu:function(a,b,e,c,f,m,g){var d=this,r=d.options.navigation,k=d.chartWidth,q=d.chartHeight,n="cache-"+a,l=d[n],x=Math.max(f,m),y,z;l||(d[n]=l=t("div",{className:a},{position:"absolute",zIndex:1E3,padding:x+"px"},d.container),y=t("div",{className:"highcharts-menu"},null,l),v(y,u({MozBoxShadow:"3px 3px 10px #888",WebkitBoxShadow:"3px 3px 10px #888",boxShadow:"3px 3px 10px #888"},r.menuStyle)),z=function(){v(l, 21 | {display:"none"});g&&g.setState(0);d.openMenu=!1},d.exportEvents.push(w(l,"mouseleave",function(){l.hideTimer=setTimeout(z,500)}),w(l,"mouseenter",function(){clearTimeout(l.hideTimer)}),w(p,"mouseup",function(b){d.pointer.inClass(b.target,a)||z()})),h(b,function(a){if(a){var b;a.separator?b=t("hr",null,null,y):(b=t("div",{className:"highcharts-menu-item",onclick:function(b){b&&b.stopPropagation();z();a.onclick&&a.onclick.apply(d,arguments)},innerHTML:a.text||d.options.lang[a.textKey]},null,y),b.onmouseover= 22 | function(){v(this,r.menuItemHoverStyle)},b.onmouseout=function(){v(this,r.menuItemStyle)},v(b,u({cursor:"pointer"},r.menuItemStyle)));d.exportDivElements.push(b)}}),d.exportDivElements.push(y,l),d.exportMenuWidth=l.offsetWidth,d.exportMenuHeight=l.offsetHeight);b={display:"block"};e+d.exportMenuWidth>k?b.right=k-e-f-x+"px":b.left=e-x+"px";c+m+d.exportMenuHeight>q&&"top"!==g.alignOptions.verticalAlign?b.bottom=q-c-x+"px":b.top=c+m-x+"px";v(l,b);d.openMenu=!0},addButton:function(a){var b=this,e=b.renderer, 23 | c=n(b.options.navigation.buttonOptions,a),f=c.onclick,m=c.menuItems,g,d,k=c.symbolSize||12;b.btnCount||(b.btnCount=0);b.exportDivElements||(b.exportDivElements=[],b.exportSVGElements=[]);if(!1!==c.enabled){var h=c.theme,q=h.states,p=q&&q.hover,q=q&&q.select,l;delete h.states;f?l=function(a){a.stopPropagation();f.call(b,a)}:m&&(l=function(){b.contextMenu(d.menuClassName,m,d.translateX,d.translateY,d.width,d.height,d);d.setState(2)});c.text&&c.symbol?h.paddingLeft=C(h.paddingLeft,25):c.text||u(h,{width:c.width, 24 | height:c.height,padding:0});d=e.button(c.text,0,0,l,h,p,q).addClass(a.className).attr({"stroke-linecap":"round",title:b.options.lang[c._titleKey],zIndex:3});d.menuClassName=a.menuClassName||"highcharts-menu-"+b.btnCount++;c.symbol&&(g=e.symbol(c.symbol,c.symbolX-k/2,c.symbolY-k/2,k,k).addClass("highcharts-button-symbol").attr({zIndex:1}).add(d),g.attr({stroke:c.symbolStroke,fill:c.symbolFill,"stroke-width":c.symbolStrokeWidth||1}));d.add().align(u(c,{width:d.width,x:C(c.x,b.buttonOffset)}),!0,"spacingBox"); 25 | b.buttonOffset+=(d.width+c.buttonSpacing)*("right"===c.align?-1:1);b.exportSVGElements.push(d,g)}},destroyExport:function(a){var b=a?a.target:this;a=b.exportSVGElements;var e=b.exportDivElements,c=b.exportEvents,f;a&&(h(a,function(a,c){a&&(a.onclick=a.ontouchstart=null,f="cache-"+a.menuClassName,b[f]&&delete b[f],b.exportSVGElements[c]=a.destroy())}),a.length=0);e&&(h(e,function(a,c){clearTimeout(a.hideTimer);I(a,"mouseleave");b.exportDivElements[c]=a.onmouseout=a.onmouseover=a.ontouchstart=a.onclick= 26 | null;B(a)}),e.length=0);c&&(h(c,function(a){a()}),c.length=0)}});K.menu=function(a,b,e,c){return["M",a,b+2.5,"L",a+e,b+2.5,"M",a,b+c/2+.5,"L",a+e,b+c/2+.5,"M",a,b+c-1.5,"L",a+e,b+c-1.5]};A.prototype.renderExporting=function(){var a=this,b=a.options.exporting,e=b.buttons,c=a.isDirtyExporting||!a.exportSVGElements;a.buttonOffset=0;a.isDirtyExporting&&a.destroyExport();c&&!1!==b.enabled&&(a.exportEvents=[],F(e,function(b){a.addButton(b)}),a.isDirtyExporting=!1);w(a,"destroy",a.destroyExport)};A.prototype.callbacks.push(function(a){a.renderExporting(); 27 | w(a,"redraw",a.renderExporting);h(["exporting","navigation"],function(b){a[b]={update:function(e,c){a.isDirtyExporting=!0;n(!0,a.options[b],e);C(c,!0)&&a.redraw()}}})})})(k)}); 28 | -------------------------------------------------------------------------------- /autotest/static/js/index.js: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * @方法描述 4 | */ 5 | function infoInit(){ 6 | } -------------------------------------------------------------------------------- /autotest/static/js/performance.js: -------------------------------------------------------------------------------- 1 | setProgressURL = 'apiperformance/progress/' 2 | 3 | 4 | function search_performance_interface() { 5 | var key_words_name = document.getElementById("key_words_name").value; 6 | var key_words_url = document.getElementById("key_words_url").value; 7 | if (key_words_name == '' && key_words_url == '') { 8 | window.location.reload(true); 9 | } 10 | else { 11 | $.ajax({ 12 | url: "/autotest/apiperformance/search/", 13 | data: JSON.stringify({ 14 | key_words_name: key_words_name, 15 | key_words_url: key_words_url, 16 | }), 17 | contentType: 'application/json;charset=utf-8', 18 | type: "POST", 19 | traditional: true, 20 | success: function (result) { 21 | $('#tbody').empty(); 22 | len = result['id_list'].length; 23 | console.log(len); 24 | for (i = 1; i < len+1; i++) { 25 | tmp_append = '' + 26 | //'' + 27 | '' + i + '' + 28 | '' + result['id_list'][i-1] + '' + 29 | '' + result['name_list'][i-1] + '' + 30 | '' + result['url_list'][i-1] + '' + 31 | '' + result['charger_list'][i-1] + '' + 32 | '' + 33 | '
' + 34 | '' + 35 | '
' + 36 | '' + 37 | ''; 38 | $('#tbody').append(tmp_append); 39 | } 40 | console.log(result); 41 | }, 42 | fail: function (result) { 43 | debugger 44 | } 45 | }); 46 | } 47 | } 48 | 49 | function generate_performance_file(ele){ 50 | var login_list = $(".logins"); 51 | var id_list_login = []; 52 | for(var i=0;i') 168 | var progressBar = document.getElementById('progressBar'); 169 | var duration = document.getElementById('num_sj').value; 170 | var increment = parseInt(duration) * 60; 171 | progressBar.max = increment; 172 | let startTime = new Date(); 173 | 174 | var intervalId = setInterval(function() { 175 | let now = new Date(); 176 | let elapsed = now - startTime; 177 | let seconds = Math.floor(elapsed / 1000); 178 | progressBar.value = seconds % 60; 179 | $.ajax({ 180 | url: appURL+setProgressURL, 181 | type: 'POST', 182 | data: JSON.stringify({ 183 | progress: progressBar.value, 184 | progress_total: increment, 185 | }), 186 | success: (rst) => { 187 | console.log("success") 188 | } 189 | }); 190 | if (progressBar.value === progressBar.max-1) { 191 | clearInterval(intervalId); 192 | } 193 | }, 100); 194 | } 195 | else { 196 | $('.jmeter_status').empty().append('状态:出现异常'); 197 | return; 198 | } 199 | }, 200 | fail: function(result) { 201 | debugger 202 | } 203 | }); 204 | 205 | $.ajax({ 206 | url: "/autotest/apiperformance/start/", 207 | headers:{'X-CSRFToken': '{{ csrf_token }}'}, 208 | contentType: 'application/json;charset=utf-8', 209 | type: "POST", 210 | traditional: true, 211 | success: function(result) { 212 | console.log(result); 213 | if(result == 'success'){ 214 | $('.jmeter_status').empty().append('状态:测试完成'); 215 | $.ajax({ 216 | url: appURL+setProgressURL, 217 | type: 'POST', 218 | data: JSON.stringify({ 219 | progress: 0, 220 | progress_total: 1, 221 | }), 222 | success: (rst) => { 223 | console.log("success") 224 | } 225 | }); 226 | } 227 | else { 228 | $('.jmeter_status').empty().append('状态:测试失败'); 229 | } 230 | }, 231 | fail: function(result) { 232 | debugger 233 | } 234 | }); 235 | } 236 | 237 | function select_login(id1,name1,module1) { 238 | $('#login_panel').append(''+name1+''); 239 | } 240 | function select_not_login(id1,name1,module1) { 241 | $('#not_login_panel').append(''+name1+''); 242 | } 243 | function remove_login_selected(ele) { 244 | var id1 = '#'+ele; 245 | $('#login_panel').find(id1).remove(); 246 | } 247 | function remove_not_login_selected(ele) { 248 | var id1 = '#'+ele; 249 | $('#not_login_panel').find(id1).remove(); 250 | } -------------------------------------------------------------------------------- /autotest/static/js/product.js: -------------------------------------------------------------------------------- 1 | addURL = 'product/add/' 2 | addFieldNames = ["product_name", "product_type", "product_introduction"] 3 | addRequiredFields = [0, 1, 2] 4 | 5 | modURL = 'product/mod/' 6 | modFieldNames = ["id","product_name", "product_type", "product_introduction"] 7 | modRequiredFields = [0, 1, 2] 8 | modRowIndex = [0, 1, 2, 3] 9 | 10 | delURL = 'product/del/' 11 | delFieldNames = ["id"] 12 | 13 | getSearchSelectURL = '' 14 | getSelectURL = '' 15 | searchableTableColumns = [1,2,3] 16 | 17 | tableURL = 'product/getTableData/' 18 | table = 0 19 | tableButtonOperation = " 修改 \ 20 | 删除 " 21 | tableItemsPerPage = 10 22 | tableColumnsData = [ 23 | { data: 0 , 24 | searchable:false, 25 | }, 26 | { data: 1, 27 | searchable:true, 28 | }, 29 | { data: 2, 30 | searchable:true, 31 | }, 32 | { data: 3, 33 | searchable:true, 34 | }, 35 | { data: 4, 36 | searchable:true, 37 | }, 38 | { data: null, 39 | orderable: false, 40 | render: function(data){ 41 | return tableButtonOperation 42 | }, 43 | searchable:false, 44 | } 45 | ] 46 | 47 | function infoInit(){ 48 | tableDataInit() 49 | } 50 | 51 | /** 52 | * @param {Object} d 53 | */ 54 | function tableSearchDataFunction(d){ 55 | return 56 | } 57 | 58 | /** 59 | * @returns 60 | */ 61 | function additionalTips(type = ""){ 62 | return null 63 | } -------------------------------------------------------------------------------- /autotest/static/js/report.js: -------------------------------------------------------------------------------- 1 | 2 | delURL = 'report/del/' 3 | delFieldNames = ["report_id"] 4 | 5 | modURL = 'report/mod/' 6 | modRowIndex = [0, 1, 2, 3, 4, 5] 7 | reportDetailRUL = 'getReportDetail/' 8 | 9 | getSearchSelectURL = '' 10 | getSelectURL = '' 11 | searchableTableColumns = [0,2,3] 12 | 13 | tableURL = 'report/getTableData/' 14 | table = 0 15 | tableButtonOperation = "详情"+ 16 | " 删除 " 17 | tableItemsPerPage = 10 18 | tableColumnsData = [ 19 | { data: 0 , 20 | searchable:true, 21 | }, 22 | { data: 3, 23 | searchable:true, 24 | }, 25 | { data: 4, 26 | searchable:true, 27 | }, 28 | { data: 7, 29 | searchable:false, 30 | }, 31 | { data: 6, 32 | searchable:false, 33 | }, 34 | { data: null, 35 | orderable: false, 36 | render: function(data){ 37 | return tableButtonOperation 38 | }, 39 | searchable:false, 40 | } 41 | ] 42 | 43 | function infoInit(){ 44 | tableDataInit() 45 | laydate.render({ 46 | elem: '#date_Search', 47 | type: 'date', 48 | format: 'yyyy-MM-dd', 49 | }); 50 | } 51 | 52 | /** 53 | * @param {Object} d 54 | */ 55 | function tableSearchDataFunction(d){ 56 | return 57 | } 58 | 59 | /** 60 | * @returns 61 | */ 62 | function additionalTips(type = ""){ 63 | return null 64 | } 65 | 66 | function report_id(e) { 67 | window.event.stopPropagation() 68 | selectedRow = e.parentNode.parentNode 69 | report_id = selectedRow.children[0].innerText 70 | $("[name=caseTitle]").text("测试报告 [" + report_id + "] 详情") 71 | console.log(report_id) 72 | return report_id 73 | } -------------------------------------------------------------------------------- /autotest/static/js/testplan.js: -------------------------------------------------------------------------------- 1 | 2 | runURL = 'apitestplan/run/' 3 | getProgressURL = 'apitestplan/get/' 4 | 5 | 6 | function infoInit(){ 7 | laydate.render({ 8 | elem: '#date_Add', 9 | type: 'datetime', 10 | format: 'yyyy-MM-dd HH:mm', 11 | }); 12 | laydate.render({ 13 | elem: '#date_Mod', 14 | type: 'datetime', 15 | format: 'yyyy-MM-dd HH:mm', 16 | }); 17 | laydate.render({ 18 | elem: '#date_Search', 19 | type: 'datetime', 20 | format: 'yyyy-MM-dd HH:mm', 21 | }); 22 | } 23 | 24 | /** 25 | * @param {Object} d 26 | */ 27 | function tableSearchDataFunction(d){ 28 | return 29 | } 30 | 31 | 32 | /** 33 | * @returns 34 | */ 35 | function additionalTips(type = ""){ 36 | return null 37 | } 38 | 39 | 40 | /** 41 | * 42 | * @returns 43 | * @param {Element} e 44 | * @param {*} tips 45 | */ 46 | function runActions(e,tips="运行成功"){ 47 | run(e) 48 | } 49 | 50 | -------------------------------------------------------------------------------- /autotest/static/js/user.js: -------------------------------------------------------------------------------- 1 | addURL = 'user/add/' 2 | addFieldNames = ["username", "password", "email", "is_superuser","last_name"] 3 | addRequiredFields = [0, 1, 2, 3, 4] 4 | 5 | modURL = 'user/mod/' 6 | modFieldNames = ["id", "username", "password", "email", "is_superuser","last_name"] 7 | modRequiredFields = [1, 2, 3, 4, 5] 8 | modRowIndex = [0, 1, 2, 3, 4, 5] 9 | 10 | setURL='user/mod/' 11 | setFieldNames = ["id", "username", "password", "email", "is_superuser","last_name"] 12 | setRequiredFields = [0,1,2,3,4,5] 13 | setRowIndex = [0,1,2,3,4,5] 14 | 15 | delURL = 'user/del/' 16 | delFieldNames = ["id"] 17 | 18 | getSearchSelectURL = 'user/getSearchSelect/' 19 | getAddSelectURL = 'user/getAddSelect/' 20 | getSelectURL = 'user/getSelect/' 21 | searchableTableColumns = [1, 4] 22 | 23 | tableURL = 'user/getTableData/' 24 | table = 0 25 | tableButtonOperation = " 设置 \ 26 | 修改 \ 27 | 删除 " 28 | tableItemsPerPage = 10 29 | tableColumnsData = [ 30 | { data: 0 , 31 | searchable:false, 32 | }, 33 | { data: 4, 34 | searchable:true, 35 | }, 36 | { data: 1, 37 | render: function(data){ 38 | return "******" 39 | }, 40 | searchable:false, 41 | }, 42 | { data: 7, 43 | searchable:false, 44 | }, 45 | { data: 3, 46 | render: function(data) { 47 | if (data == '1') 48 | data = "管理员"; 49 | else if (data == '0') 50 | data = "普通用户"; 51 | return data; 52 | }, 53 | searchable:true, 54 | }, 55 | { data: 6, 56 | searchable:true, 57 | }, 58 | { data: null, 59 | orderable: false, 60 | render: function(data){ 61 | return tableButtonOperation 62 | }, 63 | searchable:false, 64 | } 65 | ] 66 | 67 | function infoInit(){ 68 | getAndShowSearchSelectValue() 69 | getAndShowAddSelectValue() 70 | getAndShowModSelectValue() 71 | getAndShowSetSelectValue() 72 | tableDataInit() 73 | } 74 | 75 | 76 | function tableSearchDataFunction(d){ 77 | d.user_name = $("[name=searchField]").eq(0).val() 78 | } 79 | 80 | 81 | function additionalTips(type = ""){ 82 | return null 83 | } 84 | -------------------------------------------------------------------------------- /autotest/static/src/localfiles/dataTables.bootstrap4.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | DataTables Bootstrap 4 integration 3 | ©2011-2017 SpryMedia Ltd - datatables.net/license 4 | */ 5 | var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(a,b,c){a instanceof String&&(a=String(a));for(var e=a.length,d=0;d<'col-sm-12 col-md-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>", 12 | renderer:"bootstrap"});a.extend(d.ext.classes,{sWrapper:"dataTables_wrapper dt-bootstrap4",sFilterInput:"form-control form-control-sm",sLengthSelect:"custom-select custom-select-sm form-control form-control-sm",sProcessing:"dataTables_processing card",sPageButton:"paginate_button page-item"});d.ext.renderer.pageButton.bootstrap=function(f,l,A,B,m,t){var u=new d.Api(f),C=f.oClasses,n=f.oLanguage.oPaginate,D=f.oLanguage.oAria.paginate||{},h,k,v=0,y=function(q,w){var x,E=function(p){p.preventDefault(); 13 | a(p.currentTarget).hasClass("disabled")||u.page()==p.data.action||u.page(p.data.action).draw("page")};var r=0;for(x=w.length;r",{"class":C.sPageButton+" "+k,id:0===A&&"string"===typeof g?f.sTableId+"_"+g:null}).append(a("",{href:"#","aria-controls":f.sTableId,"aria-label":D[g],"data-dt-idx":v,tabindex:f.iTabIndex,"class":"page-link"}).html(h)).appendTo(q);f.oApi._fnBindAction(F,{action:g},E);v++}}}};try{var z=a(l).find(c.activeElement).data("dt-idx")}catch(q){}y(a(l).empty().html('