remotes/origin/PR-39
ArturBaybulatov 9 years ago
parent c6afdf7454
commit 92946d4ba3
  1. 2
      assets/css/extra.css
  2. 51
      assets/index.js
  3. 2
      assets/js/chat.js
  4. 6
      projects/templates/customer_project_create.html
  5. 4
      projects/templates/project_filter.html
  6. 2
      templates/partials/base.html
  7. 2
      users/templates/contractor_profile.html

@ -210,7 +210,7 @@
border-top: 1px solid black; border-top: 1px solid black;
border-bottom: 1px solid black; border-bottom: 1px solid black;
-webkit-transform: scale(1.03); -webkit-transform: scale(1.03);
-moz- transform: scale(1.03); -moz-transform: scale(1.03);
transform: scale(1.03); transform: scale(1.03);
box-shadow: 0 0 10px rgba(0,0,0,0.7); box-shadow: 0 0 10px rgba(0,0,0,0.7);
z-index: 999; z-index: 999;

@ -74,7 +74,7 @@ $('[data-tooltip]').tooltip({
var $specSelect4 = $container.find('.-spec-select-level-4').first() var $specSelect4 = $container.find('.-spec-select-level-4').first()
var specSelects = [$specSelect1, $specSelect2, $specSelect3, $specSelect4] var specSelects = [$specSelect1, $specSelect2, $specSelect3, $specSelect4]
reinitSpecializationsByWorkType($specSelects, null) reinitSpecializationsByWorkType($specSelect1, null, $container)
var chosenSpecId = $chosenSpecId.val() 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') $.get('/api/specializations/?parent__name=_root')
.then(function(res) { .then(function(res) {
var rootSpecs = res.results var rootSpecs = res.results
if (workTypeId == null) { if (workTypeId == null) {
var url = '/api/specializations/' var url = '/api/specializations/'
var specId = null
} else { } else {
var rootSpec = ({1: rootSpecs[0], 2: rootSpecs[1], 3: rootSpecs[2]})[workTypeId] 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) var url = format('/api/specializations/?lft__gte=%s&rght__lte=%s', rootSpec.lft, rootSpec.rght)
} }
specSelectOptions.ajax.url = url $specSelect1.select2(_.merge(specSelectOptions, {ajax: {url: url}}))
$specSelects.select2(specSelectOptions) updateSpecializationWidgets(specId, $container, $chosenSpecId, specSelects)
}) })
} }
@ -110,6 +119,12 @@ $('[data-tooltip]').tooltip({
function updateSpecializationWidgets(specId, $container, $chosenSpecId, specSelects) { function updateSpecializationWidgets(specId, $container, $chosenSpecId, specSelects) {
return getSpecializationTree(specId).then(function(specs) { 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 specLevel1 = specs.specLevel1
var specLevel2 = specs.specLevel2 var specLevel2 = specs.specLevel2
var specLevel3 = specs.specLevel3 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) specSelects[3].select2('data', specLevel4 ? {id: specLevel4.id, text: specLevel4.name, origItem: specLevel4} : null)
$chosenSpecId.val(specId) $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 window.updateSpecializationWidgets = updateSpecializationWidgets
//function repopulateSpecializations() {
//
//}
}()) }())
@ -676,7 +700,9 @@ function loadAllPhotos(portfIds) {
function getSpecializationTree(specId) { function getSpecializationTree(specId) {
var specs = { var specs = {
spec: null,
specLevel1: null, specLevel2: null, specLevel3: null, specLevel4: null, specLevel1: null, specLevel2: null, specLevel3: null, specLevel4: null,
urlLevel2: null, urlLevel3: null, urlLevel4: null,
} }
if (specId === null) { if (specId === null) {
@ -685,7 +711,11 @@ function getSpecializationTree(specId) {
return $.ajax({url: '/api/specializations/' + specId + '/', method: 'GET', dataType: 'json'}) return $.ajax({url: '/api/specializations/' + specId + '/', method: 'GET', dataType: 'json'})
.then(function(spec) { .then(function(spec) {
if (spec.level === 1) { 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) { } else if (spec.level === 2) {
var specLevel2 = spec var specLevel2 = spec
@ -694,8 +724,11 @@ function getSpecializationTree(specId) {
var specLevel1 = spec var specLevel1 = spec
return _.merge(specs, { return _.merge(specs, {
spec: specLevel2,
specLevel1: specLevel1, specLevel1: specLevel1,
urlLevel2: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel1.lft, specLevel1.rght),
specLevel2: specLevel2, specLevel2: specLevel2,
urlLevel3: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel2.lft, specLevel2.rght),
}) })
}) })
} else if (spec.level === 3) { } else if (spec.level === 3) {
@ -710,9 +743,13 @@ function getSpecializationTree(specId) {
var specLevel1 = spec var specLevel1 = spec
return _.merge(specs, { return _.merge(specs, {
spec: specLevel3,
specLevel1: specLevel1, specLevel1: specLevel1,
urlLevel2: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel1.lft, specLevel1.rght),
specLevel2: specLevel2, specLevel2: specLevel2,
urlLevel3: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel2.lft, specLevel2.rght),
specLevel3: specLevel3, 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 var specLevel1 = spec
return _.merge(specs, { return _.merge(specs, {
spec: specLevel4,
specLevel1: specLevel1, specLevel1: specLevel1,
urlLevel2: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel1.lft, specLevel1.rght),
specLevel2: specLevel2, specLevel2: specLevel2,
urlLevel3: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel2.lft, specLevel2.rght),
specLevel3: specLevel3, specLevel3: specLevel3,
urlLevel4: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel3.lft, specLevel3.rght),
specLevel4: specLevel4, specLevel4: specLevel4,
}) })
}) })

@ -29,7 +29,7 @@ window.confirm = function (message, callback, caption) {
var SocketHandler = function () { var SocketHandler = function () {
domain = domain.replace(':' + port, ''); domain = domain.replace(':' + port, '');
var url = 'ws://' + domain + '/chat/' + userId + '/'; var url = 'ws://' + domain + ':8888/chat/' + userId + '/';
var sock = new WebSocket(url); var sock = new WebSocket(url);
var intervalId; var intervalId;
sock.onopen = function () { sock.onopen = function () {

@ -364,7 +364,7 @@
var $radios = $radiosContainer.find('input[type=radio][name={{ form.work_type.html_name }}]') var $radios = $radiosContainer.find('input[type=radio][name={{ form.work_type.html_name }}]')
var workTypeId = Number($radios.filter(':checked').val()) || 1 var workTypeId = Number($radios.filter(':checked').val()) || 1
reinitSpecializationsByWorkType($specSelects, workTypeId) reinitSpecializationsByWorkType($specSelect1, workTypeId, $specSelectContainer)
var chosenSpecId = $chosenSpecId.val() var chosenSpecId = $chosenSpecId.val()
@ -373,8 +373,8 @@
$radios.on('change', function($evt) { $radios.on('change', function($evt) {
var $that = $(this) var $that = $(this)
var workTypeId = $that.val() var workTypeId = Number($that.val())
reinitSpecializationsByWorkType($specSelects, workTypeId) reinitSpecializationsByWorkType($specSelect1, workTypeId, $specSelectContainer)
}) })
}()) }())
</script> </script>

@ -262,7 +262,7 @@
var $workTypeSelect = $('.-project-work-type-select-field').first() var $workTypeSelect = $('.-project-work-type-select-field').first()
var workTypeId = Number($workTypeSelect.find('option:selected').first().val()) || 1 var workTypeId = Number($workTypeSelect.find('option:selected').first().val()) || 1
reinitSpecializationsByWorkType($specSelects, workTypeId) reinitSpecializationsByWorkType($specSelect1, workTypeId, $specSelectContainer)
var chosenSpecId = $chosenSpecId.val() var chosenSpecId = $chosenSpecId.val()
@ -272,7 +272,7 @@
$workTypeSelect.on('change', function($evt) { $workTypeSelect.on('change', function($evt) {
var $that = $(this) var $that = $(this)
var workTypeId = Number($that.val()) var workTypeId = Number($that.val())
reinitSpecializationsByWorkType($specSelects, workTypeId) reinitSpecializationsByWorkType($specSelect1, workTypeId, $specSelectContainer)
}) })
}()) }())
</script> </script>

@ -86,7 +86,7 @@
if ((queryString.indexOf('/chat') != 0) && (queryString.indexOf('/users/contractor-office/510/work-projects') != 0)) { if ((queryString.indexOf('/chat') != 0) && (queryString.indexOf('/users/contractor-office/510/work-projects') != 0)) {
domain = domain.replace(':' + port, ''); domain = domain.replace(':' + port, '');
var url = 'ws://' + domain + '/chat/' + userId + '/'; var url = 'ws://' + domain + ':8888/chat/' + userId + '/';
var sock = new WebSocket(url); var sock = new WebSocket(url);
var intervalId; var intervalId;
sock.onopen = function () { sock.onopen = function () {

@ -1034,7 +1034,7 @@
formData.append('resume_file', e.target.files[0]); formData.append('resume_file', e.target.files[0]);
var 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)) { if (!_.includes(path.extname(file.name), allowedExts)) {
alert('Файл не подходит. Выберите документ') alert('Файл не подходит. Выберите документ')

Loading…
Cancel
Save