/******************************************************************************************* * Catlair JS * * Консоль управления объектами * Расширение TCatlair * * still@itserv.ru */ /** * Console * this.WinControl - контролллер оконного ифейса */ TCatlair.prototype.Console = function(APrm) { var that = this; // проверка на необходимость авторизации при вызове консоли if (APrm.Authorize) { // проверка текущего состояния авторизации that.AuthorizeStatus ( { OnUser:Start, // вызов основной функции OnGuest:function() { // вызов формы авторизации that.Authorization({OnAfterLogin:Start}); } } ); } else { /* или запуск консоли заразу без авторизации */ Start(); } /* * основное тело функции */ function Start() { if (that.ConsoleWin && that.ConsoleWin!=null) { /* Вывод окна в том случае если уже создано */ that.ConsoleWin.Maximize(); that.ConsoleWin.Active(); } else { /* Загрузка стилей */ that.StyleLoad({ID:'clWindow.css'}); that.StyleLoad({ID:'clConsole.css'}); /* Загрузка скриптов */ that.ScriptLoad({ID:'clWindow.js'}); that.ScriptLoad({ID:'RGBA.js'}); that.ScriptLoad({ID:'clDescript.js'}); that.ScriptLoad({ID:'clDescriptTree.js'}); /* Ожидание загрузки скриптов */ that.ScriptWait ( ['clWindow.js', 'RGBA.js', 'clDescript.js', 'clDescriptTree.js'], function() { if (!that.WinControl) that.WinControl = new clWinControl(); /* Создание окна */ var Console = that.WinControl.WindowCreate('Console'); Console.SetCaption('Console'); Console.SetToolbar(decodeURIComponent('%3Cdiv%20class%3D%22Group%22%3E%0D%0A%20%20%20%20%3Cdiv%20class%3D%22Caption%22%3E%0D%0A%20%20%20%20%20%20%20%20Search%0D%0A%20%20%20%20%3C%2Fdiv%3E%0D%0A%20%20%20%20%3Cdiv%20class%3D%22Contein1%22%3E%0D%0A%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22CustomInput%22%20style%3D%22%25style%25%22%3E%0D%0A%20%20%20%20%3Cinput%20class%3D%22SelectValue%22%20id%3D%22IDLang%22%20name%3D%22IDLang%22%20value%3D%22language_en%22%20type%3D%22hidden%22%20cltype%3D%22Language%22%20clbefore%3D%22%22%20clafter%3D%22%22%2F%3E%0D%0A%20%20%20%20%3Cinput%20class%3D%22SelectCaption%22%20id%3D%22CaptionIDLang%22%20name%3D%22CaptionIDLang%22%20style%3D%22width%3A100%25%3B%20height%3A100%25%3B%22%20placeholder%3D%22language%22%20%20autocomplete%3D%22off%22%2F%3E%0D%0A%20%20%20%20%20%3Cdiv%20style%3D%22display%3Anone%3B%20position%3Aabsolute%3B%20top%3A0%3B%20bottom%3A0%3B%20right%3A0%3B%20width%3A2em%3B%22%3E%0D%0A%20%20%20%20%20%20%20%20%3Cbutton%20type%3D%22button%22%20class%3D%22Unselected%20ImageZoom%22%20style%3D%22width%3A100%25%3B%20height%3A100%25%3B%20background-repeat%3Ano-repeat%3B%20background-size%3A1em%201em%3B%20background-position%3Acenter%3B%20border%3Anone%3B%20outline%3Anone%3B%22%3E%0D%0A%20%20%20%20%20%20%20%20%3C%2Fbutton%3E%0D%0A%20%20%20%20%3C%2Fdiv%3E%0D%0A%3C%2Fdiv%3E%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22CustomInput%22%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cinput%20name%3D%22Search%22%20id%3D%22Search%22%20placeholder%3D%22search%22%2F%3E%0D%0A%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0D%0A%20%20%20%20%20%20%20%20%3Cbutton%20type%3D%22button%22%20class%3D%22ImageLoad%20Unselected%22%20id%3D%22BtnFind%22%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20Search%0D%0A%20%20%20%20%20%20%20%20%3C%2Fbutton%3E%0D%0A%20%20%20%20%3C%2Fdiv%3E%0D%0A%3C%2Fdiv%3E%0D%0A%0D%0A%0D%0A%3Cdiv%20class%3D%22Group%22%3E%0D%0A%20%20%20%20%3Cdiv%20class%3D%22Caption%22%3E%0D%0A%20%20%20%20%20%20%20%20Descript%0D%0A%20%20%20%20%3C%2Fdiv%3E%0D%0A%20%20%20%20%3Cdiv%20class%3D%22Contein1%22%3E%0D%0A%20%20%20%20%20%20%20%20%3Cbutton%20type%3D%22button%22%20class%3D%22ImagePlus%20Unselected%22%20id%3D%22BtnAdd%22%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20Add%0D%0A%20%20%20%20%20%20%20%20%3C%2Fbutton%3E%0D%0A%20%20%20%20%20%20%20%20%3Clabel%20for%3D%22File%22%20class%3D%22Unselected%20Button%20ImageCD%22%20id%3D%22BtnUpload%22%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cinput%20type%3D%22file%22%20id%3D%22File%22%20style%3D%22display%3Anone%3B%20position%3Aabsolute%3B%20top%3A0%3B%20left%3A0%3B%20width%3A0%3B%20height%3A0%3B%20opacity%3A1%3B%20cursor%3Apointer%3B%22%20multiple%3D%22multiple%22%2F%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20Upload%0D%0A%20%20%20%20%20%20%20%20%3C%2Flabel%3E%0D%0A%20%20%20%20%3C%2Fdiv%3E%0D%0A%3C%2Fdiv%3E%0D%0A%0D%0A%0D%0A%0D%0A%3Cdiv%20class%3D%22Group%22%3E%0D%0A%20%20%20%20%3Cdiv%20class%3D%22Caption%22%3E%0D%0A%20%20%20%20%20%20%20%20Session%0D%0A%20%20%20%20%3C%2Fdiv%3E%0D%0A%20%20%20%20%3Cdiv%20class%3D%22Contein1%22%3E%0D%0A%20%20%20%20%20%20%20%20%3Cbutton%20type%3D%22button%22%20class%3D%22ImageMan%20Unselected%22%20onclick%3D%22cl.UserPopup()%3B%22%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20User%0D%0A%20%20%20%20%20%20%20%20%3C%2Fbutton%3E%0D%0A%20%20%20%20%20%20%20%20%3Cbutton%20type%3D%22button%22%20class%3D%22ImageLink%20Unselected%22%20onclick%3D%22cl.SessionPopup()%3B%22%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20Session%0D%0A%20%20%20%20%20%20%20%20%3C%2Fbutton%3E%0D%0A%20%20%20%20%3C%2Fdiv%3E%0D%0A%3C%2Fdiv%3E')); Console.SetContent(decodeURIComponent('%3Cform%20id%3D%22FormTree%22%3E%0D%0A%20%20%20%20%3Cdiv%20class%3D%22Console%22%3E%0D%0A%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22Tree%20UserSelectNone%22%20%20id%3D%22TreeConteiner%22%3E%0D%0A%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0D%0A%20%20%20%20%20%20%20%20%3Cdiv%20id%3D%22RecordConteiner%22%20class%3D%22RecordConteiner%22%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20id%3D%22Title%22%20class%3D%22Title%22%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20id%3D%22RecordList%22%20class%3D%22RecordList%20UserSelectNone%22%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0D%0A%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0D%0A%20%20%20%20%3C%2Fdiv%3E%0D%0A%3C%2Fform%3E%0D%0A')); Console.Icon.SetParams({Caption:'Console', Group:'Form', GUIDImage:'ooo'}); /* Создание перечня дескриптов */ Console.Descripts = new TDescripts(); Console.Descripts.RecordConteiner = Console.ChildByID('RecordList'); Console.Descripts.RecordContent = decodeURIComponent('%3Cdiv%20class%3D%22Frame%20Unselected%20Status%25FOF%25%22%20id%3D%22BtnEdit%22%20style%3D%22background-image%3Aurl(%27%3Fimage%3D%25IDImagePreview%25%26scalex%3D64%26scaley%3D64%27)%3B%22%3E%0A%20%20%20%20%3Cdiv%20class%3D%22Caption%22%3E%0A%20%20%20%20%20%20%20%20%25Caption%25%0A%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22DescriptEnabled%25Enabled%25%22%3E%0A%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22DescriptIndexate%25Indexate%25%22%3E%0A%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%3Cdiv%20class%3D%22CaptionType%22%3E%0A%20%20%20%20%20%20%20%20%25CaptionType%25%0A%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%3Cdiv%20class%3D%22ID%22%3E%0A%20%20%20%20%20%20%20%20%25ID%25%0A%20%20%20%20%3C%2Fdiv%3E%0A%3C%2Fdiv%3E%0A'); Console.Descripts.OnAfterLoadRecord = function(AConteiner) { AConteiner.onclick = function() { var Descript = new TDescript(); Descript.Edit({ID:AConteiner.Record.ID}); }; AConteiner.draggable=true; AConteiner.ondragstart = function(AEvent) { // this GLOBAL variable DragDescriptSourceConteiner = AConteiner; return true; }; }; /* Creation of the tree */ Console.DescriptTree = new TDescriptTree(); Console.DescriptTree.Tree = Console.ChildByID('TreeConteiner'); Console.DescriptTree.ConteinerContent = decodeURIComponent('%3Cdiv%20class%3D%22Set%22%3E%3Cdiv%20class%3D%22Line%22%3E%3Cdiv%20class%3D%22Expend%20Unselected%22%20id%3D%22Expend%22%3E%3C%2Fdiv%3E%3Clabel%20class%3D%22Caption%20Unselected%20Status%25FOF%25%22%20id%3D%22Caption%22%20draggable%3D%22true%22%20style%3D%22background-image%3Aurl(%27%3F%26image%3D%25IDImagePreview%25%26scalex%3D16%26scaley%3D16%27)%3B%22%3E%3Cinput%20type%3D%22radio%22%20name%3D%22Folder%22%20class%3D%22Check%22%20id%3D%22Check%22%3E%3Cspan%20class%3D%22Select%22%20id%3D%22Select%22%3E%25Caption%25%3C%2Fspan%3E%3C%2Flabel%3E%3Cbutton%20class%3D%22Options%20Unselected%22%20id%3D%22Options%22%20type%3D%22button%22%3E%3C%2Fbutton%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22Childs%22%20id%3D%22Childs%22%3E%3Cdiv%20class%3D%22BindType%20Unselected%22%20id%3D%22BindType%22%20type%3D%22button%22%3E%3Cdiv%20class%3D%22BindCaption%22%20id%3D%22BindCaption%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22ChildList%22%20id%3D%22ChildList%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fdiv%3E'); /*Обработка клика на записи*/ Console.DescriptTree.OnRecordClick = function(AConteiner) { Console.Refresh(); }; /*Поиск и обновленеи списка записей*/ Console.Refresh = function() { var IDParent = Console.DescriptTree.IDSelect; /*Построение списка*/ var Search = this.ChildByID('Search').value; this.Descripts.Load ({ Find:Search, IDLang:Console.ChildByID('IDLang').value, IDParent:IDParent, RecordCount:11, RecordCurrent:0 }); }; /*Действие на загрузку файла*/ Console.ChildByID('BtnUpload').onchange = function() { that.FilesUpload ({ Files:this.ChildByID('File'), IDParent:Console.DescriptTree.IDSelect, ID:null }); }; /*Действия ввод символов в консоль*/ Console.ChildByID('Search').onkeyup = function(AEvent) { if ( AEvent.keyCode == 13 ) Console.Refresh(); }; /*Создание дескрипта*/ Console.ChildByID('BtnAdd').onclick=function() { var IDParent = Console.DescriptTree.IDSelect; var Descript = new TDescript(); Descript.Edit({IDParent:IDParent}); }; /* обновление дескрипта */ Console.ChildByID('BtnFind').onclick=function() { Console.Refresh(); }; /*Активация всех элементов выбора окна*/ cl.SelectActivate(Console.Control); /*Активация всех элементов выбора окна*/ Console.DescriptTree.LoadRoot(Console.ChildByID('IDLang').value); } ); } } };