├── .gitignore ├── .idea ├── blade.xml └── vcs.xml ├── MySQLDB.class.php ├── README.md ├── ResizeImage.class.php ├── assets ├── avatars │ ├── Thumbs.db │ ├── avatar.png │ ├── avatar1.png │ ├── avatar2.png │ ├── avatar3.png │ ├── avatar4.png │ ├── avatar5.png │ ├── profile-pic.jpg │ └── user.jpg ├── css │ ├── ace-ie.min.css │ ├── ace-rtl.min.css │ ├── ace-skins.min.css │ ├── ace.min.css │ ├── bootstrap-editable.css │ ├── bootstrap-timepicker.css │ ├── bootstrap.min.css │ ├── chosen.css │ ├── colorbox.css │ ├── colorpicker.css │ ├── datepicker.css │ ├── daterangepicker.css │ ├── dropzone.css │ ├── font-awesome-ie7.min.css │ ├── font-awesome.min.css │ ├── fullcalendar.css │ ├── images │ │ ├── Thumbs.db │ │ └── loading.gif │ ├── jquery-ui-1.10.3.custom.min.css │ ├── jquery-ui-1.10.3.full.min.css │ ├── jquery.gritter.css │ ├── select2.css │ └── ui.jqgrid.css ├── font │ └── fontawesome-webfont.woff ├── images │ └── gallery │ │ ├── image-1.jpg │ │ ├── image-2.jpg │ │ ├── image-3.jpg │ │ ├── image-4.jpg │ │ ├── image-5.jpg │ │ ├── image-6.jpg │ │ ├── thumb-1.jpg │ │ ├── thumb-2.jpg │ │ ├── thumb-3.jpg │ │ ├── thumb-4.jpg │ │ ├── thumb-5.jpg │ │ └── thumb-6.jpg └── js │ ├── ace-elements.min.js │ ├── ace-extra.min.js │ ├── ace.min.js │ ├── additional-methods.min.js │ ├── bootbox.min.js │ ├── bootstrap-colorpicker.min.js │ ├── bootstrap-tag.min.js │ ├── bootstrap-wysiwyg.min.js │ ├── bootstrap.min.js │ ├── chosen.jquery.min.js │ ├── date-time │ ├── bootstrap-datepicker.min.js │ ├── bootstrap-timepicker.min.js │ ├── daterangepicker.min.js │ └── moment.min.js │ ├── dropzone.min.js │ ├── excanvas.min.js │ ├── flot │ ├── jquery.flot.min.js │ ├── jquery.flot.pie.min.js │ └── jquery.flot.resize.min.js │ ├── fuelux │ ├── data │ │ └── fuelux.tree-sampledata.js │ ├── fuelux.spinner.min.js │ ├── fuelux.tree.min.js │ └── fuelux.wizard.min.js │ ├── fullcalendar.min.js │ ├── html5shiv.js │ ├── jqGrid │ ├── i18n │ │ └── grid.locale-en.js │ └── jquery.jqGrid.min.js │ ├── jquery-1.10.2.min.js │ ├── jquery-2.0.3.min.js │ ├── jquery-ui-1.10.3.custom.min.js │ ├── jquery-ui-1.10.3.full.min.js │ ├── jquery.autosize.min.js │ ├── jquery.colorbox-min.js │ ├── jquery.dataTables.bootstrap.js │ ├── jquery.dataTables.min.js │ ├── jquery.easy-pie-chart.min.js │ ├── jquery.gritter.min.js │ ├── jquery.hotkeys.min.js │ ├── jquery.inputlimiter.1.3.1.min.js │ ├── jquery.knob.min.js │ ├── jquery.maskedinput.min.js │ ├── jquery.mobile.custom.min.js │ ├── jquery.nestable.min.js │ ├── jquery.slimscroll.min.js │ ├── jquery.sparkline.min.js │ ├── jquery.ui.touch-punch.min.js │ ├── jquery.validate.min.js │ ├── markdown │ ├── bootstrap-markdown.min.js │ └── markdown.min.js │ ├── respond.min.js │ ├── select2.min.js │ ├── typeahead-bs2.min.js │ └── x-editable │ ├── ace-editable.min.js │ └── bootstrap-editable.min.js ├── common.php ├── config.php ├── feedback.php ├── fuck.php ├── getwallpaper.php ├── index.php ├── initdata.php ├── install.php ├── login.html ├── login.php ├── upload.html └── upload.php /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by .ignore support plugin (hsz.mobi) 2 | -------------------------------------------------------------------------------- /.idea/blade.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /MySQLDB.class.php: -------------------------------------------------------------------------------- 1 | host = isset($config['host']) ? $config['host'] : 'localhost'; 37 | $this->port = isset($config['port']) ? $config['port'] : '3306'; 38 | $this->username = isset($config['username']) ? $config['username'] : 'root'; 39 | $this->password = isset($config['password']) ? $config['password'] : ''; 40 | $this->charset = isset($config['charset']) ? $config['charset'] : 'utf8'; 41 | $this->dbname = isset($config['dbname']) ? $config['dbname'] : ''; 42 | 43 | //连接数据库 44 | $this->connect(); 45 | //设定连接编码 46 | $this->setCharset($this->charset); 47 | //选定数据库 48 | $this->selectDb($this->dbname); 49 | } 50 | 51 | //禁止克隆 52 | private function __clone() 53 | { 54 | } 55 | 56 | //这里进行连接 57 | public function connect() 58 | { 59 | $this->resourc = mysql_connect("$this->host:$this->port", "$this->username", "$this->password") or die("连接数据库失败!"); 60 | } 61 | 62 | public function setCharset($charset) 63 | { 64 | mysql_set_charset($charset, $this->resourc); 65 | } 66 | 67 | public function selectDb($dbname) 68 | { 69 | mysql_select_db($dbname, $this->resourc); 70 | } 71 | 72 | /** 73 | * 功能:执行最基本(任何)sql语句 74 | * 返回:如果失败直接结束,如果成功,返回执行结果 75 | */ 76 | public function query($sql) 77 | { 78 | if (!$result = mysql_query($sql, $this->resourc)) { 79 | echo("
执行失败。"); 80 | echo "
失败的sql语句为:" . $sql; 81 | echo "
出错信息为:" . mysql_error(); 82 | echo "
错误代号为:" . mysql_errno(); 83 | die(); 84 | } 85 | return $result; 86 | } 87 | 88 | /** 89 | * 功能:执行select语句,返回2维数组 90 | * 参数:$sql 字符串类型 select语句 91 | */ 92 | public function getAll($sql) 93 | { 94 | $result = $this->query($sql); 95 | $arr = array(); //空数组 96 | while ($rec = mysql_fetch_assoc($result)) { 97 | $arr[] = $rec;//这样就形成二维数组 98 | } 99 | return $arr; 100 | } 101 | 102 | //返回一行数据(作为一维数组) 103 | public function getRow($sql) 104 | { 105 | $result = $this->query($sql); 106 | //$rec = array(); 107 | if ($rec2 = mysql_fetch_assoc($result)) {//返回下标为字段名的数组 108 | //如果fetch出来有数据(也就是取得了一行数据),结果自然是数组 109 | return $rec2; 110 | } 111 | return false; 112 | } 113 | 114 | //返回一个数据(select语句的第一行第一列) 115 | //比如常见的:select count(*) as c from XXX where ... 116 | public function getOne($sql) 117 | { 118 | $result = $this->query($sql); 119 | $rec = mysql_fetch_row($result);//返回下标为数字的数组,且下标一定是0,1,2, 3..... 120 | //如果没有数据,返回false 121 | if ($result === false) { 122 | return false; 123 | } 124 | return $rec[0]; //该数组的第一项。 125 | } 126 | 127 | /** 128 | * 转义用户数据,防止SQL注入 129 | * @param $data string 待转换字符串 130 | * @return 转换后的字符串 131 | */ 132 | public function escapeString($data) 133 | { 134 | return "'" . mysql_real_escape_string($data, $this->resourc) . "'"; 135 | } 136 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 剑三APP后台管理系统 2 | 3 | **此项目已经放弃治疗:** 新版本后台管理系统使用 `laravel` 开发,请看 [jiansan-laravel](https://github.com/6ag/jiansan-laravel) 。 4 | 5 | **此项目已经放弃治疗:** 新版本后台管理系统使用 `laravel` 开发,请看 [jiansan-laravel](https://github.com/6ag/jiansan-laravel) 。 6 | 7 | **此项目已经放弃治疗:** 新版本后台管理系统使用 `laravel` 开发,请看 [jiansan-laravel](https://github.com/6ag/jiansan-laravel) 。 8 | 9 | ## 项目结构 10 | 11 | + *assets* -----各种网页资源 12 | + initdata ----- 初始数据 (可删除) 13 | + *resource* -----存放壁纸文件 14 | + common.php -----公共脚本 15 | + config.php -----项目配置脚本 16 | + feedback.php ----- 反馈信息接口 17 | + getwallpaper.php -----获取壁纸数据接口 18 | + index.php -----后台主页 19 | + initdata.php ----- 初始化项目数据脚本 20 | + install.php -----安装项目 21 | + login.php ----- 登录脚本 22 | + MySQLDB.class.php -----数据库封装类 23 | + upload.php ----- 上传壁纸脚本 24 | 25 | ## 如何使用 26 | 27 | ### 上传项目 28 | 29 | 下载项目文件和初始数据压缩包 *initdata.zip*,并上传至您的服务器,然后解压缩。 30 | 31 | ### 配置数据 32 | 33 | 配置您的数据库信息和后台账户信息,如需初始数据请确保初始数据路径是否正确。 34 | 35 | ```php 36 | return $config = [ 37 | // 初始数据路径 38 | 'initdataPath' => './initdata', 39 | // 数据库信息 40 | 'username' => 'root', 41 | 'password' => 'root', 42 | 'dbname' => 'jiansan', 43 | 44 | // 初始化安装的账号密码 45 | 'initUsername' => 'admin', 46 | 'initPassword' => 'admin888' 47 | ]; 48 | ``` 49 | 50 | ### 安装程序 51 | 52 | 在浏览器访问服务器上的 `install.php` 脚本,进行程序安装。 53 | 54 | ### 初始数据 55 | 56 | **注意:** 这一步是需求才进行,如果不需要直接跳过。 57 | 在浏览器访问服务器上的 `initdata.php` 脚本,进行数据初始化。 58 | 59 | ### 后台管理 60 | 61 | 登录后台后,可以进行壁纸上传管理。 62 | 63 | ### APP获取壁纸数据 64 | 65 | 数据接口: `getwallpaper.php` 66 | 67 | 请求方式: `get` 68 | 69 | 必要参数: `category` 分类, `currentPage` 当前页码 70 | 71 | 可选参数: `onePageCount` 每页壁纸数量 72 | 73 | 可选参数: `news` 随便传个值,调用新接口,返回数据带缩略图字段 74 | 75 | 请求示例: 76 | 77 | ```swift 78 | // 接口 get方式可以拼接参数到url上 79 | http://xxxx.com/getwallpaper.php?new=1&category=tc¤tPage=1 80 | ``` 81 | 82 | 返回示例: 83 | 84 | ```json 85 | { 86 | "code": 1, 87 | "message": "成功", 88 | "data": [ 89 | { 90 | "id": "336", 91 | "category": "tc", 92 | "path": "resource/tc/f8e63d65906c06bf89d874d0c5f96c46.png", 93 | "smallpath": "resource/tc/smallf8e63d65906c06bf89d874d0c5f96c46.png" 94 | }, 95 | { 96 | "id": "335", 97 | "category": "tc", 98 | "path": "resource/tc/522526abc4fc5399fcb61c594df91b1d.png", 99 | "smallpath": "resource/tc/small522526abc4fc5399fcb61c594df91b1d.png" 100 | }, 101 | { 102 | "id": "334", 103 | "category": "tc", 104 | "path": "resource/tc/eaf365f46461b81146f89277a051be46.png", 105 | "smallpath": "resource/tc/smalleaf365f46461b81146f89277a051be46.png" 106 | }, 107 | { 108 | "id": "305", 109 | "category": "tc", 110 | "path": "resource/tc/c6cc012aad69628113fcfadf79d7dbf2.png", 111 | "smallpath": "resource/tc/smallc6cc012aad69628113fcfadf79d7dbf2.png" 112 | }, 113 | { 114 | "id": "304", 115 | "category": "tc", 116 | "path": "resource/tc/505e4cc96e26f8d86409dc781a092c9b.png", 117 | "smallpath": "resource/tc/small505e4cc96e26f8d86409dc781a092c9b.png" 118 | }, 119 | { 120 | "id": "270", 121 | "category": "tc", 122 | "path": "resource/tc/22945d1179e02bd7ba1255714e800286.png", 123 | "smallpath": "resource/tc/small22945d1179e02bd7ba1255714e800286.png" 124 | }, 125 | { 126 | "id": "252", 127 | "category": "tc", 128 | "path": "resource/tc/bd4f3c89891f94fd50918d4bc008e8e4.png", 129 | "smallpath": "resource/tc/smallbd4f3c89891f94fd50918d4bc008e8e4.png" 130 | }, 131 | { 132 | "id": "163", 133 | "category": "tc", 134 | "path": "resource/tc/a21d4ebb91c1056415e54721ae81a64d.png", 135 | "smallpath": "resource/tc/smalla21d4ebb91c1056415e54721ae81a64d.png" 136 | }, 137 | { 138 | "id": "162", 139 | "category": "tc", 140 | "path": "resource/tc/b29c8d991a87e6e552810a9913724fe0.png", 141 | "smallpath": "resource/tc/smallb29c8d991a87e6e552810a9913724fe0.png" 142 | }, 143 | { 144 | "id": "161", 145 | "category": "tc", 146 | "path": "resource/tc/8d7815eaf5e9d0d296dd10d2e9cb0931.png", 147 | "smallpath": "resource/tc/small8d7815eaf5e9d0d296dd10d2e9cb0931.png" 148 | } 149 | ] 150 | } 151 | ``` 152 | 153 | ### APP提交反馈信息 154 | 155 | 数据接口: `feedback.php` 156 | 157 | 请求方式: `post` 158 | 159 | 必要参数: `contact` 联系方式, `content` 反馈内容 160 | 161 | 请求示例: 162 | 163 | ```swift 164 | // 接口 165 | https://xxxx.com/feedback.php 166 | 167 | // 参数 168 | let parameters = [ 169 | "content" : "这是一条测试反馈内容,应该成功的", 170 | "contact" : "44334512" 171 | ] 172 | ``` 173 | 174 | 返回示例: 175 | 176 | ```json 177 | { 178 | "code": 1, 179 | "message": "提交反馈成功" 180 | } 181 | ``` 182 | 183 | ### 吃了一斤 184 | 185 | 数据数据太大了,github传不上来,请访问 [我的博客](https://blog.6ag.cn/) 下载或发送邮件到 获取。 186 | 187 | -------------------------------------------------------------------------------- /ResizeImage.class.php: -------------------------------------------------------------------------------- 1 | width = $width; 50 | } 51 | 52 | //设置目标图像的高 53 | public function setHeight($height) 54 | { 55 | if ($height <= 0) { 56 | throw new Exception('目标图像高度不能小于0'); 57 | return; 58 | } 59 | $this->height = $height; 60 | } 61 | 62 | //设置源图像文件 63 | public function setSourceFile($file) 64 | { 65 | if (!file_exists($file)) { 66 | throw new Exception('源图像文件不存在'); 67 | return; 68 | } 69 | $this->sourceFile = $file; 70 | } 71 | 72 | //设置目标图像文件 73 | public function setDstFile($file) 74 | { 75 | $this->dstFile = $file; 76 | } 77 | 78 | //设置是否生成新文件 79 | public function saveFile($flag) 80 | { 81 | $this->saveFlag = (boolean)$flag; 82 | } 83 | 84 | //执行绘图操作,$quality参数表示生成图像的效果,数字越高,效果越好,不过仅用于jpeg类型的图像 85 | public function draw($quality = 95) 86 | { 87 | $sourceImgInfo = getimagesize($this->sourceFile); 88 | if (!is_array($sourceImgInfo)) { 89 | throw new Exception('源图像文件不存在'); 90 | return; 91 | } 92 | switch ($sourceImgInfo[2]) { 93 | case 1: 94 | $this->imgType = "image/gif"; 95 | $this->sim = imagecreatefromgif($this->sourceFile); 96 | break; 97 | case 2: 98 | $this->imgType = "image/jpeg"; 99 | $this->sim = imagecreatefromjpeg($this->sourceFile); 100 | break; 101 | case 3: 102 | $this->imgType = "image/png"; 103 | $this->sim = imagecreatefrompng($this->sourceFile); 104 | break; 105 | case 15: 106 | $this->imgType = "image/wbmp"; 107 | $this->sim = imagecreatefromwbmp($this->sourceFile); 108 | break; 109 | default: 110 | return '不支持的图像格式'; 111 | break; 112 | } 113 | //设置目标图像的实际宽和高 114 | $dstWidth = $sourceWidth = $sourceImgInfo[0]; 115 | $dstHeight = $sourceHeight = $sourceImgInfo[1]; 116 | if ($sourceHeight > $this->height && $sourceWidth > $this->width) { 117 | if ($sourceHeight > $sourceWidth) { 118 | $zoom = $this->height / $sourceHeight; 119 | $dstHeight = $this->height; 120 | $dstWidth = $sourceWidth * $zoom; 121 | } else { 122 | $zoom = $this->width / $sourceWidth; 123 | $dstWidth = $this->width; 124 | $dstHeight = $sourceHeight * $zoom; 125 | } 126 | } 127 | //建立目标图像的句柄 128 | $this->dim = @imagecreatetruecolor($dstWidth, $dstHeight) or imagecreate($dstWidth, $dstHeight); 129 | //将真彩色图像转换为调色板图像 130 | // imagetruecolortopalette($this->sim, false, 256); 131 | //根据源图像颜色的总数并把它分配到目标图像上 132 | $palsize = ImageColorsTotal($this->sim); 133 | for ($i = 0; $i < $palsize; $i++) { 134 | $colors = ImageColorsForIndex($this->sim, $i); 135 | ImageColorAllocate($this->dim, $colors['red'], $colors['green'], $colors['blue']); 136 | } 137 | //进行图像的缩放 138 | imagecopyresampled($this->dim, $this->sim, 0, 0, 0, 0, $dstWidth, $dstHeight, $sourceWidth, $sourceHeight); 139 | //生成新的目标图像 140 | if ($this->saveFlag) { 141 | $imgExt = substr($this->dstFile, strrpos($this->dstFile, '.') + 1); 142 | switch (strtolower($imgExt)) { 143 | case 'gif': 144 | if (!function_exists('imagegif')) { 145 | throw new Exception('你的GD库不支持gif图像的输出'); 146 | return; 147 | } 148 | imagegif($this->dim, $this->dstFile); 149 | break; 150 | case 'jpeg': 151 | case 'jpg': 152 | imagejpeg($this->dim, $this->dstFile, $quality); 153 | break; 154 | case 'png': 155 | imagepng($this->dim, $this->dstFile); 156 | break; 157 | case 'wbmp': 158 | imagewbmp($this->dim, $this->dstFile); 159 | break; 160 | default: 161 | return '目标图像文件为空或者格式不对,无法进行保存'; 162 | break; 163 | } 164 | } //直接输出目标图像至浏览器 165 | else { 166 | header("Content-type: " . $this->imgType); 167 | switch ($sourceImgInfo[2]) { 168 | case 1: 169 | imagegif($this->dim); 170 | break; 171 | case 2: 172 | imagejpeg($this->dim, '', $quality); 173 | break; 174 | case 3: 175 | imagepng($this->dim); 176 | break; 177 | case 15: 178 | imagewbmp($this->dim); 179 | break; 180 | default: 181 | return '不支持的图像格式'; 182 | break; 183 | } 184 | } 185 | return; 186 | } 187 | 188 | function __destruct() 189 | { 190 | @ImageDestroy($this->sim); 191 | @ImageDestroy($this->dim); 192 | } 193 | } -------------------------------------------------------------------------------- /assets/avatars/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/6ag/JianSan-Wallpaper-php/8234bc02fe3db30ac1e0b0016995edd6a231a361/assets/avatars/Thumbs.db -------------------------------------------------------------------------------- /assets/avatars/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/6ag/JianSan-Wallpaper-php/8234bc02fe3db30ac1e0b0016995edd6a231a361/assets/avatars/avatar.png -------------------------------------------------------------------------------- /assets/avatars/avatar1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/6ag/JianSan-Wallpaper-php/8234bc02fe3db30ac1e0b0016995edd6a231a361/assets/avatars/avatar1.png -------------------------------------------------------------------------------- /assets/avatars/avatar2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/6ag/JianSan-Wallpaper-php/8234bc02fe3db30ac1e0b0016995edd6a231a361/assets/avatars/avatar2.png -------------------------------------------------------------------------------- /assets/avatars/avatar3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/6ag/JianSan-Wallpaper-php/8234bc02fe3db30ac1e0b0016995edd6a231a361/assets/avatars/avatar3.png -------------------------------------------------------------------------------- /assets/avatars/avatar4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/6ag/JianSan-Wallpaper-php/8234bc02fe3db30ac1e0b0016995edd6a231a361/assets/avatars/avatar4.png -------------------------------------------------------------------------------- /assets/avatars/avatar5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/6ag/JianSan-Wallpaper-php/8234bc02fe3db30ac1e0b0016995edd6a231a361/assets/avatars/avatar5.png -------------------------------------------------------------------------------- /assets/avatars/profile-pic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/6ag/JianSan-Wallpaper-php/8234bc02fe3db30ac1e0b0016995edd6a231a361/assets/avatars/profile-pic.jpg -------------------------------------------------------------------------------- /assets/avatars/user.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/6ag/JianSan-Wallpaper-php/8234bc02fe3db30ac1e0b0016995edd6a231a361/assets/avatars/user.jpg -------------------------------------------------------------------------------- /assets/css/ace-ie.min.css: -------------------------------------------------------------------------------- 1 | .sidebar{*left:0}.sidebar:before{display:none}.ace-nav>li.white-opaque{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#CCFFFFFF',endColorstr='#CCFFFFFF',GradientType=0)}.ace-nav>li.dark-opaque{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#33000000',endColorstr='#33000000',GradientType=0)}.infobox>.infobox-icon>[class*="icon-"]:before{color:#FFF}.infobox-dark>.badge{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#33FFFFFF',endColorstr='#33FFFFFF',GradientType=0)!important}.widget-box-overlay{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#55000000',endColorstr='#55000000',GradientType=0)!important}.widget-toolbar-light{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#D8FFFFFF',endColorstr='#D8FFFFFF',GradientType=0)!important}input[type=checkbox].ace,input[type=radio].ace{position:static;width:auto;height:auto;z-index:auto}input[type=checkbox].ace+.lbl,input[type=radio].ace+.lbl{min-height:auto;min-width:auto}input[type=checkbox].ace.ace-switch{width:auto}input[type=checkbox].ace.ace-switch+.lbl{margin:0;min-height:auto}input[type=checkbox].ace.ace-switch-7{width:auto}.ace-file-input input[type=file]{width:100%;height:30px;position:absolute;z-index:1;filter:alpha(opacity=0);cursor:pointer}.ace-file-input input[type=file]:hover+.file-label{border-color:#f59942}.ace-file-multiple input[type=file]{height:100%}.ace-file-input .remove{z-index:2}.ace-file-input .file-label.selected .file-name{width:50%}.ace-file-multiple .file-label.selected .file-name{width:auto}.wizard-steps li:first-child:before{max-width:100%;left:0}.login-layout .widget-box{display:none;visibility:visible;position:static}.login-layout .widget-box.visible{display:block}.pricing-box-small:hover{zoom:1.04;left:-1px;top:-3px}.ace-thumbnails>li>a>img{width:auto!important}.ace-thumbnails>li>:first-child>.text{display:none}.ace-thumbnails>li:hover>:first-child>.text{display:block}.ace-thumbnails>li>.tools{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#8C000000',endColorstr='#8C000000',GradientType=0)!important}.ace-thumbnails>li>:first-child>.text{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#8C000000',endColorstr='#8C000000',GradientType=0)!important}#cboxLoadingGraphic>[class*="icon-"]{display:inline-block;background:#FFF url('images/loading.gif') no-repeat center} #cboxLoadingGraphic>[class*="icon-"]:before{display:none} .widget-box-overlay>[class*="icon-"]{display:inline-block;width:24px;height:24px;margin-left:46%;background:transparent url('images/loading.gif') no-repeat center} .widget-box-overlay>[class*="icon-"]:before{display:none} .btn.btn-app.btn-light{border:1px solid #d9d9d9} .btn.btn-app.btn-yellow{border:1px solid #fee188} .grid3{width:31%} .grid4{width:23%} .itemdiv.dialogdiv>.body:before{display:none} .fc-event-hori,.fc-event-vert{border:none!important} [class*="tab-color-"] .nav-tabs>li>a>[class*="icon-"]:first-child{color:#666!important} .dropdown-preview>.dropdown-menu{*width:180px} .ui-datepicker,.ui-autocomplete,.ui-menu{border:1px solid #CCC} .ui-widget-overlay{filter:alpha(opacity=100)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#44000000',endColorstr='#44000000',GradientType=0)!important} .message-content{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#CCFFFFFF',endColorstr='#CCFFFFFF',GradientType=0)!important} .gritter-item-wrapper{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#EA323232',endColorstr='#EA323232',GradientType=0)!important} .gritter-item-wrapper.gritter-info{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#EA315185',endColorstr='#EA315185',GradientType=0)!important} .gritter-item-wrapper.gritter-error{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#EA992812',endColorstr='#EA992812',GradientType=0)!important} .gritter-item-wrapper.gritter-success{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#EA59834B',endColorstr='#EA59834B',GradientType=0)!important} .gritter-item-wrapper.gritter-warning{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#EABE701F',endColorstr='#EABE701F',GradientType=0)!important} .gritter-item-wrapper.gritter-light{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#F2F5F5F5',endColorstr='#F2F5F5F5',GradientType=0)!important} .gritter-info.gritter-light{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#F2E8F2FF',endColorstr='#F2E8F2FF',GradientType=0)!important} .gritter-error.gritter-light{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#F2FFEBEB',endColorstr='#F2FFEBEB',GradientType=0)!important} .gritter-success.gritter-light{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#F2EFFAE3',endColorstr='#F2EFFAE3',GradientType=0)!important} .gritter-warning.gritter-light{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#F2FCF8E3',endColorstr='#F2FCF8E3',GradientType=0)!important} .widget-header .wysiwyg-toolbar .btn-group>.btn,.widget-body .md-header .btn{background:transparent none!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#40FFFFFF',endColorstr='#40FFFFFF',GradientType=0)!important} .widget-header .wysiwyg-toolbar .btn-group>.btn.active,.widget-body .md-header .btn-inverse{background:transparent none!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#40000000',endColorstr='#40000000',GradientType=0)!important} .widget-body .md-header .btn,.widget-body .md-header .btn-inverse{display:none} body.skin-3,.skin-3 .sidebar{background-color:#d6d6d6} .skin-3 .menu-min .nav-list>li.active>a{background-color:#eef8ff} body.skin-2,.skin-2 .sidebar{background-color:#505050} .skin-2 .nav-list>li:hover>a>span{color:#FFF} .skin-2 .nav-list>li:hover>a>[class*="icon-"]:first-child{color:#FFF} .skin-2 .menu-min .nav-list>li>a:hover>[class*="icon-"]:first-child{color:#FFF} .rtl .nav-list li.active>a:after{border-left-color:transparent;border-right-color:#0b6cbc} .rtl.skin-1 .nav-list li.active>a:after{border-right-color:#FFF;border-left-color:transparent} .rtl.skin-1 .menu-min .nav-list li.active:hover>a:after{border-right-color:#242a2b} .rtl.skin-2 .nav-list li.active>a:after{border-right-color:#FFF;border-left-color:transparent} .rtl.skin-2 .menu-min .nav-list li.active:hover>a:after{border-right-color:#292929;border-left-color:transparent} .rtl.skin-2 .nav-list li.active.open>.submenu>li.active>a:after{border-right-color:#FFF;border-left-color:transparent} .rtl.skin-3 .nav-list li.active>a:after{border-right-color:#FFF;border-left-color:transparent} .rtl.skin-3 .nav-list li.active>a:before{border-right-color:#a4c6dd;border-left-color:transparent} -------------------------------------------------------------------------------- /assets/css/bootstrap-timepicker.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Timepicker Component for Twitter Bootstrap 3 | * 4 | * Copyright 2013 Joris de Wit 5 | * 6 | * Contributors https://github.com/jdewit/bootstrap-timepicker/graphs/contributors 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | .bootstrap-timepicker { 12 | position: relative; 13 | } 14 | .bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu { 15 | left: auto; 16 | right: 0; 17 | } 18 | .bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu:before { 19 | left: auto; 20 | right: 12px; 21 | } 22 | .bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu:after { 23 | left: auto; 24 | right: 13px; 25 | } 26 | .bootstrap-timepicker .add-on { 27 | cursor: pointer; 28 | } 29 | .bootstrap-timepicker .add-on i { 30 | display: inline-block; 31 | width: 16px; 32 | height: 16px; 33 | } 34 | .bootstrap-timepicker-widget.dropdown-menu { 35 | padding: 2px 3px 2px 2px; 36 | } 37 | .bootstrap-timepicker-widget.dropdown-menu.open { 38 | display: inline-block; 39 | } 40 | .bootstrap-timepicker-widget.dropdown-menu:before { 41 | border-bottom: 7px solid rgba(0, 0, 0, 0.2); 42 | border-left: 7px solid transparent; 43 | border-right: 7px solid transparent; 44 | content: ""; 45 | display: inline-block; 46 | left: 9px; 47 | position: absolute; 48 | top: -7px; 49 | } 50 | .bootstrap-timepicker-widget.dropdown-menu:after { 51 | border-bottom: 6px solid #FFFFFF; 52 | border-left: 6px solid transparent; 53 | border-right: 6px solid transparent; 54 | content: ""; 55 | display: inline-block; 56 | left: 10px; 57 | position: absolute; 58 | top: -6px; 59 | } 60 | .bootstrap-timepicker-widget a.btn, 61 | .bootstrap-timepicker-widget input { 62 | border-radius: 4px; 63 | } 64 | .bootstrap-timepicker-widget table { 65 | width: 100%; 66 | margin: 0; 67 | } 68 | .bootstrap-timepicker-widget table td { 69 | text-align: center; 70 | height: 30px; 71 | margin: 0; 72 | padding: 2px; 73 | } 74 | .bootstrap-timepicker-widget table td:not(.separator) { 75 | min-width: 30px; 76 | } 77 | .bootstrap-timepicker-widget table td span { 78 | width: 100%; 79 | } 80 | .bootstrap-timepicker-widget table td a { 81 | border: 1px transparent solid; 82 | width: 100%; 83 | display: inline-block; 84 | margin: 0; 85 | padding: 8px 0; 86 | outline: 0; 87 | color: #333; 88 | } 89 | .bootstrap-timepicker-widget table td a:hover { 90 | text-decoration: none; 91 | background-color: #eee; 92 | -webkit-border-radius: 4px; 93 | -moz-border-radius: 4px; 94 | border-radius: 4px; 95 | border-color: #ddd; 96 | } 97 | .bootstrap-timepicker-widget table td a i { 98 | margin-top: 2px; 99 | } 100 | .bootstrap-timepicker-widget table td input { 101 | width: 25px; 102 | margin: 0; 103 | text-align: center; 104 | } 105 | .bootstrap-timepicker-widget .modal-content { 106 | padding: 4px; 107 | } 108 | @media (min-width: 767px) { 109 | .bootstrap-timepicker-widget.modal { 110 | width: 200px; 111 | margin-left: -100px; 112 | } 113 | } 114 | @media (max-width: 767px) { 115 | .bootstrap-timepicker { 116 | width: 100%; 117 | } 118 | .bootstrap-timepicker .dropdown-menu { 119 | width: 100%; 120 | } 121 | } 122 | -------------------------------------------------------------------------------- /assets/css/colorbox.css: -------------------------------------------------------------------------------- 1 | /* 2 | Colorbox Core Style: 3 | The following CSS is consistent between example themes and should not be altered. 4 | */ 5 | #colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;} 6 | #cboxOverlay{position:fixed; width:100%; height:100%;} 7 | #cboxMiddleLeft, #cboxBottomLeft{clear:left;} 8 | #cboxContent{position:relative;} 9 | #cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;} 10 | #cboxTitle{margin:0;} 11 | #cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;} 12 | #cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;} 13 | .cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none; -ms-interpolation-mode:bicubic;} 14 | .cboxIframe{width:100%; height:100%; display:block; border:0;} 15 | #colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;} 16 | 17 | /* 18 | User Style: 19 | Change the following styles to modify the appearance of Colorbox. They are 20 | ordered & tabbed in a way that represents the nesting of the generated HTML. 21 | */ 22 | #cboxOverlay{background:url(images/overlay.png) repeat 0 0;} 23 | #colorbox{outline:0;} 24 | #cboxTopLeft{width:21px; height:21px; background:url(images/controls.png) no-repeat -101px 0;} 25 | #cboxTopRight{width:21px; height:21px; background:url(images/controls.png) no-repeat -130px 0;} 26 | #cboxBottomLeft{width:21px; height:21px; background:url(images/controls.png) no-repeat -101px -29px;} 27 | #cboxBottomRight{width:21px; height:21px; background:url(images/controls.png) no-repeat -130px -29px;} 28 | #cboxMiddleLeft{width:21px; background:url(images/controls.png) left top repeat-y;} 29 | #cboxMiddleRight{width:21px; background:url(images/controls.png) right top repeat-y;} 30 | #cboxTopCenter{height:21px; background:url(images/border.png) 0 0 repeat-x;} 31 | #cboxBottomCenter{height:21px; background:url(images/border.png) 0 -29px repeat-x;} 32 | #cboxContent{background:#fff; overflow:hidden;} 33 | .cboxIframe{background:#fff;} 34 | #cboxError{padding:50px; border:1px solid #ccc;} 35 | #cboxLoadedContent{margin-bottom:28px;} 36 | #cboxTitle{position:absolute; bottom:4px; left:0; text-align:center; width:100%; color:#949494;} 37 | #cboxCurrent{position:absolute; bottom:4px; left:58px; color:#949494;} 38 | #cboxLoadingOverlay{background:url(images/loading_background.png) no-repeat center center;} 39 | #cboxLoadingGraphic{background:url(images/loading.gif) no-repeat center center;} 40 | 41 | /* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */ 42 | #cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible; width:auto; background:none; } 43 | 44 | /* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */ 45 | #cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;} 46 | 47 | #cboxSlideshow{position:absolute; bottom:4px; right:30px; color:#0092ef;} 48 | #cboxPrevious{position:absolute; bottom:0; left:0; background:url(images/controls.png) no-repeat -75px 0; width:25px; height:25px; text-indent:-9999px;} 49 | #cboxPrevious:hover{background-position:-75px -25px;} 50 | #cboxNext{position:absolute; bottom:0; left:27px; background:url(images/controls.png) no-repeat -50px 0; width:25px; height:25px; text-indent:-9999px;} 51 | #cboxNext:hover{background-position:-50px -25px;} 52 | #cboxClose{position:absolute; bottom:0; right:0; background:url(images/controls.png) no-repeat -25px 0; width:25px; height:25px; text-indent:-9999px;} 53 | #cboxClose:hover{background-position:-25px -25px;} 54 | 55 | /* 56 | The following fixes a problem where IE7 and IE8 replace a PNG's alpha transparency with a black fill 57 | when an alpha filter (opacity change) is set on the element or ancestor element. This style is not applied to or needed in IE9. 58 | See: http://jacklmoore.com/notes/ie-transparency-problems/ 59 | */ 60 | .cboxIE #cboxTopLeft, 61 | .cboxIE #cboxTopCenter, 62 | .cboxIE #cboxTopRight, 63 | .cboxIE #cboxBottomLeft, 64 | .cboxIE #cboxBottomCenter, 65 | .cboxIE #cboxBottomRight, 66 | .cboxIE #cboxMiddleLeft, 67 | .cboxIE #cboxMiddleRight { 68 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF); 69 | } -------------------------------------------------------------------------------- /assets/css/colorpicker.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Colorpicker for Bootstrap 3 | * 4 | * Copyright 2012 Stefan Petre 5 | * Licensed under the Apache License v2.0 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | */ 9 | .colorpicker-saturation { 10 | width: 100px; 11 | height: 100px; 12 | background-image: url(img/saturation.png); 13 | cursor: crosshair; 14 | float: left; 15 | } 16 | .colorpicker-saturation i { 17 | display: block; 18 | height: 5px; 19 | width: 5px; 20 | border: 1px solid #000; 21 | -webkit-border-radius: 5px; 22 | -moz-border-radius: 5px; 23 | border-radius: 5px; 24 | position: absolute; 25 | top: 0; 26 | left: 0; 27 | margin: -4px 0 0 -4px; 28 | } 29 | .colorpicker-saturation i b { 30 | display: block; 31 | height: 5px; 32 | width: 5px; 33 | border: 1px solid #fff; 34 | -webkit-border-radius: 5px; 35 | -moz-border-radius: 5px; 36 | border-radius: 5px; 37 | } 38 | .colorpicker-hue, .colorpicker-alpha { 39 | width: 15px; 40 | height: 100px; 41 | float: left; 42 | cursor: row-resize; 43 | margin-left: 4px; 44 | margin-bottom: 4px; 45 | } 46 | .colorpicker-hue i, .colorpicker-alpha i { 47 | display: block; 48 | height: 1px; 49 | background: #000; 50 | border-top: 1px solid #fff; 51 | position: absolute; 52 | top: 0; 53 | left: 0; 54 | width: 100%; 55 | margin-top: -1px; 56 | } 57 | .colorpicker-hue { 58 | background-image: url(img/hue.png); 59 | } 60 | .colorpicker-alpha { 61 | background-image: url(img/alpha.png); 62 | display: none; 63 | } 64 | .colorpicker { 65 | *zoom: 1; 66 | top: 0; 67 | left: 0; 68 | padding: 4px; 69 | min-width: 120px; 70 | margin-top: 1px; 71 | -webkit-border-radius: 4px; 72 | -moz-border-radius: 4px; 73 | border-radius: 4px; 74 | } 75 | .colorpicker:before, .colorpicker:after { 76 | display: table; 77 | content: ""; 78 | } 79 | .colorpicker:after { 80 | clear: both; 81 | } 82 | .colorpicker:before { 83 | content: ''; 84 | display: inline-block; 85 | border-left: 7px solid transparent; 86 | border-right: 7px solid transparent; 87 | border-bottom: 7px solid #ccc; 88 | border-bottom-color: rgba(0, 0, 0, 0.2); 89 | position: absolute; 90 | top: -7px; 91 | left: 6px; 92 | } 93 | .colorpicker:after { 94 | content: ''; 95 | display: inline-block; 96 | border-left: 6px solid transparent; 97 | border-right: 6px solid transparent; 98 | border-bottom: 6px solid #ffffff; 99 | position: absolute; 100 | top: -6px; 101 | left: 7px; 102 | } 103 | .colorpicker div { 104 | position: relative; 105 | } 106 | .colorpicker.alpha { 107 | min-width: 140px; 108 | } 109 | .colorpicker.alpha .colorpicker-alpha { 110 | display: block; 111 | } 112 | .colorpicker-color { 113 | height: 10px; 114 | margin-top: 5px; 115 | clear: both; 116 | background-image: url(img/alpha.png); 117 | background-position: 0 100%; 118 | } 119 | .colorpicker-color div { 120 | height: 10px; 121 | } 122 | .input-append.color .add-on i, .input-prepend.color .add-on i { 123 | display: block; 124 | cursor: pointer; 125 | width: 16px; 126 | height: 16px; 127 | } -------------------------------------------------------------------------------- /assets/css/daterangepicker.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Stylesheet for the Date Range Picker, for use with Bootstrap 3.x 3 | * 4 | * Copyright 2013 Dan Grossman ( http://www.dangrossman.info ) 5 | * Licensed under the Apache License v2.0 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Built for http://www.improvely.com 9 | */ 10 | 11 | .daterangepicker.dropdown-menu { 12 | max-width: none; 13 | } 14 | 15 | .daterangepicker.opensleft .ranges, .daterangepicker.opensleft .calendar { 16 | float: left; 17 | margin: 4px; 18 | } 19 | 20 | .daterangepicker.opensright .ranges, .daterangepicker.opensright .calendar { 21 | float: right; 22 | margin: 4px; 23 | } 24 | 25 | .daterangepicker .ranges { 26 | width: 160px; 27 | text-align: left; 28 | } 29 | 30 | .daterangepicker .ranges .range_inputs>div { 31 | float: left; 32 | } 33 | 34 | .daterangepicker .ranges .range_inputs>div:nth-child(2) { 35 | padding-left: 11px; 36 | } 37 | 38 | .daterangepicker .calendar { 39 | display: none; 40 | max-width: 270px; 41 | } 42 | 43 | .daterangepicker .calendar th, .daterangepicker .calendar td { 44 | font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; 45 | white-space: nowrap; 46 | text-align: center; 47 | min-width: 32px; 48 | } 49 | 50 | .daterangepicker .ranges label { 51 | color: #333; 52 | display: block; 53 | font-size: 11px; 54 | font-weight: normal; 55 | height: 20px; 56 | line-height: 20px; 57 | margin-bottom: 2px; 58 | text-shadow: #fff 1px 1px 0px; 59 | text-transform: uppercase; 60 | width: 74px; 61 | } 62 | 63 | .daterangepicker .ranges input { 64 | font-size: 11px; 65 | } 66 | 67 | .daterangepicker .ranges .input-mini { 68 | background-color: #eee; 69 | border: 1px solid #ccc; 70 | border-radius: 4px; 71 | color: #555; 72 | display: block; 73 | font-size: 11px; 74 | height: 30px; 75 | line-height: 30px; 76 | vertical-align: middle; 77 | margin: 0 0 10px 0; 78 | padding: 0 6px; 79 | width: 74px; 80 | } 81 | 82 | .daterangepicker .ranges ul { 83 | list-style: none; 84 | margin: 0; 85 | padding: 0; 86 | } 87 | 88 | .daterangepicker .ranges li { 89 | font-size: 13px; 90 | background: #f5f5f5; 91 | border: 1px solid #f5f5f5; 92 | color: #08c; 93 | padding: 3px 12px; 94 | margin-bottom: 8px; 95 | -webkit-border-radius: 5px; 96 | -moz-border-radius: 5px; 97 | border-radius: 5px; 98 | cursor: pointer; 99 | } 100 | 101 | .daterangepicker .ranges li.active, .daterangepicker .ranges li:hover { 102 | background: #08c; 103 | border: 1px solid #08c; 104 | color: #fff; 105 | } 106 | 107 | .daterangepicker .calendar-date { 108 | border: 1px solid #ddd; 109 | padding: 4px; 110 | border-radius: 4px; 111 | background: #fff; 112 | } 113 | 114 | .daterangepicker .calendar-time { 115 | text-align: center; 116 | margin: 8px auto 0 auto; 117 | line-height: 30px; 118 | } 119 | 120 | .daterangepicker { 121 | position: absolute; 122 | background: #fff; 123 | top: 100px; 124 | left: 20px; 125 | padding: 4px; 126 | margin-top: 1px; 127 | -webkit-border-radius: 4px; 128 | -moz-border-radius: 4px; 129 | border-radius: 4px; 130 | } 131 | 132 | .daterangepicker.opensleft:before { 133 | position: absolute; 134 | top: -7px; 135 | right: 9px; 136 | display: inline-block; 137 | border-right: 7px solid transparent; 138 | border-bottom: 7px solid #ccc; 139 | border-left: 7px solid transparent; 140 | border-bottom-color: rgba(0, 0, 0, 0.2); 141 | content: ''; 142 | } 143 | 144 | .daterangepicker.opensleft:after { 145 | position: absolute; 146 | top: -6px; 147 | right: 10px; 148 | display: inline-block; 149 | border-right: 6px solid transparent; 150 | border-bottom: 6px solid #fff; 151 | border-left: 6px solid transparent; 152 | content: ''; 153 | } 154 | 155 | .daterangepicker.opensright:before { 156 | position: absolute; 157 | top: -7px; 158 | left: 9px; 159 | display: inline-block; 160 | border-right: 7px solid transparent; 161 | border-bottom: 7px solid #ccc; 162 | border-left: 7px solid transparent; 163 | border-bottom-color: rgba(0, 0, 0, 0.2); 164 | content: ''; 165 | } 166 | 167 | .daterangepicker.opensright:after { 168 | position: absolute; 169 | top: -6px; 170 | left: 10px; 171 | display: inline-block; 172 | border-right: 6px solid transparent; 173 | border-bottom: 6px solid #fff; 174 | border-left: 6px solid transparent; 175 | content: ''; 176 | } 177 | 178 | .daterangepicker table { 179 | width: 100%; 180 | margin: 0; 181 | } 182 | 183 | .daterangepicker td, .daterangepicker th { 184 | text-align: center; 185 | width: 20px; 186 | height: 20px; 187 | -webkit-border-radius: 4px; 188 | -moz-border-radius: 4px; 189 | border-radius: 4px; 190 | cursor: pointer; 191 | white-space: nowrap; 192 | } 193 | 194 | .daterangepicker td.off { 195 | color: #999; 196 | } 197 | 198 | .daterangepicker td.disabled { 199 | color: #999; 200 | } 201 | 202 | .daterangepicker td.available:hover, .daterangepicker th.available:hover { 203 | background: #eee; 204 | } 205 | 206 | .daterangepicker td.in-range { 207 | background: #ebf4f8; 208 | -webkit-border-radius: 0; 209 | -moz-border-radius: 0; 210 | border-radius: 0; 211 | } 212 | 213 | .daterangepicker td.active, .daterangepicker td.active:hover { 214 | background-color: #357ebd; 215 | border-color: #3071a9; 216 | color: #fff; 217 | } 218 | 219 | .daterangepicker td.week, .daterangepicker th.week { 220 | font-size: 80%; 221 | color: #ccc; 222 | } 223 | 224 | .daterangepicker select.monthselect, .daterangepicker select.yearselect { 225 | font-size: 12px; 226 | padding: 1px; 227 | height: auto; 228 | margin: 0; 229 | cursor: default; 230 | } 231 | 232 | .daterangepicker select.monthselect { 233 | margin-right: 2%; 234 | width: 56%; 235 | } 236 | 237 | .daterangepicker select.yearselect { 238 | width: 40%; 239 | } 240 | 241 | .daterangepicker select.hourselect, .daterangepicker select.minuteselect, .daterangepicker select.ampmselect { 242 | width: 50px; 243 | margin-bottom: 0; 244 | } -------------------------------------------------------------------------------- /assets/css/images/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/6ag/JianSan-Wallpaper-php/8234bc02fe3db30ac1e0b0016995edd6a231a361/assets/css/images/Thumbs.db -------------------------------------------------------------------------------- /assets/css/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/6ag/JianSan-Wallpaper-php/8234bc02fe3db30ac1e0b0016995edd6a231a361/assets/css/images/loading.gif -------------------------------------------------------------------------------- /assets/css/jquery-ui-1.10.3.custom.min.css: -------------------------------------------------------------------------------- 1 | /*! jQuery UI - v1.10.3 - 2013-07-07 2 | * http://jqueryui.com 3 | * Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.slider.css 4 | * Copyright 2013 jQuery Foundation and other contributors Licensed MIT */ 5 | 6 | .ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted #000}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0} -------------------------------------------------------------------------------- /assets/css/jquery-ui-1.10.3.full.min.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/6ag/JianSan-Wallpaper-php/8234bc02fe3db30ac1e0b0016995edd6a231a361/assets/css/jquery-ui-1.10.3.full.min.css -------------------------------------------------------------------------------- /assets/css/jquery.gritter.css: -------------------------------------------------------------------------------- 1 | /* the norm */ 2 | #gritter-notice-wrapper { 3 | position:fixed; 4 | top:20px; 5 | right:20px; 6 | width:301px; 7 | z-index:9999; 8 | } 9 | #gritter-notice-wrapper.top-left { 10 | left: 20px; 11 | right: auto; 12 | } 13 | #gritter-notice-wrapper.bottom-right { 14 | top: auto; 15 | left: auto; 16 | bottom: 20px; 17 | right: 20px; 18 | } 19 | #gritter-notice-wrapper.bottom-left { 20 | top: auto; 21 | right: auto; 22 | bottom: 20px; 23 | left: 20px; 24 | } 25 | .gritter-item-wrapper { 26 | position:relative; 27 | margin:0 0 10px 0; 28 | background:url('../images/ie-spacer.gif'); /* ie7/8 fix */ 29 | } 30 | .gritter-top { 31 | background:url(../images/gritter.png) no-repeat left -30px; 32 | height:10px; 33 | } 34 | .hover .gritter-top { 35 | background-position:right -30px; 36 | } 37 | .gritter-bottom { 38 | background:url(../images/gritter.png) no-repeat left bottom; 39 | height:8px; 40 | margin:0; 41 | } 42 | .hover .gritter-bottom { 43 | background-position: bottom right; 44 | } 45 | .gritter-item { 46 | display:block; 47 | background:url(../images/gritter.png) no-repeat left -40px; 48 | color:#eee; 49 | padding:2px 11px 8px 11px; 50 | font-size: 11px; 51 | font-family:verdana; 52 | } 53 | .hover .gritter-item { 54 | background-position:right -40px; 55 | } 56 | .gritter-item p { 57 | padding:0; 58 | margin:0; 59 | word-wrap:break-word; 60 | } 61 | .gritter-close { 62 | display:none; 63 | position:absolute; 64 | top:5px; 65 | left:3px; 66 | background:url(../images/gritter.png) no-repeat left top; 67 | cursor:pointer; 68 | width:30px; 69 | height:30px; 70 | } 71 | .gritter-title { 72 | font-size:14px; 73 | font-weight:bold; 74 | padding:0 0 7px 0; 75 | display:block; 76 | text-shadow:1px 1px 0 #000; /* Not supported by IE :( */ 77 | } 78 | .gritter-image { 79 | width:48px; 80 | height:48px; 81 | float:left; 82 | } 83 | .gritter-with-image, 84 | .gritter-without-image { 85 | padding:0; 86 | } 87 | .gritter-with-image { 88 | width:220px; 89 | float:right; 90 | } 91 | /* for the light (white) version of the gritter notice */ 92 | .gritter-light .gritter-item, 93 | .gritter-light .gritter-bottom, 94 | .gritter-light .gritter-top, 95 | .gritter-light .gritter-close { 96 | background-image: url(../images/gritter-light.png); 97 | color: #222; 98 | } 99 | .gritter-light .gritter-title { 100 | text-shadow: none; 101 | } 102 | -------------------------------------------------------------------------------- /assets/font/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/6ag/JianSan-Wallpaper-php/8234bc02fe3db30ac1e0b0016995edd6a231a361/assets/font/fontawesome-webfont.woff -------------------------------------------------------------------------------- /assets/images/gallery/image-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/6ag/JianSan-Wallpaper-php/8234bc02fe3db30ac1e0b0016995edd6a231a361/assets/images/gallery/image-1.jpg -------------------------------------------------------------------------------- /assets/images/gallery/image-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/6ag/JianSan-Wallpaper-php/8234bc02fe3db30ac1e0b0016995edd6a231a361/assets/images/gallery/image-2.jpg -------------------------------------------------------------------------------- /assets/images/gallery/image-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/6ag/JianSan-Wallpaper-php/8234bc02fe3db30ac1e0b0016995edd6a231a361/assets/images/gallery/image-3.jpg -------------------------------------------------------------------------------- /assets/images/gallery/image-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/6ag/JianSan-Wallpaper-php/8234bc02fe3db30ac1e0b0016995edd6a231a361/assets/images/gallery/image-4.jpg -------------------------------------------------------------------------------- /assets/images/gallery/image-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/6ag/JianSan-Wallpaper-php/8234bc02fe3db30ac1e0b0016995edd6a231a361/assets/images/gallery/image-5.jpg -------------------------------------------------------------------------------- /assets/images/gallery/image-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/6ag/JianSan-Wallpaper-php/8234bc02fe3db30ac1e0b0016995edd6a231a361/assets/images/gallery/image-6.jpg -------------------------------------------------------------------------------- /assets/images/gallery/thumb-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/6ag/JianSan-Wallpaper-php/8234bc02fe3db30ac1e0b0016995edd6a231a361/assets/images/gallery/thumb-1.jpg -------------------------------------------------------------------------------- /assets/images/gallery/thumb-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/6ag/JianSan-Wallpaper-php/8234bc02fe3db30ac1e0b0016995edd6a231a361/assets/images/gallery/thumb-2.jpg -------------------------------------------------------------------------------- /assets/images/gallery/thumb-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/6ag/JianSan-Wallpaper-php/8234bc02fe3db30ac1e0b0016995edd6a231a361/assets/images/gallery/thumb-3.jpg -------------------------------------------------------------------------------- /assets/images/gallery/thumb-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/6ag/JianSan-Wallpaper-php/8234bc02fe3db30ac1e0b0016995edd6a231a361/assets/images/gallery/thumb-4.jpg -------------------------------------------------------------------------------- /assets/images/gallery/thumb-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/6ag/JianSan-Wallpaper-php/8234bc02fe3db30ac1e0b0016995edd6a231a361/assets/images/gallery/thumb-5.jpg -------------------------------------------------------------------------------- /assets/images/gallery/thumb-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/6ag/JianSan-Wallpaper-php/8234bc02fe3db30ac1e0b0016995edd6a231a361/assets/images/gallery/thumb-6.jpg -------------------------------------------------------------------------------- /assets/js/ace-extra.min.js: -------------------------------------------------------------------------------- 1 | if(!("ace" in window)){window.ace={}}ace.config={cookie_expiry:604800,storage_method:2};ace.settings={is:function(b,a){return(ace.data.get("settings",b+"-"+a)==1)},exists:function(b,a){return(ace.data.get("settings",b+"-"+a)!==null)},set:function(b,a){ace.data.set("settings",b+"-"+a,1)},unset:function(b,a){ace.data.set("settings",b+"-"+a,-1)},remove:function(b,a){ace.data.remove("settings",b+"-"+a)},navbar_fixed:function(a){a=a||false;if(!a&&ace.settings.is("sidebar","fixed")){ace.settings.sidebar_fixed(false)}var b=document.getElementById("navbar");if(a){if(!ace.hasClass(b,"navbar-fixed-top")){ace.addClass(b,"navbar-fixed-top")}if(!ace.hasClass(document.body,"navbar-fixed")){ace.addClass(document.body,"navbar-fixed")}ace.settings.set("navbar","fixed")}else{ace.removeClass(b,"navbar-fixed-top");ace.removeClass(document.body,"navbar-fixed");ace.settings.unset("navbar","fixed")}document.getElementById("ace-settings-navbar").checked=a},breadcrumbs_fixed:function(a){a=a||false;if(a&&!ace.settings.is("sidebar","fixed")){ace.settings.sidebar_fixed(true)}var b=document.getElementById("breadcrumbs");if(a){if(!ace.hasClass(b,"breadcrumbs-fixed")){ace.addClass(b,"breadcrumbs-fixed")}if(!ace.hasClass(document.body,"breadcrumbs-fixed")){ace.addClass(document.body,"breadcrumbs-fixed")}ace.settings.set("breadcrumbs","fixed")}else{ace.removeClass(b,"breadcrumbs-fixed");ace.removeClass(document.body,"breadcrumbs-fixed");ace.settings.unset("breadcrumbs","fixed")}document.getElementById("ace-settings-breadcrumbs").checked=a},sidebar_fixed:function(a){a=a||false;if(!a&&ace.settings.is("breadcrumbs","fixed")){ace.settings.breadcrumbs_fixed(false)}if(a&&!ace.settings.is("navbar","fixed")){ace.settings.navbar_fixed(true)}var b=document.getElementById("sidebar");if(a){if(!ace.hasClass(b,"sidebar-fixed")){ace.addClass(b,"sidebar-fixed")}ace.settings.set("sidebar","fixed")}else{ace.removeClass(b,"sidebar-fixed");ace.settings.unset("sidebar","fixed")}document.getElementById("ace-settings-sidebar").checked=a},main_container_fixed:function(a){a=a||false;var c=document.getElementById("main-container");var b=document.getElementById("navbar-container");if(a){if(!ace.hasClass(c,"container")){ace.addClass(c,"container")}if(!ace.hasClass(b,"container")){ace.addClass(b,"container")}ace.settings.set("main-container","fixed")}else{ace.removeClass(c,"container");ace.removeClass(b,"container");ace.settings.unset("main-container","fixed")}document.getElementById("ace-settings-add-container").checked=a;if(navigator.userAgent.match(/webkit/i)){var d=document.getElementById("sidebar");ace.toggleClass(d,"menu-min");setTimeout(function(){ace.toggleClass(d,"menu-min")},0)}},sidebar_collapsed:function(c){c=c||false;var e=document.getElementById("sidebar");var d=document.getElementById("sidebar-collapse").querySelector('[class*="icon-"]');var b=d.getAttribute("data-icon1");var a=d.getAttribute("data-icon2");if(c){ace.addClass(e,"menu-min");ace.removeClass(d,b);ace.addClass(d,a);ace.settings.set("sidebar","collapsed")}else{ace.removeClass(e,"menu-min");ace.removeClass(d,a);ace.addClass(d,b);ace.settings.unset("sidebar","collapsed")}},};ace.settings.check=function(c,e){if(!ace.settings.exists(c,e)){return}var a=ace.settings.is(c,e);var b={"navbar-fixed":"navbar-fixed-top","sidebar-fixed":"sidebar-fixed","breadcrumbs-fixed":"breadcrumbs-fixed","sidebar-collapsed":"menu-min","main-container-fixed":"container"};var d=document.getElementById(c);if(a!=ace.hasClass(d,b[c+"-"+e])){ace.settings[c.replace("-","_")+"_"+e](a)}};ace.data_storage=function(e,c){var b="ace.";var d=null;var a=0;if((e==1||e===c)&&"localStorage" in window&&window.localStorage!==null){d=ace.storage;a=1}else{if(d==null&&(e==2||e===c)&&"cookie" in document&&document.cookie!==null){d=ace.cookie;a=2}}this.set=function(h,g,i,k){if(!d){return}if(i===k){i=g;g=h;if(i==null){d.remove(b+g)}else{if(a==1){d.set(b+g,i)}else{if(a==2){d.set(b+g,i,ace.config.cookie_expiry)}}}}else{if(a==1){if(i==null){d.remove(b+h+"."+g)}else{d.set(b+h+"."+g,i)}}else{if(a==2){var j=d.get(b+h);var f=j?JSON.parse(j):{};if(i==null){delete f[g];if(ace.sizeof(f)==0){d.remove(b+h);return}}else{f[g]=i}d.set(b+h,JSON.stringify(f),ace.config.cookie_expiry)}}}};this.get=function(h,g,j){if(!d){return null}if(g===j){g=h;return d.get(b+g)}else{if(a==1){return d.get(b+h+"."+g)}else{if(a==2){var i=d.get(b+h);var f=i?JSON.parse(i):{};return g in f?f[g]:null}}}};this.remove=function(g,f,h){if(!d){return}if(f===h){f=g;this.set(f,null)}else{this.set(g,f,null)}}};ace.cookie={get:function(c){var d=document.cookie,g,f=c+"=",a;if(!d){return}a=d.indexOf("; "+f);if(a==-1){a=d.indexOf(f);if(a!=0){return null}}else{a+=2}g=d.indexOf(";",a);if(g==-1){g=d.length}return decodeURIComponent(d.substring(a+f.length,g))},set:function(b,e,a,g,c,f){var h=new Date();if(typeof(a)=="object"&&a.toGMTString){a=a.toGMTString()}else{if(parseInt(a,10)){h.setTime(h.getTime()+(parseInt(a,10)*1000));a=h.toGMTString()}else{a=""}}document.cookie=b+"="+encodeURIComponent(e)+((a)?"; expires="+a:"")+((g)?"; path="+g:"")+((c)?"; domain="+c:"")+((f)?"; secure":"")},remove:function(a,b){this.set(a,"",-1000,b)}};ace.storage={get:function(a){return window.localStorage.getItem(a)},set:function(a,b){window.localStorage.setItem(a,b)},remove:function(a){window.localStorage.removeItem(a)}};ace.sizeof=function(c){var b=0;for(var a in c){if(c.hasOwnProperty(a)){b++}}return b};ace.hasClass=function(b,a){return(" "+b.className+" ").indexOf(" "+a+" ")>-1};ace.addClass=function(c,b){if(!ace.hasClass(c,b)){var a=c.className;c.className=a+(a.length?" ":"")+b}};ace.removeClass=function(b,a){ace.replaceClass(b,a)};ace.replaceClass=function(c,b,d){var a=new RegExp(("(^|\\s)"+b+"(\\s|$)"),"i");c.className=c.className.replace(a,function(e,g,f){return d?(g+d+f):" "}).replace(/^\s+|\s+$/g,"")};ace.toggleClass=function(b,a){if(ace.hasClass(b,a)){ace.removeClass(b,a)}else{ace.addClass(b,a)}};ace.data=new ace.data_storage(ace.config.storage_method); -------------------------------------------------------------------------------- /assets/js/ace.min.js: -------------------------------------------------------------------------------- 1 | if(!("ace" in window)){window.ace={}}jQuery(function(a){window.ace.click_event=a.fn.tap?"tap":"click"});jQuery(function(a){ace.handle_side_menu(jQuery);ace.enable_search_ahead(jQuery);ace.general_things(jQuery);ace.widget_boxes(jQuery);ace.widget_reload_handler(jQuery)});ace.handle_side_menu=function(a){a("#menu-toggler").on(ace.click_event,function(){a("#sidebar").toggleClass("display");a(this).toggleClass("display");return false});var c=a("#sidebar").hasClass("menu-min");a("#sidebar-collapse").on(ace.click_event,function(){c=a("#sidebar").hasClass("menu-min");ace.settings.sidebar_collapsed(!c)});var b=navigator.userAgent.match(/OS (5|6|7)(_\d)+ like Mac OS X/i);a(".nav-list").on(ace.click_event,function(h){var g=a(h.target).closest("a");if(!g||g.length==0){return}c=a("#sidebar").hasClass("menu-min");if(!g.hasClass("dropdown-toggle")){if(c&&ace.click_event=="tap"&&g.get(0).parentNode.parentNode==this){var i=g.find(".menu-text").get(0);if(h.target!=i&&!a.contains(i,h.target)){return false}}if(b){document.location=g.attr("href");return false}return}var f=g.next().get(0);if(!a(f).is(":visible")){var d=a(f.parentNode).closest("ul");if(c&&d.hasClass("nav-list")){return}d.find("> .open > .submenu").each(function(){if(this!=f&&!a(this.parentNode).hasClass("active")){a(this).slideUp(200).parent().removeClass("open")}})}else{}if(c&&a(f.parentNode.parentNode).hasClass("nav-list")){return false}a(f).slideToggle(200).parent().toggleClass("open");return false})};ace.general_things=function(a){a('.ace-nav [class*="icon-animated-"]').closest("a").on("click",function(){var d=a(this).find('[class*="icon-animated-"]').eq(0);var c=d.attr("class").match(/icon\-animated\-([\d\w]+)/);d.removeClass(c[0]);a(this).off("click")});a(".nav-list .badge[title],.nav-list .label[title]").tooltip({placement:"right"});a("#ace-settings-btn").on(ace.click_event,function(){a(this).toggleClass("open");a("#ace-settings-box").toggleClass("open")});a("#ace-settings-navbar").on("click",function(){ace.settings.navbar_fixed(this.checked)}).each(function(){this.checked=ace.settings.is("navbar","fixed")});a("#ace-settings-sidebar").on("click",function(){ace.settings.sidebar_fixed(this.checked)}).each(function(){this.checked=ace.settings.is("sidebar","fixed")});a("#ace-settings-breadcrumbs").on("click",function(){ace.settings.breadcrumbs_fixed(this.checked)}).each(function(){this.checked=ace.settings.is("breadcrumbs","fixed")});a("#ace-settings-add-container").on("click",function(){ace.settings.main_container_fixed(this.checked)}).each(function(){this.checked=ace.settings.is("main-container","fixed")});a("#ace-settings-rtl").removeAttr("checked").on("click",function(){ace.switch_direction(jQuery)});a("#btn-scroll-up").on(ace.click_event,function(){var c=Math.min(400,Math.max(100,parseInt(a("html").scrollTop()/3)));a("html,body").animate({scrollTop:0},c);return false});try{a("#skin-colorpicker").ace_colorpicker()}catch(b){}a("#skin-colorpicker").on("change",function(){var d=a(this).find("option:selected").data("skin");var c=a(document.body);c.removeClass("skin-1 skin-2 skin-3");if(d!="default"){c.addClass(d)}if(d=="skin-1"){a(".ace-nav > li.grey").addClass("dark")}else{a(".ace-nav > li.grey").removeClass("dark")}if(d=="skin-2"){a(".ace-nav > li").addClass("no-border margin-1");a(".ace-nav > li:not(:last-child)").addClass("light-pink").find('> a > [class*="icon-"]').addClass("pink").end().eq(0).find(".badge").addClass("badge-warning")}else{a(".ace-nav > li").removeClass("no-border margin-1");a(".ace-nav > li:not(:last-child)").removeClass("light-pink").find('> a > [class*="icon-"]').removeClass("pink").end().eq(0).find(".badge").removeClass("badge-warning")}if(d=="skin-3"){a(".ace-nav > li.grey").addClass("red").find(".badge").addClass("badge-yellow")}else{a(".ace-nav > li.grey").removeClass("red").find(".badge").removeClass("badge-yellow")}})};ace.widget_boxes=function(a){a(document).on("hide.bs.collapse show.bs.collapse",function(c){var b=c.target.getAttribute("id");a('[href*="#'+b+'"]').find('[class*="icon-"]').each(function(){var e=a(this);var d;var f=null;var g=null;if((f=e.attr("data-icon-show"))){g=e.attr("data-icon-hide")}else{if(d=e.attr("class").match(/icon\-(.*)\-(up|down)/)){f="icon-"+d[1]+"-down";g="icon-"+d[1]+"-up"}}if(f){if(c.type=="show"){e.removeClass(f).addClass(g)}else{e.removeClass(g).addClass(f)}return false}})});a(document).on("click.ace.widget","[data-action]",function(o){o.preventDefault();var n=a(this);var p=n.data("action");var b=n.closest(".widget-box");if(b.hasClass("ui-sortable-helper")){return}if(p=="collapse"){var j=b.hasClass("collapsed")?"show":"hide";var f=j=="show"?"shown":"hidden";var c;b.trigger(c=a.Event(j+".ace.widget"));if(c.isDefaultPrevented()){return}var g=b.find(".widget-body");var m=n.find("[class*=icon-]").eq(0);var h=m.attr("class").match(/icon\-(.*)\-(up|down)/);var d="icon-"+h[1]+"-down";var i="icon-"+h[1]+"-up";var l=g.find(".widget-body-inner");if(l.length==0){g=g.wrapInner('
').find(":first-child").eq(0)}else{g=l.eq(0)}var e=300;var k=200;if(j=="show"){if(m){m.addClass(i).removeClass(d)}b.removeClass("collapsed");g.slideUp(0,function(){g.slideDown(e,function(){b.trigger(c=a.Event(f+".ace.widget"))})})}else{if(m){m.addClass(d).removeClass(i)}g.slideUp(k,function(){b.addClass("collapsed");b.trigger(c=a.Event(f+".ace.widget"))})}}else{if(p=="close"){var c;b.trigger(c=a.Event("close.ace.widget"));if(c.isDefaultPrevented()){return}var r=parseInt(n.data("close-speed"))||300;b.hide(r,function(){b.trigger(c=a.Event("closed.ace.widget"));b.remove()})}else{if(p=="reload"){var c;b.trigger(c=a.Event("reload.ace.widget"));if(c.isDefaultPrevented()){return}n.blur();var q=false;if(b.css("position")=="static"){q=true;b.addClass("position-relative")}b.append('
');b.one("reloaded.ace.widget",function(){b.find(".widget-box-overlay").remove();if(q){b.removeClass("position-relative")}})}else{if(p=="settings"){var c=a.Event("settings.ace.widget");b.trigger(c)}}}}})};ace.widget_reload_handler=function(a){a(document).on("reload.ace.widget",".widget-box",function(b){var c=a(this);setTimeout(function(){c.trigger("reloaded.ace.widget")},parseInt(Math.random()*1000+1000))})};ace.enable_search_ahead=function(a){ace.variable_US_STATES=["Alabama","Alaska","Arizona","Arkansas","California","Colorado","Connecticut","Delaware","Florida","Georgia","Hawaii","Idaho","Illinois","Indiana","Iowa","Kansas","Kentucky","Louisiana","Maine","Maryland","Massachusetts","Michigan","Minnesota","Mississippi","Missouri","Montana","Nebraska","Nevada","New Hampshire","New Jersey","New Mexico","New York","North Dakota","North Carolina","Ohio","Oklahoma","Oregon","Pennsylvania","Rhode Island","South Carolina","South Dakota","Tennessee","Texas","Utah","Vermont","Virginia","Washington","West Virginia","Wisconsin","Wyoming"];try{a("#nav-search-input").typeahead({source:ace.variable_US_STATES,updater:function(c){a("#nav-search-input").focus();return c}})}catch(b){}};ace.switch_direction=function(d){var c=d(document.body);c.toggleClass("rtl").find(".dropdown-menu:not(.datepicker-dropdown,.colorpicker)").toggleClass("pull-right").end().find(".pull-right:not(.dropdown-menu,blockquote,.profile-skills .pull-right)").removeClass("pull-right").addClass("tmp-rtl-pull-right").end().find(".pull-left:not(.dropdown-submenu,.profile-skills .pull-left)").removeClass("pull-left").addClass("pull-right").end().find(".tmp-rtl-pull-right").removeClass("tmp-rtl-pull-right").addClass("pull-left").end().find(".chosen-container").toggleClass("chosen-rtl").end();function a(h,g){c.find("."+h).removeClass(h).addClass("tmp-rtl-"+h).end().find("."+g).removeClass(g).addClass(h).end().find(".tmp-rtl-"+h).removeClass("tmp-rtl-"+h).addClass(g)}function b(h,g,i){i.each(function(){var k=d(this);var j=k.css(g);k.css(g,k.css(h));k.css(h,j)})}a("align-left","align-right");a("no-padding-left","no-padding-right");a("arrowed","arrowed-right");a("arrowed-in","arrowed-in-right");a("messagebar-item-left","messagebar-item-right");var e=d("#piechart-placeholder");if(e.size()>0){var f=d(document.body).hasClass("rtl")?"nw":"ne";e.data("draw").call(e.get(0),e,e.data("chart"),f)}}; -------------------------------------------------------------------------------- /assets/js/bootbox.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * bootbox.js v4.0.0 3 | * 4 | * http://bootboxjs.com/license.txt 5 | */ 6 | window.bootbox=window.bootbox||function a(b,c){"use strict";function d(a){var b=s[q.locale];return b?b[a]:s.en[a]}function e(a,c,d){a.preventDefault();var e=b.isFunction(d)&&d(a)===!1;e||c.modal("hide")}function f(a){var b,c=0;for(b in a)c++;return c}function g(a,c){var d=0;b.each(a,function(a,b){c(a,b,d++)})}function h(a){var c,d;if("object"!=typeof a)throw new Error("Please supply an object of options");if(!a.message)throw new Error("Please specify a message");return a=b.extend({},q,a),a.buttons||(a.buttons={}),a.backdrop=a.backdrop?"static":!1,c=a.buttons,d=f(c),g(c,function(a,e,f){if(b.isFunction(e)&&(e=c[a]={callback:e}),"object"!==b.type(e))throw new Error("button with key "+a+" must be an object");e.label||(e.label=a),e.className||(e.className=2>=d&&f===d-1?"btn-primary":"btn-default")}),a}function i(a,b){var c=a.length,d={};if(1>c||c>2)throw new Error("Invalid argument length");return 2===c||"string"==typeof a[0]?(d[b[0]]=a[0],d[b[1]]=a[1]):d=a[0],d}function j(a,c,d){return b.extend(!0,{},a,i(c,d))}function k(a,b,c){return n(j(m.apply(null,a),b,c),a)}function l(){for(var a={},b=0,c=arguments.length;c>b;b++){var e=arguments[b],f=e.toLowerCase(),g=e.toUpperCase();a[f]={label:d(g)}}return a}function m(){return{buttons:l.apply(null,arguments)}}function n(a,b){var d={};return g(b,function(a,b){d[b]=!0}),g(a.buttons,function(a){if(d[a]===c)throw new Error("button key "+a+" is not allowed (options are "+b.join("\n")+")")}),a}var o={dialog:"",header:"",footer:"",closeButton:"",form:"
",inputs:{text:""}},p=b("body"),q={locale:"en",backdrop:!0,animate:!0,className:null,closeButton:!0,show:!0},r={};r.alert=function(){var a;if(a=k(["ok"],arguments,["message","callback"]),a.callback&&!b.isFunction(a.callback))throw new Error("alert requires callback property to be a function when provided");return a.buttons.ok.callback=a.onEscape=function(){return b.isFunction(a.callback)?a.callback():!0},r.dialog(a)},r.confirm=function(){var a;if(a=k(["cancel","confirm"],arguments,["message","callback"]),a.buttons.cancel.callback=a.onEscape=function(){return a.callback(!1)},a.buttons.confirm.callback=function(){return a.callback(!0)},!b.isFunction(a.callback))throw new Error("confirm requires a callback");return r.dialog(a)},r.prompt=function(){var a,d,e,f,g,h;if(f=b(o.form),d={buttons:l("cancel","confirm"),value:""},a=n(j(d,arguments,["title","callback"]),["cancel","confirm"]),h=a.show===c?!0:a.show,a.message=f,a.buttons.cancel.callback=a.onEscape=function(){return a.callback(null)},a.buttons.confirm.callback=function(){return a.callback(g.val())},a.show=!1,!a.title)throw new Error("prompt requires a title");if(!b.isFunction(a.callback))throw new Error("prompt requires a callback");return g=b(o.inputs.text),g.val(a.value),f.append(g),f.on("submit",function(a){a.preventDefault(),e.find(".btn-primary").click()}),e=r.dialog(a),e.off("shown.bs.modal"),e.on("shown.bs.modal",function(){g.focus()}),h===!0&&e.modal("show"),e},r.dialog=function(a){a=h(a);var c=b(o.dialog),d=c.find(".modal-body"),f=a.buttons,i="",j={onEscape:a.onEscape};if(g(f,function(a,b){i+="",j[a]=b.callback}),d.find(".bootbox-body").html(a.message),a.animate===!0&&c.addClass("fade"),a.className&&c.addClass(a.className),a.title&&d.before(o.header),a.closeButton){var k=b(o.closeButton);a.title?c.find(".modal-header").prepend(k):k.css("margin-top","-10px").prependTo(d)}return a.title&&c.find(".modal-title").html(a.title),i.length&&(d.after(o.footer),c.find(".modal-footer").html(i)),c.on("hidden.bs.modal",function(a){a.target===this&&c.remove()}),c.on("shown.bs.modal",function(){c.find(".btn-primary:first").focus()}),c.on("escape.close.bb",function(a){j.onEscape&&e(a,c,j.onEscape)}),c.on("click",".modal-footer button",function(a){var d=b(this).data("bb-handler");e(a,c,j[d])}),c.on("click",".bootbox-close-button",function(a){e(a,c,j.onEscape)}),c.on("keyup",function(a){27===a.which&&c.trigger("escape.close.bb")}),p.append(c),c.modal({backdrop:a.backdrop,keyboard:!1,show:!1}),a.show&&c.modal("show"),c},r.setDefaults=function(a){b.extend(q,a)},r.hideAll=function(){b(".bootbox").modal("hide")};var s={br:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Sim"},da:{OK:"OK",CANCEL:"Annuller",CONFIRM:"Accepter"},de:{OK:"OK",CANCEL:"Abbrechen",CONFIRM:"Akzeptieren"},en:{OK:"OK",CANCEL:"Cancel",CONFIRM:"OK"},es:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Aceptar"},fi:{OK:"OK",CANCEL:"Peruuta",CONFIRM:"OK"},fr:{OK:"OK",CANCEL:"Annuler",CONFIRM:"D'accord"},it:{OK:"OK",CANCEL:"Annulla",CONFIRM:"Conferma"},nl:{OK:"OK",CANCEL:"Annuleren",CONFIRM:"Accepteren"},pl:{OK:"OK",CANCEL:"Anuluj",CONFIRM:"Potwierdź"},ru:{OK:"OK",CANCEL:"Отмена",CONFIRM:"Применить"},zh_CN:{OK:"OK",CANCEL:"取消",CONFIRM:"确认"},zh_TW:{OK:"OK",CANCEL:"取消",CONFIRM:"確認"}};return r.init=function(c){window.bootbox=a(c||b)},r}(window.jQuery); -------------------------------------------------------------------------------- /assets/js/bootstrap-colorpicker.min.js: -------------------------------------------------------------------------------- 1 | /* ========================================================= 2 | * bootstrap-colorpicker.js 3 | * http://www.eyecon.ro/bootstrap-colorpicker 4 | * ========================================================= 5 | * Copyright 2012 Stefan Petre 6 | * 7 | * Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | * ========================================================= */ 19 | !function($){var Color=function(val){this.value={h:1,s:1,b:1,a:1};this.setColor(val)};Color.prototype={constructor:Color,setColor:function(val){val=val.toLowerCase();var that=this;$.each(CPGlobal.stringParsers,function(i,parser){var match=parser.re.exec(val),values=match&&parser.parse(match),space=parser.space||"rgba";if(values){if(space==="hsla"){that.value=CPGlobal.RGBtoHSB.apply(null,CPGlobal.HSLtoRGB.apply(null,values))}else{that.value=CPGlobal.RGBtoHSB.apply(null,values)}return false}})},setHue:function(h){this.value.h=1-h},setSaturation:function(s){this.value.s=s},setLightness:function(b){this.value.b=1-b},setAlpha:function(a){this.value.a=parseInt((1-a)*100,10)/100},toRGB:function(h,s,b,a){if(!h){h=this.value.h;s=this.value.s;b=this.value.b}h*=360;var R,G,B,X,C;h=h%360/60;C=b*s;X=C*(1-Math.abs(h%2-1));R=G=B=b-C;h=~~h;R+=[C,X,0,0,X,C][h];G+=[X,C,C,X,0,0][h];B+=[0,0,X,C,C,X][h];return{r:Math.round(R*255),g:Math.round(G*255),b:Math.round(B*255),a:a||this.value.a}},toHex:function(h,s,b,a){var rgb=this.toRGB(h,s,b,a);return"#"+(1<<24|parseInt(rgb.r)<<16|parseInt(rgb.g)<<8|parseInt(rgb.b)).toString(16).substr(1)},toHSL:function(h,s,b,a){if(!h){h=this.value.h;s=this.value.s;b=this.value.b}var H=h,L=(2-s)*b,S=s*b;if(L>0&&L<=1){S/=L}else{S/=2-L}L/=2;if(S>1){S=1}return{h:H,s:S,l:L,a:a||this.value.a}}};var Colorpicker=function(element,options){this.element=$(element);var format=options.format||this.element.data("color-format")||"hex";this.format=CPGlobal.translateFormats[format];this.isInput=this.element.is("input");this.component=this.element.is(".color")?this.element.find(".add-on"):false;this.picker=$(CPGlobal.template).appendTo("body").on("mousedown",$.proxy(this.mousedown,this));if(this.isInput){this.element.on({focus:$.proxy(this.show,this),keyup:$.proxy(this.update,this)})}else if(this.component){this.component.on({click:$.proxy(this.show,this)})}else{this.element.on({click:$.proxy(this.show,this)})}if(format==="rgba"||format==="hsla"){this.picker.addClass("alpha");this.alpha=this.picker.find(".colorpicker-alpha")[0].style}if(this.component){this.picker.find(".colorpicker-color").hide();this.preview=this.element.find("i")[0].style}else{this.preview=this.picker.find("div:last")[0].style}this.base=this.picker.find("div:first")[0].style;this.update()};Colorpicker.prototype={constructor:Colorpicker,show:function(e){this.picker.show();this.height=this.component?this.component.outerHeight():this.element.outerHeight();this.place();$(window).on("resize",$.proxy(this.place,this));if(!this.isInput){if(e){e.stopPropagation();e.preventDefault()}}$(document).on({mousedown:$.proxy(this.hide,this)});this.element.trigger({type:"show",color:this.color})},update:function(){this.color=new Color(this.isInput?this.element.prop("value"):this.element.data("color"));this.picker.find("i").eq(0).css({left:this.color.value.s*100,top:100-this.color.value.b*100}).end().eq(1).css("top",100*(1-this.color.value.h)).end().eq(2).css("top",100*(1-this.color.value.a));this.previewColor()},setValue:function(newColor){this.color=new Color(newColor);this.picker.find("i").eq(0).css({left:this.color.value.s*100,top:100-this.color.value.b*100}).end().eq(1).css("top",100*(1-this.color.value.h)).end().eq(2).css("top",100*(1-this.color.value.a));this.previewColor();this.element.trigger({type:"changeColor",color:this.color})},hide:function(){this.picker.hide();$(window).off("resize",this.place);if(!this.isInput){$(document).off({mousedown:this.hide});if(this.component){this.element.find("input").prop("value",this.format.call(this))}this.element.data("color",this.format.call(this))}else{this.element.prop("value",this.format.call(this))}this.element.trigger({type:"hide",color:this.color})},place:function(){var offset=this.component?this.component.offset():this.element.offset();this.picker.css({top:offset.top+this.height,left:offset.left})},previewColor:function(){try{this.preview.backgroundColor=this.format.call(this)}catch(e){this.preview.backgroundColor=this.color.toHex()}this.base.backgroundColor=this.color.toHex(this.color.value.h,1,1,1);if(this.alpha){this.alpha.backgroundColor=this.color.toHex()}},pointer:null,slider:null,mousedown:function(e){e.stopPropagation();e.preventDefault();var target=$(e.target);var zone=target.closest("div");if(!zone.is(".colorpicker")){if(zone.is(".colorpicker-saturation")){this.slider=$.extend({},CPGlobal.sliders.saturation)}else if(zone.is(".colorpicker-hue")){this.slider=$.extend({},CPGlobal.sliders.hue)}else if(zone.is(".colorpicker-alpha")){this.slider=$.extend({},CPGlobal.sliders.alpha)}else{return false}var offset=zone.offset();this.slider.knob=zone.find("i")[0].style;this.slider.left=e.pageX-offset.left;this.slider.top=e.pageY-offset.top;this.pointer={left:e.pageX,top:e.pageY};$(document).on({mousemove:$.proxy(this.mousemove,this),mouseup:$.proxy(this.mouseup,this)}).trigger("mousemove")}return false},mousemove:function(e){e.stopPropagation();e.preventDefault();var left=Math.max(0,Math.min(this.slider.maxLeft,this.slider.left+((e.pageX||this.pointer.left)-this.pointer.left)));var top=Math.max(0,Math.min(this.slider.maxTop,this.slider.top+((e.pageY||this.pointer.top)-this.pointer.top)));this.slider.knob.left=left+"px";this.slider.knob.top=top+"px";if(this.slider.callLeft){this.color[this.slider.callLeft].call(this.color,left/100)}if(this.slider.callTop){this.color[this.slider.callTop].call(this.color,top/100)}this.previewColor();this.element.trigger({type:"changeColor",color:this.color});return false},mouseup:function(e){e.stopPropagation();e.preventDefault();$(document).off({mousemove:this.mousemove,mouseup:this.mouseup});return false}};$.fn.colorpicker=function(option,val){return this.each(function(){var $this=$(this),data=$this.data("colorpicker"),options=typeof option==="object"&&option;if(!data){$this.data("colorpicker",data=new Colorpicker(this,$.extend({},$.fn.colorpicker.defaults,options)))}if(typeof option==="string")data[option](val)})};$.fn.colorpicker.defaults={};$.fn.colorpicker.Constructor=Colorpicker;var CPGlobal={translateFormats:{rgb:function(){var rgb=this.color.toRGB();return"rgb("+rgb.r+","+rgb.g+","+rgb.b+")"},rgba:function(){var rgb=this.color.toRGB();return"rgba("+rgb.r+","+rgb.g+","+rgb.b+","+rgb.a+")"},hsl:function(){var hsl=this.color.toHSL();return"hsl("+Math.round(hsl.h*360)+","+Math.round(hsl.s*100)+"%,"+Math.round(hsl.l*100)+"%)"},hsla:function(){var hsl=this.color.toHSL();return"hsla("+Math.round(hsl.h*360)+","+Math.round(hsl.s*100)+"%,"+Math.round(hsl.l*100)+"%,"+hsl.a+")"},hex:function(){return this.color.toHex()}},sliders:{saturation:{maxLeft:100,maxTop:100,callLeft:"setSaturation",callTop:"setLightness"},hue:{maxLeft:0,maxTop:100,callLeft:false,callTop:"setHue"},alpha:{maxLeft:0,maxTop:100,callLeft:false,callTop:"setAlpha"}},RGBtoHSB:function(r,g,b,a){r/=255;g/=255;b/=255;var H,S,V,C;V=Math.max(r,g,b);C=V-Math.min(r,g,b);H=C===0?null:V==r?(g-b)/C:V==g?(b-r)/C+2:(r-g)/C+4;H=(H+360)%6*60/360;S=C===0?0:C/V;return{h:H||1,s:S,b:V,a:a||1}},HueToRGB:function(p,q,h){if(h<0)h+=1;else if(h>1)h-=1;if(h*6<1)return p+(q-p)*h*6;else if(h*2<1)return q;else if(h*3<2)return p+(q-p)*(2/3-h)*6;else return p},HSLtoRGB:function(h,s,l,a){if(s<0){s=0}var q;if(l<=.5){q=l*(1+s)}else{q=l+s-l*s}var p=2*l-q;var tr=h+1/3;var tg=h;var tb=h-1/3;var r=Math.round(CPGlobal.HueToRGB(p,q,tr)*255);var g=Math.round(CPGlobal.HueToRGB(p,q,tg)*255);var b=Math.round(CPGlobal.HueToRGB(p,q,tb)*255);return[r,g,b,a||1]},stringParsers:[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,parse:function(execResult){return[execResult[1],execResult[2],execResult[3],execResult[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,parse:function(execResult){return[2.55*execResult[1],2.55*execResult[2],2.55*execResult[3],execResult[4]]}},{re:/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/,parse:function(execResult){return[parseInt(execResult[1],16),parseInt(execResult[2],16),parseInt(execResult[3],16)]}},{re:/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/,parse:function(execResult){return[parseInt(execResult[1]+execResult[1],16),parseInt(execResult[2]+execResult[2],16),parseInt(execResult[3]+execResult[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(execResult){return[execResult[1]/360,execResult[2]/100,execResult[3]/100,execResult[4]]}}],template:'