Перехват копирования документов

  • Автор темы doc
  • Дата начала
D

doc

Хочу обрабатывать событие копирования документов во VIEW (нажатие клавиши Ctrl + C). Где его можно перехватить и обработать?
 
O

Omh

Event QueryPasteDocument у view
Агент с Target = PastedDocuments

Я за второй вариант - ибо глобально.
 
A

Akupaka

нажатие клавиши Ctrl + C
именно это перехватить вроде как низзя, но можно запретить вообще на уровне ТУД.
см ACL privelege Replicate or copy documents
но с этой штукой надо осторожнее! т.к. много глюков бывает, о чем и на данном форуме есть разговоры.
см $KeepPrivate
 
K

KFire3

Event QueryPasteDocument у view
Агент с Target = PastedDocuments

Я за второй вариант - ибо глобально.

Это Paste перехватывает, а ему нужно Copy :) А такой возможности вроде нет.


doc, если напишете зачем вам это нужно, может подскажем самый грамотный вариант.
 
D

doc

Во общем, нужно скопированные документы несколько модифицировать (некоторые поля сбросить, создать свои документы респонсы, скопировать прикрепленный файл), чтобы они не были идентичны скопированным, а потом вставить.
Я так предполагаю, это можно обработать все и на QueryPasteDocument?
 
O

Omh

Можно и там.

Но если ты поставишь обработку на event'e view, то будет срабатывать только при пастинге в это view.
В другие - естественно нет :)

Повторюсь, но советую именно QueryPaste агента.
 
O

Omh

А перейти в другое view и нажать там Ctrl + V пользователю религия не позволит?
 
H

hosm

Omh
не, ну почему сразу религия? :) мож, чел не верит, тогда можно пожестче, например, такой вариант - в других вьюхах пишешь в событии QueryPasteDocument Continue = False, описываешь как фичу дизайна и запрещаешь всем создавать папки и вьюхи в базе.
но может, не это нужно? ;)
 
D

doc

такой вариант - в других вьюхах пишешь в событии QueryPasteDocument Continue = False,
Так и есть, во всех view стоить Continue = False.
Только в одном хочу реализовать данную опцию.
Когда пользователь нажимает Ctrl + c, что то ведь происходит? Затем хочу сбросить все галочки?
Потом необходимо выбрать другой раздел ив ставить в него Ctrl+ V. Как достать скопированные документы?
 
K

Klido

при копировании доки помещаются во временную базу ~clipbrd.ncf, она создаётся в /data, можно их там поискать :)
 
O

Omh

Кстати, точно, как на QueryPaste/PostPaste ивенте получить документы которые будут/были запащены?
Я что-то такую задачу никогда не делал, обычно только continue = False у view ставил и всё.

P.S. В QueryPaste-агенте через db.UnporocessedDocuments если что.
 
D

doc

P.S. В QueryPaste-агенте через db.UnporocessedDocuments если что.
В QueryPaste ивенте Через Source могу получить документы, на против которых стоит галка.
через db.UnporocessedDocuments не подцепляет ни одного документа.
 
O

Omh

Ну тогда я ещё в первом посте сказал: юзай агента, в жэпу ивенты view.
 
D

doc

А можно ли после копирования документов в ~clipbrd.ncf пии нажатии Ctrl + C выполнить deselectAll? Как сделать?
 
O

Omh

Вроде нету такого ивента, куда бы ты мог вписать ws.DeselectAll.
Но у тебя же по плану юзер потом в другое view переходит, не?
 
D

doc

Нет в этом же вставляет, но должен выбрать другой документ, к которому привязать скопированные документы.
 
O

Omh

Сделай кнопку:
те документы, которые отмечены галками привязываются к тому, на котором курсор :)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!