Перейти к содержимому


Скрыть доп.действие


Сообщений в теме: 26

#1 Dinara

    Активный участник

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 30 Июль 2013 - 13:25

Добрый день!
Почитала темы по доп.действию,но не нашла для себя ответа..
Есть доп. действие с id=161. Есть пользователь в системе, прописанный в одном из полей таблицы.
Как сделать,чтобы он не видел кнопку?
насколько я понимаю,кнопка скрывается кодом
document.getElementById("user_button_div_161").style.display = 'none';
document.getElementById("e_user_button_div_161").style.display = 'none';

Условие-скрыть пользователю, прописанному в поле "Менеджер СР" (тип поля-пользователь)
Куда и как это прописывается? в поле JS доп.действия?

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 30 Июль 2013 - 13:39

Цитата

в поле JS доп.действия?

Нет. В то поле, где доп.действие должно скрываться в зависимости от его значения, т.е. в "Менеджер СР". Алгоритм точно такой же как при скрытии полей (вы уже делали это), только вместо display_field - то что вы выше написали.

В доп.действии JS не для этих целей, а для вызова сообщения при нажатии на него + отмена нажатия при каком-либо условии.

#3 Dinara

    Активный участник

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 30 Июль 2013 - 14:17

function onchange_{$one_field.id}()
{
document.getElementById("user_button_div_161").style.display = 'none';
document.getElementById("e_user_button_div_161").style.display = 'none';
}
addHandler(document.getElementById('value{$one_field.id}'), 'onchange', onchange_{$one_field.id});
Так будет не правильно или правильно?
Или нужно что-то дописать еще?

#4 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 30 Июль 2013 - 14:21

Просмотр сообщенияDinara (30 Июль 2013 - 14:17) писал:

function onchange_{$one_field.id}()
{
document.getElementById("user_button_div_161").style.display = 'none';
document.getElementById("e_user_button_div_161").style.display = 'none';
}
addHandler(document.getElementById('value{$one_field.id}'), 'onchange', onchange_{$one_field.id});
Так будет не правильно или правильно?
Или нужно что-то дописать еще?
Нет. Это сработает только в случае изменения поля, в которое Вы скопировали яваскрипт.

Цитата

Есть пользователь в системе, прописанный в одном из полей таблицы.
Поле типа пользователь?

#5 Dinara

    Активный участник

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 30 Июль 2013 - 14:32

хм..В таблике есть поле типа "Пользователь", называется "Менеджер СР". Нужно,чтобы пользователь, который будет прописан в этом поле,не видел кнопку 161..как-то так получается)

#6 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 30 Июль 2013 - 14:36

Цитата

Так будет не правильно или правильно?

Не совсем, в этом случае кнопка будет скрываться при любом изменении поля "Менеджер", а вам нужно только при условии "Менеджер=текущий", в том числе просто при входе в запись, а не только во время изменения поля.

function onchange_{$one_field.id}()
{
    if (document.getElementById('value{$one_field.id}').value=={$user.id})
    { // если пользователь в поле равен текущему - скрываем
	  document.getElementById("user_button_div_161").style.display = 'none';
	  document.getElementById("e_user_button_div_161").style.display = 'none';
    }
    else
    { // иначе - отображаем
	  document.getElementById("user_button_div_161").style.display = '';
	  document.getElementById("e_user_button_div_161").style.display = '';
    }
}
// здесь задаем поведение кнопки во время изменения поля:
addHandler(document.getElementById('value{$one_field.id}'), 'onchange', onchange_{$one_field.id});
// а здесь задаем поведение кнопки при открытии страницы:
$(document).ready(onchange_{$one_field.id});


#7 Dinara

    Активный участник

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 30 Июль 2013 - 14:45

хм,может я не туда вставляю?
вот поле, куда добавляю код...
http://take.ms/DgbLTp
Вот документ, где поле менеджерСР=текущий пользователь,а кнопка видна
http://take.ms/IkRJJ4

#8 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 30 Июль 2013 - 15:10

Может ошиблись с id доп.действия? Оно точно равно "161"? Ничего не спутали?

Проверил у себя - все прекрасно работает.

#9 Dinara

    Активный участник

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 30 Июль 2013 - 15:34

доп.действие http://take.ms/1xhqk
в поле http://take.ms/Qy1F9o

#10 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 30 Июль 2013 - 15:49

Dinara, скриншоты мне мало что дают, я их и не смотрю почти. У меня код работает, значит вы где-то в другом месте ошиблись. Можете прислать заявку в техподдержку для проверки.

#11 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 31 Июль 2013 - 18:39

Посмотрел по ссылке из заявки - все у вас работает, кнопка скрывается.

#12 Dinara

    Активный участник

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 31 Июль 2013 - 19:27

эммм..смотрите,прописала пользователя "тест два" как менеджера СР, а он все видит..неужто я не туда смотрю((... http://take.ms/HB1VZ3

Сообщение отредактировал Dinara: 01 Август 2013 - 06:12


#13 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 01 Август 2013 - 08:34

Я заходил под вами (пользователь "Динара"), т.к. логин-пароль был дан только ваш. В записях, где "Менеджер СР" равен Вам, кнопки доп.действий пропадают, как и должно быть. В записях с "тест два" они естественно видны, т.к. это не текущий пользователь, в данном случае.

#14 Dinara

    Активный участник

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 01 Август 2013 - 08:42

Хм..я прописала так же для полей "Руководитель" и "Менеджер", прописала там себя-все равно вижу те,которые не нужно)не понимаю,почему не отрабатывает((
а как тогда сделать,чтобы не видел кнопки те, которые прописан в этом поле?..Тот пользователь?

#15 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 01 Август 2013 - 09:09

Просмотр сообщенияDinara (01 Август 2013 - 08:42) писал:

Хм..я прописала так же для полей "Руководитель" и "Менеджер", прописала там себя-все равно вижу те,которые не нужно)не понимаю,почему не отрабатывает((

Если вы прописали скрытие одной и той же кнопки в нескольких полях, то отрабатывать будет только код в последнем поле, т.к. действие предыдущих попросту затирается. Т.е. если к примеру, вы указаны пользователем в одном поле, а в другом (которое ниже) - нет, а на скрытие кнопки влияют оба поля, то действовать будет только последнее, и кнопка в результате не пропадет.

Просмотр сообщенияDinara (01 Август 2013 - 08:42) писал:

а как тогда сделать,чтобы не видел кнопки те, которые прописан в этом поле?..Тот пользователь?

Какой пользователь? "тест два"? Если он зайдет под собой, то скроются кнопки в тех записях, где он указан. Разумеется с учетом того, что я выше написал про влияние других полей.

#16 Dinara

    Активный участник

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 01 Август 2013 - 10:47

Ок, я сейчас оставила это условие только в одном поле "Менеджер СР", опять таки прописала там пользователя "тест два", создала новую карточку. Больше скрипта нигде нет. но он видит кнопки,не вижу только я,если буду прописана как "Менеджер СР". Вот что интересно...Почему так?

#17 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 01 Август 2013 - 10:57

А вы заходили именно под пользователем "тест два", проверяли? Уверены, что дело обстоит именно так?

#18 Dinara

    Активный участник

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 01 Август 2013 - 11:00

Да,проверяла. У меня там есть даже фильтр, где этот пользователь указан в данном поле, так что тут ошибиться вроде как не должна была.
Видимо по коду берется именно его создатель, то есть я сама, но не другой, указанный в данном поле?

#19 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 01 Август 2013 - 11:29

Просмотр сообщенияDinara (01 Август 2013 - 11:00) писал:

Видимо по коду берется именно его создатель, то есть я сама, но не другой, указанный в данном поле?

Нет, не в этом дело. Данный пользователь принадлежит к группе, у которой отключены права на редактирование, а условие в коде работает только если поле Менеджер СР открыто для редактирования (оттуда берется значение для проверки). Поэтому и не срабатывает.

#20 Dinara

    Активный участник

  • Пользователи
  • PipPipPip
  • 527 сообщений
  • Пол:Женщина
  • Город:Уфа

Отправлено 01 Август 2013 - 11:52

Вот тебе на..просто этот пользователь вообще не может ничего редактировать..значит никак не скрыть и он может нажимать на эти кнопки?..
Или может думаю тогда двойную проверку сделать при доп.действии..
У меня уже есть одна проверка (if-else) можете подскажете,как создать вторую проверку if-else в одном коде?)
Я тогда туда добавлю
if ($line['Менеджер СР']=$user['id'])
{
  echo "<script>alert('Вы не можете то-то то-то')</script>";
}

Сообщение отредактировал Dinara: 01 Август 2013 - 11:53






Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных