From 38655e4e10e96676b239191feddb5300015ad3ef Mon Sep 17 00:00:00 2001 From: booblegum Date: Tue, 22 Nov 2016 16:01:30 +0300 Subject: [PATCH] =?UTF-8?q?PR-20=20=D0=A4=D1=83=D0=BD=D0=BA=D1=86=D0=B8?= =?UTF-8?q?=D0=BE=D0=BD=D0=B0=D0=BB=20=D0=B8=20=D0=B2=D0=B8=D0=B4=20=D1=81?= =?UTF-8?q?=D0=BF=D0=B8=D1=81=D0=BA=D0=BE=D0=B2=20=D0=B2=20=D1=84=D0=B8?= =?UTF-8?q?=D0=BB=D1=8C=D1=82=D1=80=D0=B5=20=D0=BF=D0=BE=D0=B8=D1=81=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=B7=D0=B0=D0=BA=D0=B0=D0=B7=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Поправлены мелкие недоработки в дизайне --- .../proekton-components/bash/browserify.sh | 2 +- .../proekton-components/css/select-box.css | 1 + .../lib/proekton-components/js/build/init.js | 159 ++++++++++++++++-- .../js/build/init_user_profile.js | 6 +- .../js/src/base/AbsBaseSelect.js | 6 +- assets/lib/proekton-components/js/src/init.js | 2 +- assets/projects-filter.js | 6 +- projects/static/css/project_filter.css | 14 +- .../partials/inc-projects-filter.html | 4 +- 9 files changed, 165 insertions(+), 35 deletions(-) diff --git a/assets/lib/proekton-components/bash/browserify.sh b/assets/lib/proekton-components/bash/browserify.sh index 31d9809..8dae6c2 100644 --- a/assets/lib/proekton-components/bash/browserify.sh +++ b/assets/lib/proekton-components/bash/browserify.sh @@ -2,6 +2,6 @@ echo "run browserify" cd .. source ~/venv/proekton/bin/activate -#browserify ./js/src/init.js -o ./js/build/init.js -t babelify +browserify ./js/src/init.js -o ./js/build/init.js -t babelify browserify ./js/src/init_user_profile.js -o ./js/build/init_user_profile.js -t babelify #watchify ./js/src/init.js -t babelify -o ./js/build/init.js \ No newline at end of file diff --git a/assets/lib/proekton-components/css/select-box.css b/assets/lib/proekton-components/css/select-box.css index e43fd78..ece9ac1 100644 --- a/assets/lib/proekton-components/css/select-box.css +++ b/assets/lib/proekton-components/css/select-box.css @@ -118,6 +118,7 @@ input.select-box-search { background-size: 40px 40px; background-color: white; margin-bottom: -1px; + color: #494546; } input.select-box-search.active{ diff --git a/assets/lib/proekton-components/js/build/init.js b/assets/lib/proekton-components/js/build/init.js index 285ef23..1eec193 100644 --- a/assets/lib/proekton-components/js/build/init.js +++ b/assets/lib/proekton-components/js/build/init.js @@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = undefined; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -82,8 +83,11 @@ exports.default = NoTreeSelect; Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = undefined; -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); // ` +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _desc, _value, _class; // ` var _DataTree = require('./data/DataTree'); @@ -94,15 +98,48 @@ var _NoTreeData = require('./data/NoTreeData'); var _NoTreeData2 = _interopRequireDefault(_NoTreeData); +var _decorators = require('./decorators'); + +var _decorators2 = _interopRequireDefault(_decorators); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { + var desc = {}; + Object['ke' + 'ys'](descriptor).forEach(function (key) { + desc[key] = descriptor[key]; + }); + desc.enumerable = !!desc.enumerable; + desc.configurable = !!desc.configurable; + + if ('value' in desc || desc.initializer) { + desc.writable = true; + } + + desc = decorators.slice().reverse().reduce(function (desc, decorator) { + return decorator(target, property, desc) || desc; + }, desc); + + if (context && desc.initializer !== void 0) { + desc.value = desc.initializer ? desc.initializer.call(context) : void 0; + desc.initializer = undefined; + } + + if (desc.initializer === void 0) { + Object['define' + 'Property'](target, property, desc); + desc = null; + } + + return desc; +} + var tmpl_selectedElement = function tmpl_selectedElement(header, name, id) { return '\n
\n
\n ' + header + '\n
\n
\n ' + name + '\n
\n \n
\n'; }; -var SelectedContainer = function () { +var SelectedContainer = (_class = function () { function SelectedContainer($container, _ref) { var _this = this; @@ -119,6 +156,7 @@ var SelectedContainer = function () { this.elements_id = []; // [spec_id, spec_id, ...] this.onlyOne = onlyOne; var self = this; + this.$self.hide(); obj.dataPromise.then(function (data) { _this.dataTree = noTree ? new _NoTreeData2.default(data.results) : new _DataTree2.default(data.results); @@ -132,23 +170,31 @@ var SelectedContainer = function () { value: function restoreElements() { var self = this; if (this.$input && this.$input.val()) { - var data = this.$input.val().split(',').filter(function (el) { + + var clearString = this.$input.val().replace(/[\[\]\'\'\"\"]/g, ''); + var data = clearString.split(',').filter(function (el) { return el; }); this.elements_id = []; + if (this.$input) this.$input.val(this.elements_id.join(',')); data.forEach(function (el) { return self.add(el); }); } } + }, { + key: 'on', + value: function on(methodName, func) { + this[methodName] = this[methodName].bind(this, { func: func, bindFunc: true }); + } }, { key: '_removeById', - value: function _removeById(spec_id) { - var index = this.elements_id.indexOf(spec_id); + value: function _removeById(id) { + var index = this.elements_id.indexOf(id); if (index >= 0) { this.elements_id.splice(index, 1); } - this.$self.find('span[data-id=\'' + spec_id + '\']').parents('.selected-element').remove(); + this.$self.find('span[data-id=\'' + id + '\']').parents('.selected-element').remove(); } }, { key: '_onLoadDataError', @@ -161,19 +207,19 @@ var SelectedContainer = function () { var spec_id = $(e.target).data("id"); this._removeById(spec_id); if (this.$input) this.$input.val(this.elements_id.join(',')); + if (!this.elements_id.length) this.$self.hide(); e.preventDefault(); } }, { key: 'replace', value: function replace(_id, max_len) { - console.log("replace"); var id = Number(_id); if (this.elements_id.length > 1) throw new RangeError("Replace error: more than one element"); - this.elements_id = [id]; // Remove old this._removeById(this.elements_id[0]); //Add new this._addElementToHtml(id, max_len); + this.elements_id = [id]; } }, { key: '_addElementToHtml', @@ -186,6 +232,7 @@ var SelectedContainer = function () { this.$self.append(SelectedContainer.getTemplate(header || " ", name, id)); this.btn_remove = this.$self.find('.icon-remove'); this.btn_remove.on("click", this.remove.bind(self)); + if (this.elements_id.length) this.$self.show(); } }, { key: 'add', @@ -239,16 +286,16 @@ var SelectedContainer = function () { }]); return SelectedContainer; -}(); - +}(), (_applyDecoratedDescriptor(_class.prototype, 'remove', [_decorators2.default], Object.getOwnPropertyDescriptor(_class.prototype, 'remove'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'add', [_decorators2.default], Object.getOwnPropertyDescriptor(_class.prototype, 'add'), _class.prototype)), _class); exports.default = SelectedContainer; -},{"./data/DataTree":5,"./data/NoTreeData":6}],3:[function(require,module,exports){ +},{"./data/DataTree":5,"./data/NoTreeData":6,"./decorators":7}],3:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = undefined; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -391,7 +438,7 @@ var tmpl_selectBoxEditCont = function tmpl_selectBoxEditCont() { _ref$preloaderTemplat = _ref.preloaderTemplate, preloaderTemplate = _ref$preloaderTemplat === undefined ? "" : _ref$preloaderTemplat; - return "\n
\n
\n \n
\n " + preloaderTemplate + "\n \n \n
\n
\n
\n \n
\n
\n"; + return "\n
\n
\n \n
\n " + preloaderTemplate + "\n \n \n
\n
\n
\n \n
\n
\n"; }; var tmpl_selectBox = function tmpl_selectBox() { @@ -399,7 +446,7 @@ var tmpl_selectBox = function tmpl_selectBox() { _ref2$preloaderTempla = _ref2.preloaderTemplate, preloaderTemplate = _ref2$preloaderTempla === undefined ? "" : _ref2$preloaderTempla; - return " \n " + preloaderTemplate + "\n \n \n"; + return " \n " + preloaderTemplate + "\n \n \n"; }; var tmpl_elementResult = function tmpl_elementResult(el, id, header) { @@ -421,7 +468,7 @@ var tmpl_selectBoxOptions = function tmpl_selectBoxOptions() { }; var tmpl_selectBoxResults = function tmpl_selectBoxResults() { - return "\n
\n
\n
\n
    \n
\n
\n
\n \u0418\u0437 \u0434\u0440\u0443\u0433\u0438\u0445 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0439\n
    \n
\n
\n
\n \n
\n"; + return "\n
\n
\n
\n
    \n
\n
\n
\n \u0418\u0437 \u0434\u0440\u0443\u0433\u0438\u0445 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0439\n
    \n
\n
\n
\n \n
\n"; }; var htmlTemplate = function htmlTemplate(_ref4) { @@ -1096,6 +1143,86 @@ var NoTreeData = function () { exports.default = NoTreeData; },{}],7:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = onBind; +function onBind(target, name, descriptor) { + var method = descriptor.value; + + descriptor.value = function () { + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + var binds = []; + args = Array.from(args); + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = args.slice()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var arg = _step.value; + + // console.log("onBind -->", typeof arg, "arg = ", arg); + // console.log("arg.func -->", typeof arg.originalEvent); + // typeof arg === 'object' && !(arg.originalEvent) + if (arg.bindFunc) { + binds.push(arg); + args.splice(args.indexOf(arg), 1); + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + + method.apply(this, args); + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + var _iteratorError2 = undefined; + + try { + for (var _iterator2 = binds[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + var bind = _step2.value; + + bind.func.bind(this)(); + } + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally { + try { + if (!_iteratorNormalCompletion2 && _iterator2.return) { + _iterator2.return(); + } + } finally { + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } + + return this; + }; +} + +// export {onBind}; + +},{}],8:[function(require,module,exports){ 'use strict'; var _SelectedContainer = require('./SelectedContainer'); @@ -1116,7 +1243,7 @@ $(function () { function createFilterSpecs(url) { // SPECIALIZATIONS FILTER var sb_main = new _TreeSelect2.default($('#select-box-1'), { url: url, hasEditableContainer: true }); - sb_main.setHeader("Специализации"); + sb_main.setHeader("Специальность"); var select_container = new _SelectedContainer2.default($('#selected-spec'), { obj: sb_main }); sb_main.connectSelectedContainer(select_container); var sb_1 = new _TreeSelect2.default($('#select-box-2'), { obj: sb_main }); @@ -1194,4 +1321,4 @@ $(function () { // fullData({next: '/api/locations_flat', results: []}); }); // ` -},{"./NoTreeSelect":1,"./SelectedContainer":2,"./TreeSelect":3}]},{},[7]); +},{"./NoTreeSelect":1,"./SelectedContainer":2,"./TreeSelect":3}]},{},[8]); diff --git a/assets/lib/proekton-components/js/build/init_user_profile.js b/assets/lib/proekton-components/js/build/init_user_profile.js index 3a307fd..9bc1d2e 100644 --- a/assets/lib/proekton-components/js/build/init_user_profile.js +++ b/assets/lib/proekton-components/js/build/init_user_profile.js @@ -438,7 +438,7 @@ var tmpl_selectBoxEditCont = function tmpl_selectBoxEditCont() { _ref$preloaderTemplat = _ref.preloaderTemplate, preloaderTemplate = _ref$preloaderTemplat === undefined ? "" : _ref$preloaderTemplat; - return "\n
\n
\n \n
\n " + preloaderTemplate + "\n \n \n
\n
\n
\n \n
\n
\n"; + return "\n
\n
\n \n
\n " + preloaderTemplate + "\n \n \n
\n
\n
\n \n
\n
\n"; }; var tmpl_selectBox = function tmpl_selectBox() { @@ -446,7 +446,7 @@ var tmpl_selectBox = function tmpl_selectBox() { _ref2$preloaderTempla = _ref2.preloaderTemplate, preloaderTemplate = _ref2$preloaderTempla === undefined ? "" : _ref2$preloaderTempla; - return " \n " + preloaderTemplate + "\n \n \n"; + return " \n " + preloaderTemplate + "\n \n \n"; }; var tmpl_elementResult = function tmpl_elementResult(el, id, header) { @@ -468,7 +468,7 @@ var tmpl_selectBoxOptions = function tmpl_selectBoxOptions() { }; var tmpl_selectBoxResults = function tmpl_selectBoxResults() { - return "\n
\n
\n
\n
    \n
\n
\n
\n \u0418\u0437 \u0434\u0440\u0443\u0433\u0438\u0445 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0439\n
    \n
\n
\n
\n \n
\n"; + return "\n
\n
\n
\n
    \n
\n
\n
\n \u0418\u0437 \u0434\u0440\u0443\u0433\u0438\u0445 \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0439\n
    \n
\n
\n
\n \n
\n"; }; var htmlTemplate = function htmlTemplate(_ref4) { diff --git a/assets/lib/proekton-components/js/src/base/AbsBaseSelect.js b/assets/lib/proekton-components/js/src/base/AbsBaseSelect.js index 618efa6..4a5b656 100644 --- a/assets/lib/proekton-components/js/src/base/AbsBaseSelect.js +++ b/assets/lib/proekton-components/js/src/base/AbsBaseSelect.js @@ -7,7 +7,7 @@ const tmpl_selectBoxEditCont = ({preloaderTemplate = ""}={}) =>
${preloaderTemplate} - +
@@ -20,7 +20,7 @@ const tmpl_selectBox = ({preloaderTemplate = ""}={}) => ` ${preloaderTemplate} - + `; const tmpl_elementResult = (el, id, header) => @@ -59,7 +59,7 @@ const tmpl_selectBoxResults = () =>
- + `; diff --git a/assets/lib/proekton-components/js/src/init.js b/assets/lib/proekton-components/js/src/init.js index 5781caa..052004d 100644 --- a/assets/lib/proekton-components/js/src/init.js +++ b/assets/lib/proekton-components/js/src/init.js @@ -7,7 +7,7 @@ $(function () { function createFilterSpecs(url) { // SPECIALIZATIONS FILTER let sb_main = new TreeSelect($('#select-box-1'), {url, hasEditableContainer: true}); - sb_main.setHeader("Специализации"); + sb_main.setHeader("Специальность"); let select_container = new SelectedContainer($('#selected-spec'), {obj: sb_main}); sb_main.connectSelectedContainer(select_container); let sb_1 = new TreeSelect($('#select-box-2'), {obj: sb_main}); diff --git a/assets/projects-filter.js b/assets/projects-filter.js index 8710af3..4a489f6 100644 --- a/assets/projects-filter.js +++ b/assets/projects-filter.js @@ -1,15 +1,15 @@ $(function () { let $buttonF1 = $('.resButton'); - if ($('.slide').hasClass("active")) $buttonF1.css('transform', 'rotate(180deg)'); + if ($('.slide').hasClass("active")) $buttonF1.css('transform', 'rotate(0deg)'); $buttonF1.on("click", function (e) { e.preventDefault(); let $slide = $('.slide'); if ($slide.hasClass("active")) { - $buttonF1.css('transform', 'rotate(0deg)'); + $buttonF1.css('transform', 'rotate(180deg)'); $slide.slideUp(300); } else { - $buttonF1.css('transform', 'rotate(180deg)'); + $buttonF1.css('transform', 'rotate(0deg)'); $slide.slideDown(300); } $slide.toggleClass("active"); diff --git a/projects/static/css/project_filter.css b/projects/static/css/project_filter.css index e4d5536..a46e178 100644 --- a/projects/static/css/project_filter.css +++ b/projects/static/css/project_filter.css @@ -53,6 +53,8 @@ body { } .resButton { + position: relative; + top: -15px; width: 50px; height: 50px; background-color: white; @@ -62,10 +64,12 @@ body { font-size: 16px; float: left; border-radius: 100%; - margin: -15px 20px 0 28px; + /* margin: -15px 20px 0 28px; */ + margin-left: 25px; -webkit-transition: all 0.3s ease-out; -moz-transition: all 0.3s ease-out; transition: all 0.3s ease-out; + transform: rotate(180deg); } button.resButton:focus { @@ -76,9 +80,9 @@ button.resButton:focus { display: flex; } -.flex .header { - padding-right: 10px; -} +/*.flex .header {*/ +/*padding-right: 10px;*/ +/*}*/ .header .fa { padding-left: 3px; @@ -90,7 +94,7 @@ button.resButton:focus { .border { flex: 1 1 auto; float: left; - margin: 10px 0 0 0; + margin: 10px 0 0 25px; border-top: 1px solid #CFCFCF; } diff --git a/projects/templates/partials/inc-projects-filter.html b/projects/templates/partials/inc-projects-filter.html index 0982a06..1c038f9 100644 --- a/projects/templates/partials/inc-projects-filter.html +++ b/projects/templates/partials/inc-projects-filter.html @@ -1,7 +1,6 @@
- {#
#}
@@ -72,8 +71,7 @@
Расширенные поля - {# style = "..." Костыль для выравнивания разделяющих линий #} -