From 7fb3bb4c68e9c1c7ebb8b5d7a69c9b916d303294 Mon Sep 17 00:00:00 2001
From: liuzimu1995 <1206994556@qq.com>
Date: Wed, 19 Sep 2018 15:15:55 +0800
Subject: [PATCH 1/2] =?UTF-8?q?=E5=8D=87=E7=BA=A7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
upgrade/config/versions.php | 1 +
upgrade/utils/model.php | 7 ++++++-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/upgrade/config/versions.php b/upgrade/config/versions.php
index 7caf2d49d..352df99bd 100644
--- a/upgrade/config/versions.php
+++ b/upgrade/config/versions.php
@@ -19,5 +19,6 @@ return array(
'open' => array(
'4.2.2 open' => '',
'4.4.2 open' => '',
+ '4.5.4 open' => '',
),
);
diff --git a/upgrade/utils/model.php b/upgrade/utils/model.php
index 36deb3071..ac8438409 100644
--- a/upgrade/utils/model.php
+++ b/upgrade/utils/model.php
@@ -14,6 +14,11 @@ function getVersion()
$query = $db->prepare(" SELECT `svalue` FROM `{$cfg['tableprefix']}setting` WHERE `skey` = 'version'");
$query->execute();
$row = $query->fetch(PDO::FETCH_ASSOC);
+ // open需要添加一条,4.4.2的记录版本,因为升级方式变了
+ if (empty($row) && strtoupper(VERSION_TYPE) === "OPEN") {
+ $query = $db->prepare(" INSERT INTO `{$cfg['tableprefix']}setting` (`skey`, `svalue`) VALUES ('version', '4.4.2 open');");
+ $query->execute();
+ }
return !empty($row) ? $row['svalue'] : '';
}
@@ -108,7 +113,7 @@ function getDbConn()
/**
* 获取 QueryBuilder 实例
- *
+ *
* @return QueryBuilder
*/
function getQB()
--
Gitee
From 61f7f824bc58e8ac027c73c431257f2a30bb22e8 Mon Sep 17 00:00:00 2001
From: liuzimu1995 <1206994556@qq.com>
Date: Wed, 19 Sep 2018 15:24:03 +0800
Subject: [PATCH 2/2] =?UTF-8?q?=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
static/image/wx-link-btns.png | Bin 0 -> 6720 bytes
static/js/app/assignment/assignment-icon.png | Bin 0 -> 2203 bytes
static/js/app/assignment/assignment.popup.css | 103 +
static/js/app/assignment/assignment.popup.js | 23 +
static/js/lib/dataTable/plugins/input.js | 204 +
static/js/lib/webuploader/README.md | 25 +
static/js/lib/webuploader/Uploader.swf | Bin 0 -> 143099 bytes
static/js/lib/webuploader/handlers.js | 638 ++
static/js/lib/webuploader/webuploader.css | 28 +
.../js/lib/webuploader/webuploader.custom.js | 6502 +++++++++++++
.../lib/webuploader/webuploader.custom.min.js | 2 +
static/js/lib/webuploader/webuploader.fis.js | 8083 ++++++++++++++++
.../lib/webuploader/webuploader.flashonly.js | 4622 ++++++++++
.../webuploader/webuploader.flashonly.min.js | 2 +
.../lib/webuploader/webuploader.html5only.js | 6030 ++++++++++++
.../webuploader/webuploader.html5only.min.js | 2 +
static/js/lib/webuploader/webuploader.js | 8117 +++++++++++++++++
static/js/lib/webuploader/webuploader.min.js | 3 +
.../js/lib/webuploader/webuploader.noimage.js | 5026 ++++++++++
.../webuploader/webuploader.noimage.min.js | 2 +
.../js/lib/webuploader/webuploader.nolog.js | 8012 ++++++++++++++++
.../lib/webuploader/webuploader.nolog.min.js | 3 +
.../webuploader/webuploader.withoutimage.js | 4993 ++++++++++
.../webuploader.withoutimage.min.js | 2 +
24 files changed, 52422 insertions(+)
create mode 100644 static/image/wx-link-btns.png
create mode 100644 static/js/app/assignment/assignment-icon.png
create mode 100644 static/js/app/assignment/assignment.popup.css
create mode 100644 static/js/app/assignment/assignment.popup.js
create mode 100644 static/js/lib/dataTable/plugins/input.js
create mode 100644 static/js/lib/webuploader/README.md
create mode 100644 static/js/lib/webuploader/Uploader.swf
create mode 100644 static/js/lib/webuploader/handlers.js
create mode 100644 static/js/lib/webuploader/webuploader.css
create mode 100644 static/js/lib/webuploader/webuploader.custom.js
create mode 100644 static/js/lib/webuploader/webuploader.custom.min.js
create mode 100644 static/js/lib/webuploader/webuploader.fis.js
create mode 100644 static/js/lib/webuploader/webuploader.flashonly.js
create mode 100644 static/js/lib/webuploader/webuploader.flashonly.min.js
create mode 100644 static/js/lib/webuploader/webuploader.html5only.js
create mode 100644 static/js/lib/webuploader/webuploader.html5only.min.js
create mode 100644 static/js/lib/webuploader/webuploader.js
create mode 100644 static/js/lib/webuploader/webuploader.min.js
create mode 100644 static/js/lib/webuploader/webuploader.noimage.js
create mode 100644 static/js/lib/webuploader/webuploader.noimage.min.js
create mode 100644 static/js/lib/webuploader/webuploader.nolog.js
create mode 100644 static/js/lib/webuploader/webuploader.nolog.min.js
create mode 100644 static/js/lib/webuploader/webuploader.withoutimage.js
create mode 100644 static/js/lib/webuploader/webuploader.withoutimage.min.js
diff --git a/static/image/wx-link-btns.png b/static/image/wx-link-btns.png
new file mode 100644
index 0000000000000000000000000000000000000000..d72ae2258d102ff33351d7e2c2c8e474fb624cfd
GIT binary patch
literal 6720
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
O!Ov?CC*Si>^1lJ^CL)9Y
literal 0
HcmV?d00001
diff --git a/static/js/app/assignment/assignment.popup.css b/static/js/app/assignment/assignment.popup.css
new file mode 100644
index 000000000..ba19b9207
--- /dev/null
+++ b/static/js/app/assignment/assignment.popup.css
@@ -0,0 +1,103 @@
+.assign-mainer {
+ position: relative;
+ padding: 20px;
+ height: 468px;
+}
+.assign-footer a:hover .o-assign-link {
+ background-position: -16px -16px;
+}
+.assign-list{
+ max-height: 320px;
+ overflow-y: auto;
+}
+.assign-list li {
+ position: relative;
+ margin-bottom: 10px;
+ padding: 10px;
+ border: 1px solid #dadfe6;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+ font-size: 12px;
+ cursor: pointer;
+}
+.assign-mainer--add{
+ margin-top: 10px;
+ padding: 15px;
+ border: 1px solid #dadfe6;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+ width: 380px;
+ font-size: 14px;
+ text-align: center;
+ cursor: pointer;
+}
+.o-assign-persion,
+.o-assign-label,
+.o-assign-delete,
+.o-assign-link {
+ display: inline-block;
+ background-image: url('assignment-icon.png');
+ background-repeat: no-repeat;
+ width: 16px;
+ height: 16px;
+ vertical-align: middle;
+}
+
+.o-assign-label {
+ background-position: 0 0;
+}
+.o-assign-persion {
+ background-position: -16px 0;
+}
+.o-assign-link {
+ background-position: -0px -16px;
+}
+.assign-footer {
+ padding-right: 20px;
+ text-align: right;
+}
+.assign-list li:hover {
+ background-color: #fffdfa;
+}
+.assign-list--wrap {
+ position: relative;
+}
+.assign-list--content {
+ width: 70%;
+}
+.assign-p--botton {
+ margin-bottom: 5px;
+}
+/*.assign-list--bnt {*/
+ /*display: none;*/
+ /*position: absolute;*/
+ /*right: 8px;*/
+ /*bottom: 0;*/
+/*}*/
+
+.assign-mainer--list {
+ padding: 8px;
+}
+.o-assign-delete {
+ position: absolute;
+ top: 5px;
+ right: 5px;
+ display: none;
+ background-position: 0 -32px;
+}
+.o-assign-delete:hover {
+ background-position: -16px -32px;
+}
+
+.assign-list li:hover .o-assign-delete {
+ display: block;
+}
+
+.assign-list li:hover .om-am-finished,
+.assign-list li:hover .om-am-cancelled {
+ display: none;
+}
+
+.assign-list li:hover .assign-btn-position{
+ display: block;
+}
\ No newline at end of file
diff --git a/static/js/app/assignment/assignment.popup.js b/static/js/app/assignment/assignment.popup.js
new file mode 100644
index 000000000..9fef29ecb
--- /dev/null
+++ b/static/js/app/assignment/assignment.popup.js
@@ -0,0 +1,23 @@
+/**
+ * * Assignment
+ * 指派任务全局关联模块弹窗 JS
+ * @version $Id$
+ */
+
+var AssignmentPopup = {
+
+ // 开启列表弹窗
+ openListDialog: function (param) {
+ var _this = this;
+ Ui.closeDialog("d_asp_list");
+ data = {"associatedmodule": param.module, "associatednode": param.node, "associatedid": param.id};
+ Ui.ajaxDialog(Ibos.app.url("assignment/unfinished/listpopup", data), {
+ id: "d_asp_list",
+ title: "关联的任务",
+ width: 470,
+ height: 540,
+ padding: "0px",
+ lock: false
+ });
+ }
+};
\ No newline at end of file
diff --git a/static/js/lib/dataTable/plugins/input.js b/static/js/lib/dataTable/plugins/input.js
new file mode 100644
index 000000000..4aaed808d
--- /dev/null
+++ b/static/js/lib/dataTable/plugins/input.js
@@ -0,0 +1,204 @@
+(function ($) {
+ function calcDisableClasses(oSettings) {
+ var start = oSettings._iDisplayStart;
+ var length = oSettings._iDisplayLength;
+ var visibleRecords = oSettings.fnRecordsDisplay();
+ var all = length === -1;
+
+ // Gordey Doronin: Re-used this code from main jQuery.dataTables source code. To be consistent.
+ var page = all ? 0 : Math.ceil(start / length);
+ var pages = all ? 1 : Math.ceil(visibleRecords / length);
+
+ var disableFirstPrevClass = (page > 0 ? '' : oSettings.oClasses.sPageButtonDisabled);
+ var disableNextLastClass = (page < pages - 1 ? '' : oSettings.oClasses.sPageButtonDisabled);
+
+ return {
+ 'first': disableFirstPrevClass,
+ 'previous': disableFirstPrevClass,
+ 'next': disableNextLastClass,
+ 'last': disableNextLastClass
+ };
+ }
+
+ function calcCurrentPage(oSettings) {
+ return Math.ceil(oSettings._iDisplayStart / oSettings._iDisplayLength) + 1;
+ }
+
+ function calcPages(oSettings) {
+ return Math.ceil(oSettings.fnRecordsDisplay() / oSettings._iDisplayLength);
+ }
+
+ var firstClassName = 'first';
+ var previousClassName = 'previous';
+ var nextClassName = 'next';
+ var lastClassName = 'last';
+
+ var paginateClassName = 'paginate';
+ var paginateOfClassName = 'paginate_of';
+ var paginatePageClassName = 'paginate_page';
+ var paginateInputClassName = 'paginate_input';
+
+ $.fn.dataTableExt.oPagination.input = {
+ 'fnInit': function (oSettings, nPaging, fnCallbackDraw) {
+ var nFirst = document.createElement('span');
+ var nPrevious = document.createElement('span');
+ var nNext = document.createElement('span');
+ var nLast = document.createElement('span');
+ var nInput = document.createElement('input');
+ var nPage = document.createElement('span');
+ var nOf = document.createElement('span');
+
+ var language = oSettings.oLanguage.oPaginate;
+ var classes = oSettings.oClasses;
+
+ nFirst.innerHTML = language.sFirst;
+ nPrevious.innerHTML = language.sPrevious;
+ nNext.innerHTML = language.sNext;
+ nLast.innerHTML = language.sLast;
+
+ nFirst.className = firstClassName + ' ' + classes.sPageButton;
+ nPrevious.className = previousClassName + ' ' + classes.sPageButton;
+ nNext.className = nextClassName + ' ' + classes.sPageButton;
+ nLast.className = lastClassName + ' ' + classes.sPageButton;
+
+ nOf.className = paginateOfClassName;
+ nPage.className = paginatePageClassName;
+ nInput.className = paginateInputClassName;
+
+ if (oSettings.sTableId !== '') {
+ nPaging.setAttribute('id', oSettings.sTableId + '_' + paginateClassName);
+ nFirst.setAttribute('id', oSettings.sTableId + '_' + firstClassName);
+ nPrevious.setAttribute('id', oSettings.sTableId + '_' + previousClassName);
+ nNext.setAttribute('id', oSettings.sTableId + '_' + nextClassName);
+ nLast.setAttribute('id', oSettings.sTableId + '_' + lastClassName);
+ }
+
+ nInput.type = 'text';
+ nPage.innerHTML = 'Page ';
+
+ nPaging.appendChild(nFirst);
+ nPaging.appendChild(nPrevious);
+ nPaging.appendChild(nPage);
+ nPaging.appendChild(nInput);
+ nPaging.appendChild(nOf);
+ nPaging.appendChild(nNext);
+ nPaging.appendChild(nLast);
+
+ $(nFirst).click(function() {
+ var iCurrentPage = calcCurrentPage(oSettings);
+ if (iCurrentPage !== 1) {
+ oSettings.oApi._fnPageChange(oSettings, 'first');
+ fnCallbackDraw(oSettings);
+ }
+ });
+
+ $(nPrevious).click(function() {
+ var iCurrentPage = calcCurrentPage(oSettings);
+ if (iCurrentPage !== 1) {
+ oSettings.oApi._fnPageChange(oSettings, 'previous');
+ fnCallbackDraw(oSettings);
+ }
+ });
+
+ $(nNext).click(function() {
+ var iCurrentPage = calcCurrentPage(oSettings);
+ if (iCurrentPage !== calcPages(oSettings)) {
+ oSettings.oApi._fnPageChange(oSettings, 'next');
+ fnCallbackDraw(oSettings);
+ }
+ });
+
+ $(nLast).click(function() {
+ var iCurrentPage = calcCurrentPage(oSettings);
+ if (iCurrentPage !== calcPages(oSettings)) {
+ oSettings.oApi._fnPageChange(oSettings, 'last');
+ fnCallbackDraw(oSettings);
+ }
+ });
+
+ $(nInput).keyup(function (e) {
+ // 38 = up arrow, 39 = right arrow
+ if (e.which === 38 || e.which === 39) {
+ this.value++;
+ }
+ // 37 = left arrow, 40 = down arrow
+ else if ((e.which === 37 || e.which === 40) && this.value > 1) {
+ this.value--;
+ }
+
+ if (this.value === '' || this.value.match(/[^0-9]/)) {
+ /* Nothing entered or non-numeric character */
+ this.value = this.value.replace(/[^\d]/g, ''); // don't even allow anything but digits
+ return;
+ }
+
+ var iNewStart = oSettings._iDisplayLength * (this.value - 1);
+ if (iNewStart < 0) {
+ iNewStart = 0;
+ }
+ if (iNewStart >= oSettings.fnRecordsDisplay()) {
+ iNewStart = (Math.ceil((oSettings.fnRecordsDisplay()) / oSettings._iDisplayLength) - 1) * oSettings._iDisplayLength;
+ }
+
+ oSettings._iDisplayStart = iNewStart;
+ fnCallbackDraw(oSettings);
+ });
+
+ // Take the brutal approach to cancelling text selection.
+ $('span', nPaging).bind('mousedown', function () { return false; });
+ $('span', nPaging).bind('selectstart', function() { return false; });
+
+ // If we can't page anyway, might as well not show it.
+ var iPages = calcPages(oSettings);
+ if (iPages <= 1) {
+ $(nPaging).hide();
+ }
+ },
+
+ 'fnUpdate': function (oSettings) {
+ if (!oSettings.aanFeatures.p) {
+ return;
+ }
+
+ var iPages = calcPages(oSettings);
+ var iCurrentPage = calcCurrentPage(oSettings);
+
+ var an = oSettings.aanFeatures.p;
+ if (iPages <= 1) // hide paging when we can't page
+ {
+ $(an).hide();
+ return;
+ }
+
+ var disableClasses = calcDisableClasses(oSettings);
+
+ $(an).show();
+
+ // Enable/Disable `first` button.
+ $(an).children('.' + firstClassName)
+ .removeClass(oSettings.oClasses.sPageButtonDisabled)
+ .addClass(disableClasses[firstClassName]);
+
+ // Enable/Disable `prev` button.
+ $(an).children('.' + previousClassName)
+ .removeClass(oSettings.oClasses.sPageButtonDisabled)
+ .addClass(disableClasses[previousClassName]);
+
+ // Enable/Disable `next` button.
+ $(an).children('.' + nextClassName)
+ .removeClass(oSettings.oClasses.sPageButtonDisabled)
+ .addClass(disableClasses[nextClassName]);
+
+ // Enable/Disable `last` button.
+ $(an).children('.' + lastClassName)
+ .removeClass(oSettings.oClasses.sPageButtonDisabled)
+ .addClass(disableClasses[lastClassName]);
+
+ // Paginate of N pages text
+ $(an).children('.' + paginateOfClassName).html(' / ' + iPages);
+
+ // Current page numer input value
+ $(an).children('.' + paginateInputClassName).val(iCurrentPage);
+ }
+ };
+})(jQuery);
\ No newline at end of file
diff --git a/static/js/lib/webuploader/README.md b/static/js/lib/webuploader/README.md
new file mode 100644
index 000000000..93bceadc2
--- /dev/null
+++ b/static/js/lib/webuploader/README.md
@@ -0,0 +1,25 @@
+目录说明
+========================
+
+```bash
+├── Uploader.swf # SWF文件,当使用Flash运行时需要引入。
+├
+├── webuploader.js # 完全版本。
+├── webuploader.min.js # min版本
+├
+├── webuploader.flashonly.js # 只有Flash实现的版本。
+├── webuploader.flashonly.min.js # min版本
+├
+├── webuploader.html5only.js # 只有Html5实现的版本。
+├── webuploader.html5only.min.js # min版本
+├
+├── webuploader.noimage.js # 去除图片处理的版本,包括HTML5和FLASH.
+├── webuploader.noimage.min.js # min版本
+├
+├── webuploader.custom.js # 自定义打包方案,请查看 Gruntfile.js,满足移动端使用。
+└── webuploader.custom.min.js # min版本
+```
+
+## 示例
+
+请把整个 Git 包下载下来放在 php 服务器下,因为默认提供的文件接受是用 php 编写的,打开 examples 页面便能查看示例效果。
\ No newline at end of file
diff --git a/static/js/lib/webuploader/Uploader.swf b/static/js/lib/webuploader/Uploader.swf
new file mode 100644
index 0000000000000000000000000000000000000000..bd75d6082fc0c3e977390a71dcca78932727147c
GIT binary patch
literal 143099
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