Авторизуйтесь или зарегистрируйтесь, чтобы создать новую тему

поиск по списку организаций с помощью TW SDK

Andrei987
4
Andrei987 17.08.2010 11:44 | #

Здравствуйте не подскажете как с помощью TW SDK сделать на странице поиск по списку организаций, на подобии того что появляется в модуле Письма. 


Заранее спасибо за ответ.

TeamWox SDK: Настройка окружения пользовательских модулей - Часть 2

Во второй части статьи вы узнаете как добавить советы по использованию вашего модуля в ротацию на главной странице TeamWox, а также как создать виджет для собственного модуля.

pvoid
132
pvoid 19.08.2010 11:21 | #

Есть два способа сделать это.

Если ваша страница создана на html основе, то вам нужно 

Включить в вашу страницу скрипт /clients/res/js/controls.js при помощи тэга

<script type="text/javascript" src="<tws:filestamp path='/clients/res/js/controls.js' />"></script> 

и вызвать функцию 

TW_ShowSelectOrg(control_id, select_func, right, filter)

которая и отобразит указанный вами диалог. Имейте ввиду что скрипт не будет доступен если модуль "Организации" не загружен.

 

Если вы используете страницы полностью построенные на JavaScript, то вам достаточно создать поле ввода организации, следующим образом

TeamWox.Control('Input','client','имя поля ввода',{объект описывающий текущего выбранного клиента}) .

Опять же в случае если модуль "Организации" не загружен, этот код не выполнит никаких операций.

Andrei987
4
Andrei987 19.08.2010 12:54 | #

Спасибо за ответ. Использую второй вариант.

Не могли бы вы дать небольшой пример что имеется в виду под {объект описывающий текущего выбранного клиента}. Мне нужно чтобы изначально поле поиска было пустым. Обычные поля ввода выводятся нормально, но при попытки дабавить ваш контрол, получаю пустой экран.



TeamWox.Control("Form",
    {
     action:"/update/<tw:info_href />",
     method:"post",
     margin:2,
     type:'fullheight',
     items:[
            [header,TeamWox.Control("Layout",{type:"table",margin:4, items: [
          
                        [
                         TeamWox.Control("Label","<lng:SUBJECT_0 />:","subject"),
                         TeamWox.Control("Input","text","company","MyCompany",{validate:TeamWox.Validator.NOT_EMPTY}),

                        ],


pvoid
132
pvoid 19.08.2010 13:11 | #

клиент описывается следующим объектом {name:'имя клиента',id:'идентификатор'}. Идентификатор попадает в последующий запрос. В случае если вам надо что бы поле ввода было пустым, просто укажите null вместо "MyCompany" или пустой объект {}

Кроме того нужно иметь ввиду что если модуль клиенты не загружен то 

TeamWox.Control('Input','client'...

вернет udefined. И нужно или корректно отработать эту ситуацию или вставлять код добавляющий поле ввода только при условии что модуль загружен.

Пример вы можете посмотреть в html представлении страницы добавления новой заявки в ServiceDesck

pvoid
132
pvoid 19.08.2010 13:17 | #
Прошу прощения, в предыдущем ответе был не точен. undefined не будет возвращен в случае неизвестного типа поля ввода. Диагностировать вашу проблему будет проще если вы приведете проблемный (желательно весь, или хотя бы часть формирования внешнего вида целиком) код сюда или по почте на адрес support@metaquotes.net
Andrei987
4
Andrei987 24.08.2010 19:06 | #
<tws:bro

wser opera="false"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
</tws:browser><html>

<head>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
   <title></title>
   <link href="<tws:filestamp path='/res/style.css' />" rel="stylesheet" type="text/css" />
   <link href="<tws:filestamp path='/board/res/css/board.css' />" rel="stylesheet" type="text/css" />
   <script type="text/javascript" src="<tws:filestamp path='/test/res/js/board.js' />"></script>
   <tws:environment />
</head>

<body style="margin:0;">
<script type="text/javascript">

  top.TeamWox.Start(window);
  //---
  var attaches,cancel,mybutton,company
  
  header = TeamWox.Control("PageHeader","#41633C").Command("<lng:MENU_BOARD_BACK />","/stest","<lng:MENU_BOARD_BACK_TOOLTIP />").Help("board/new").Search(8),
   
  submit = TeamWox.Control("Input","submit",null,"<tw:update_button />");
  
  
  //---
     cancel = TeamWox.Control("Input","button",null,"<lng:CANCEL />").Style("width","140px").Append("onclick",function () {location.href='/test/index';});
  header.Style("margin-top","2px");
     submit.Style("width","140px")
  //---
     
    TeamWox.Control("Form",
    {
     action:"/test/update/<tw:info_list_href />",
     method:"post",
     margin:2,
     type:'fullheight',
     items:[
            [header,TeamWox.Control("Layout",{type:"table",margin:4, items: [
  
           

[
                         TeamWox.Control("Label","<lng:BOARD_EDIT_SUBJECT_0 />:","subject"),
       TeamWox.Control("Input","text","company","Test company",{validate:TeamWox.Validator.NOT_EMPTY}),
                        ],

     
         [
                         TeamWox.Control("Label","<lng:BOARD_EDIT_SUBJECT_0 />:","subject"),
                         TeamWox.Control("Input","client","clientres",{}),
                        ],   
                 
      [
                         TeamWox.Control("Label","<lng:BOARD_EDIT_SUBJECT_3 />:","subject"),
       TeamWox.Control("Input","user","manager",{}).Style("width","50%"),
                        ],
     
              
     
      ]
               })
            ],
            TeamWox.Control("Input","rte","content","Your comments",{upload:"/helloworld/upload"}).Style("height","100%"),
  
            TeamWox.Control("Layout",{type:"lines",margin:5,items:[attaches,[TeamWox.Control("AttachmentsButton",attaches),submit,cancel,mybutton]]}).Style("margin","5px 0")
           ]
    }).Append("onformsend",FormSended).Append("onformsenderror",FormSendError);
 
  function FormSended(text)
    {
     TeamWox.Log(text);
     document.location = text;
    }
 
  function FormSendError(status,text)
    {
     alert(text);
    }
 
  
  //---
 
</script>
</body>
</html>

вот что получаю на выходе:


у вас есть пример в АПИ Board можете в темплейт edit.tpl добавить данный контрол для примера. Заранее спасибо.
pvoid
132
pvoid 24.08.2010 19:43 | #

То что изображено на вашем скриншоте может быть только в одном случае. Модуль "Организации" не загружен или недоступен данной учетной записи.

При этом в JavaScrip консоли броузера (FireBug для Firefox или встроенные консоли для остальных броузеров) должна быть запись

Имя файла и строка откуда оно появится будет отличатся, но сам текст останется таким же.

Andrei987
4
Andrei987 25.08.2010 14:15 | #
Да такая строчка действительно есть. Тогда вопрос как его загрузить. Все права у учетной записи есть, залогинившись нормально захожу на модуль организации, могу добавить новую и т.д. Первый описанный вами способ через html работает. Но хотелось бы чтобы заработал именно контрол.

pvoid
132
pvoid 25.08.2010 14:48 | #

В случае если модуль доступен такой проблемы быть не должно.

Данный контрол описан в файле /clients/res/js/client-info.js попробуйте убедится что на вашем сервере он есть и отдается. Также посмотрите его наличие в исходном коде основной страницы TeamWox. Имейте ввиду что упоминаемое имя файла будет содержать произвольные буквы перед расширением.

red_arm_soft
12
red_arm_soft 29.10.2011 17:41 | #

Здравствуйте!

 Не могли бы вы привести пример вызова функции TW_ShowSelectOrg? 

К списку тем  | 12

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий