From 92946d4ba3285aed6540958adbc4dd16b461c1bb Mon Sep 17 00:00:00 2001 From: ArturBaybulatov Date: Wed, 21 Sep 2016 22:29:10 +0300 Subject: [PATCH] Fixes --- assets/css/extra.css | 2 +- assets/index.js | 51 +++++++++++++++++-- assets/js/chat.js | 2 +- .../templates/customer_project_create.html | 6 +-- projects/templates/project_filter.html | 4 +- templates/partials/base.html | 2 +- users/templates/contractor_profile.html | 2 +- 7 files changed, 55 insertions(+), 14 deletions(-) diff --git a/assets/css/extra.css b/assets/css/extra.css index d94427c..c46e7fb 100644 --- a/assets/css/extra.css +++ b/assets/css/extra.css @@ -210,7 +210,7 @@ border-top: 1px solid black; border-bottom: 1px solid black; -webkit-transform: scale(1.03); - -moz- transform: scale(1.03); + -moz-transform: scale(1.03); transform: scale(1.03); box-shadow: 0 0 10px rgba(0,0,0,0.7); z-index: 999; diff --git a/assets/index.js b/assets/index.js index 1176f78..4301312 100644 --- a/assets/index.js +++ b/assets/index.js @@ -74,7 +74,7 @@ $('[data-tooltip]').tooltip({ var $specSelect4 = $container.find('.-spec-select-level-4').first() var specSelects = [$specSelect1, $specSelect2, $specSelect3, $specSelect4] - reinitSpecializationsByWorkType($specSelects, null) + reinitSpecializationsByWorkType($specSelect1, null, $container) var chosenSpecId = $chosenSpecId.val() @@ -88,20 +88,29 @@ $('[data-tooltip]').tooltip({ }) - function reinitSpecializationsByWorkType($specSelects, workTypeId) { + function reinitSpecializationsByWorkType($specSelect1, workTypeId, $container) { + var $chosenSpecId = $container.find('.-chosen-spec-id').first() + + var $specSelect2 = $container.find('.-spec-select-level-2').first() + var $specSelect3 = $container.find('.-spec-select-level-3').first() + var $specSelect4 = $container.find('.-spec-select-level-4').first() + var specSelects = [$specSelect1, $specSelect2, $specSelect3, $specSelect4] + $.get('/api/specializations/?parent__name=_root') .then(function(res) { var rootSpecs = res.results if (workTypeId == null) { var url = '/api/specializations/' + var specId = null } else { var rootSpec = ({1: rootSpecs[0], 2: rootSpecs[1], 3: rootSpecs[2]})[workTypeId] + var specId = rootSpec.id var url = format('/api/specializations/?lft__gte=%s&rght__lte=%s', rootSpec.lft, rootSpec.rght) } - specSelectOptions.ajax.url = url - $specSelects.select2(specSelectOptions) + $specSelect1.select2(_.merge(specSelectOptions, {ajax: {url: url}})) + updateSpecializationWidgets(specId, $container, $chosenSpecId, specSelects) }) } @@ -110,6 +119,12 @@ $('[data-tooltip]').tooltip({ function updateSpecializationWidgets(specId, $container, $chosenSpecId, specSelects) { return getSpecializationTree(specId).then(function(specs) { + var spec = specs.spec + + specSelects[1].select2(_.merge(specSelectOptions, {ajax: {url: specs.urlLevel2}})) + specSelects[2].select2(_.merge(specSelectOptions, {ajax: {url: specs.urlLevel3}})) + specSelects[3].select2(_.merge(specSelectOptions, {ajax: {url: specs.urlLevel4}})) + var specLevel1 = specs.specLevel1 var specLevel2 = specs.specLevel2 var specLevel3 = specs.specLevel3 @@ -121,10 +136,19 @@ $('[data-tooltip]').tooltip({ specSelects[3].select2('data', specLevel4 ? {id: specLevel4.id, text: specLevel4.name, origItem: specLevel4} : null) $chosenSpecId.val(specId) + + specSelects[1].select2('container').css('display', !specLevel1 || _.isEmpty(specLevel1.children) ? 'none' : 'block') + specSelects[2].select2('container').css('display', !specLevel2 || _.isEmpty(specLevel2.children) ? 'none' : 'block') + specSelects[3].select2('container').css('display', !specLevel3 || _.isEmpty(specLevel3.children) ? 'none' : 'block') }) } window.updateSpecializationWidgets = updateSpecializationWidgets + + + //function repopulateSpecializations() { + // + //} }()) @@ -676,7 +700,9 @@ function loadAllPhotos(portfIds) { function getSpecializationTree(specId) { var specs = { + spec: null, specLevel1: null, specLevel2: null, specLevel3: null, specLevel4: null, + urlLevel2: null, urlLevel3: null, urlLevel4: null, } if (specId === null) { @@ -685,7 +711,11 @@ function getSpecializationTree(specId) { return $.ajax({url: '/api/specializations/' + specId + '/', method: 'GET', dataType: 'json'}) .then(function(spec) { if (spec.level === 1) { - return _.merge(specs, {specLevel1: spec}) + return _.merge(specs, { + spec: spec, + specLevel1: spec, + urlLevel2: format('/api/specializations/?lft__gt=%s&rght__lte=%s', spec.lft, spec.rght), + }) } else if (spec.level === 2) { var specLevel2 = spec @@ -694,8 +724,11 @@ function getSpecializationTree(specId) { var specLevel1 = spec return _.merge(specs, { + spec: specLevel2, specLevel1: specLevel1, + urlLevel2: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel1.lft, specLevel1.rght), specLevel2: specLevel2, + urlLevel3: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel2.lft, specLevel2.rght), }) }) } else if (spec.level === 3) { @@ -710,9 +743,13 @@ function getSpecializationTree(specId) { var specLevel1 = spec return _.merge(specs, { + spec: specLevel3, specLevel1: specLevel1, + urlLevel2: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel1.lft, specLevel1.rght), specLevel2: specLevel2, + urlLevel3: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel2.lft, specLevel2.rght), specLevel3: specLevel3, + urlLevel4: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel3.lft, specLevel3.rght), }) }) }) @@ -732,9 +769,13 @@ function getSpecializationTree(specId) { var specLevel1 = spec return _.merge(specs, { + spec: specLevel4, specLevel1: specLevel1, + urlLevel2: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel1.lft, specLevel1.rght), specLevel2: specLevel2, + urlLevel3: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel2.lft, specLevel2.rght), specLevel3: specLevel3, + urlLevel4: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel3.lft, specLevel3.rght), specLevel4: specLevel4, }) }) diff --git a/assets/js/chat.js b/assets/js/chat.js index 06fef1f..0dbb151 100644 --- a/assets/js/chat.js +++ b/assets/js/chat.js @@ -29,7 +29,7 @@ window.confirm = function (message, callback, caption) { var SocketHandler = function () { domain = domain.replace(':' + port, ''); - var url = 'ws://' + domain + '/chat/' + userId + '/'; + var url = 'ws://' + domain + ':8888/chat/' + userId + '/'; var sock = new WebSocket(url); var intervalId; sock.onopen = function () { diff --git a/projects/templates/customer_project_create.html b/projects/templates/customer_project_create.html index 03ab236..8969777 100644 --- a/projects/templates/customer_project_create.html +++ b/projects/templates/customer_project_create.html @@ -364,7 +364,7 @@ var $radios = $radiosContainer.find('input[type=radio][name={{ form.work_type.html_name }}]') var workTypeId = Number($radios.filter(':checked').val()) || 1 - reinitSpecializationsByWorkType($specSelects, workTypeId) + reinitSpecializationsByWorkType($specSelect1, workTypeId, $specSelectContainer) var chosenSpecId = $chosenSpecId.val() @@ -373,8 +373,8 @@ $radios.on('change', function($evt) { var $that = $(this) - var workTypeId = $that.val() - reinitSpecializationsByWorkType($specSelects, workTypeId) + var workTypeId = Number($that.val()) + reinitSpecializationsByWorkType($specSelect1, workTypeId, $specSelectContainer) }) }()) diff --git a/projects/templates/project_filter.html b/projects/templates/project_filter.html index 384fe5f..686e66f 100644 --- a/projects/templates/project_filter.html +++ b/projects/templates/project_filter.html @@ -262,7 +262,7 @@ var $workTypeSelect = $('.-project-work-type-select-field').first() var workTypeId = Number($workTypeSelect.find('option:selected').first().val()) || 1 - reinitSpecializationsByWorkType($specSelects, workTypeId) + reinitSpecializationsByWorkType($specSelect1, workTypeId, $specSelectContainer) var chosenSpecId = $chosenSpecId.val() @@ -272,7 +272,7 @@ $workTypeSelect.on('change', function($evt) { var $that = $(this) var workTypeId = Number($that.val()) - reinitSpecializationsByWorkType($specSelects, workTypeId) + reinitSpecializationsByWorkType($specSelect1, workTypeId, $specSelectContainer) }) }()) diff --git a/templates/partials/base.html b/templates/partials/base.html index 9211d34..d57fb43 100644 --- a/templates/partials/base.html +++ b/templates/partials/base.html @@ -86,7 +86,7 @@ if ((queryString.indexOf('/chat') != 0) && (queryString.indexOf('/users/contractor-office/510/work-projects') != 0)) { domain = domain.replace(':' + port, ''); - var url = 'ws://' + domain + '/chat/' + userId + '/'; + var url = 'ws://' + domain + ':8888/chat/' + userId + '/'; var sock = new WebSocket(url); var intervalId; sock.onopen = function () { diff --git a/users/templates/contractor_profile.html b/users/templates/contractor_profile.html index b5519e8..813fbc6 100644 --- a/users/templates/contractor_profile.html +++ b/users/templates/contractor_profile.html @@ -1034,7 +1034,7 @@ formData.append('resume_file', e.target.files[0]); var file = e.target.files[0] - var allowedExts = ['.pdf','.doc','.docx','.xml','.odt','.uot','.dot','.rtf','.txt','.uop','.pptx','.odp','.html'] + var allowedExts = ['.pdf','.doc','.docx','.xml','.odt','.uot','.dot','.rtf','.txt','.uop','.pptx','.odp','.html','.jpg','.jpeg','.tiff','.png'] if (!_.includes(path.extname(file.name), allowedExts)) { alert('Файл не подходит. Выберите документ')