You can subscribe to this list here.
2003 |
Jan
(69) |
Feb
(122) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
|
Feb
|
Mar
(56) |
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(237) |
Jul
|
Aug
|
Sep
(1) |
Oct
(14) |
Nov
(72) |
Dec
|
2007 |
Jan
(2) |
Feb
(37) |
Mar
(5) |
Apr
|
May
(2) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Andrey C. <sku...@us...> - 2006-11-08 09:42:48
|
Update of /cvsroot/eas-dev/eas/po In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv11946/po Modified Files: eas.pot ru.po Log Message: Update documentation Index: eas.pot =================================================================== RCS file: /cvsroot/eas-dev/eas/po/eas.pot,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- eas.pot 3 Nov 2006 16:12:08 -0000 1.1 +++ eas.pot 8 Nov 2006 09:42:36 -0000 1.2 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2006-11-03 07:29+0300\n" +"POT-Creation-Date: 2006-11-08 12:41+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL...@li...>\n" @@ -16,28 +16,6 @@ "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: libeas/uimanager.prg:320 -msgid "Document was changed" -msgstr "" - -#: libeas/uimanager.prg:321 -msgid "" -"There are unsaved changes in current document.&\n" -"Save changes?" -msgstr "" - -#: libeas/uimanager.prg:322 -msgid "'&Save','&Discard','&Cancel'" -msgstr "" - -#: libeas/uimanager.prg:338 -msgid "Error" -msgstr "" - -#: libeas/uimanager.prg:338 -msgid "Error saving document!" -msgstr "" - #: client/main.prg:147 client/main.prg:181 client/main.prg:201 msgid "ERROR" msgstr "" @@ -166,3 +144,25 @@ #: client/main.prg:392 msgid "&Close" msgstr "" + +#: libeas/uimanager.prg:320 +msgid "Document was changed" +msgstr "" + +#: libeas/uimanager.prg:321 +msgid "" +"There are unsaved changes in current document.&\n" +"Save changes?" +msgstr "" + +#: libeas/uimanager.prg:322 +msgid "'&Save','&Discard','&Cancel'" +msgstr "" + +#: libeas/uimanager.prg:338 +msgid "Error" +msgstr "" + +#: libeas/uimanager.prg:338 +msgid "Error saving document!" +msgstr "" Index: ru.po =================================================================== RCS file: /cvsroot/eas-dev/eas/po/ru.po,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ru.po 3 Nov 2006 16:12:08 -0000 1.1 +++ ru.po 8 Nov 2006 09:42:37 -0000 1.2 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: ru\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2006-11-03 07:29+0300\n" +"POT-Creation-Date: 2006-11-08 12:41+0300\n" "PO-Revision-Date: 2006-11-02 14:13+0300\n" "Last-Translator: Andrey Cherepanov <sib...@ma...>\n" "Language-Team: Russian <kde...@li...>\n" @@ -17,30 +17,6 @@ "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: libeas/uimanager.prg:320 -msgid "Document was changed" -msgstr "äÏËÕÍÅÎÔ ÉÚÍÅΣÎ" - -#: libeas/uimanager.prg:321 -msgid "" -"There are unsaved changes in current document.&\n" -"Save changes?" -msgstr "" -"÷ ÄÏËÕÍÅÎÔÅ ÅÓÔØ ÎÅÓÏÈÒÁΣÎÎÙÅ ÉÚÍÅÎÅÎÉÑ.&\n" -"óÏÈÒÁÎÉÔØ ÄÏËÕÍÅÎÔ?" - -#: libeas/uimanager.prg:322 -msgid "'&Save','&Discard','&Cancel'" -msgstr "'&óÏÈÒÁÎÉÔØ','&ïÔËÌÏÎÉÔØ','&ïÔÍÅÎÁ'" - -#: libeas/uimanager.prg:338 -msgid "Error" -msgstr "ïÛÉÂËÁ" - -#: libeas/uimanager.prg:338 -msgid "Error saving document!" -msgstr "ïÛÉÂËÁ ÓÏÈÒÁÎÅÎÉÑ ÄÏËÕÍÅÎÔÁ!" - #: client/main.prg:147 client/main.prg:181 client/main.prg:201 msgid "ERROR" msgstr "ïûéâëá" @@ -179,3 +155,27 @@ #: client/main.prg:392 msgid "&Close" msgstr "&úÁËÒÙÔØ" + +#: libeas/uimanager.prg:320 +msgid "Document was changed" +msgstr "äÏËÕÍÅÎÔ ÉÚÍÅΣÎ" + +#: libeas/uimanager.prg:321 +msgid "" +"There are unsaved changes in current document.&\n" +"Save changes?" +msgstr "" +"÷ ÄÏËÕÍÅÎÔÅ ÅÓÔØ ÎÅÓÏÈÒÁΣÎÎÙÅ ÉÚÍÅÎÅÎÉÑ.&\n" +"óÏÈÒÁÎÉÔØ ÄÏËÕÍÅÎÔ?" + +#: libeas/uimanager.prg:322 +msgid "'&Save','&Discard','&Cancel'" +msgstr "'&óÏÈÒÁÎÉÔØ','&ïÔËÌÏÎÉÔØ','&ïÔÍÅÎÁ'" + +#: libeas/uimanager.prg:338 +msgid "Error" +msgstr "ïÛÉÂËÁ" + +#: libeas/uimanager.prg:338 +msgid "Error saving document!" +msgstr "ïÛÉÂËÁ ÓÏÈÒÁÎÅÎÉÑ ÄÏËÕÍÅÎÔÁ!" |
From: Andrey C. <sku...@us...> - 2006-11-03 16:32:38
|
Update of /cvsroot/eas-dev/ocmng/components/ocmng In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv6950/ocmng Modified Files: ETC01.xml component.xml Log Message: Move all components to top level. Remove ocmng and xml2xmo sources. Add components: - dbconsole - form_menu, form_action and form_localization for menu generation - update form component for generation menu Index: ETC01.xml =================================================================== RCS file: /cvsroot/eas-dev/ocmng/components/ocmng/ETC01.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ETC01.xml 2 Jun 2006 14:44:46 -0000 1.1 +++ ETC01.xml 3 Nov 2006 16:32:02 -0000 1.2 @@ -17,6 +17,7 @@ <meta dictionary="ETC01" rules="appendOnly"> <extent name="component">Component data</extent> + <extent name="form">Interface form data</extent> </meta> </component> Index: component.xml =================================================================== RCS file: /cvsroot/eas-dev/ocmng/components/ocmng/component.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- component.xml 6 Jun 2006 13:30:55 -0000 1.3 +++ component.xml 3 Nov 2006 16:32:02 -0000 1.4 @@ -18,7 +18,7 @@ <dependence type="component">category.xml</dependence> </requires> - <meta dictionary="ETC01"> + <meta dictionary="ETC01" rules="appendOnly"> <!-- mng_component --> <attribute name="component_name" |
From: Andrey C. <sku...@us...> - 2006-11-03 16:32:33
|
Update of /cvsroot/eas-dev/ocmng In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv6950 Modified Files: Makefile Added Files: ALL.xml README component.dtd Removed Files: _a1 _a2 _test1.xml cleanxmo.sh funcs_a.prg funcs_c.prg funcs_d.prg funcs_i.prg funcs_i.prg.1 funcs_s.prg ocmng.ch ocmng.prg ocmng_compil.prg ocmng_dump.prg ocmng_install.prg xml2xmo.prg Log Message: Move all components to top level. Remove ocmng and xml2xmo sources. Add components: - dbconsole - form_menu, form_action and form_localization for menu generation - update form component for generation menu --- NEW FILE: ALL.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <requires> <dependence type="component">CORE/ALL.xml</dependence> <dependence type="component">ocmng/ALL.xml</dependence> <dependence type="component">r2d2/ALL.xml</dependence> <dependence type="component">ref1/ALL.xml</dependence> <dependence type="component">ref2/ALL.xml</dependence> <dependence type="component">employee/ALL.xml</dependence> <dependence type="component">equipment/ALL.xml</dependence> <dependence type="component">acc-kernel/ALL.xml</dependence> <dependence type="component">acc-pdoc/ALL.xml</dependence> </requires> <files> <file name="README" type="text/text">Readme</file> </files> </component> --- NEW FILE: README --- (This appears to be a binary file; contents omitted.) --- NEW FILE: component.dtd --- <!-- DTD for CLIP component format Version: 1.0rc Date: 06 Apr 2006 Author: Andrey Cherepanov <sib...@ma...> Last version: http://eas.lrn.ru/dtd/component.dtd For check component XML type: xmllint -noout -dtdvalid component.dtd <component.xml> (replace '-' by double '-') --> <!-- Root tag --> <!ELEMENT component ( name, category*, version, description?, license?, created?, modified?, author*, property*, requires?, files?, dictionary?, meta*, data*, install?, uninstall?, locale* )* > <!-- Component name. Required. --> <!ELEMENT name (#PCDATA)> <!-- Component category (path delimited by '/': Base/Directories/Finance). Optional. --> <!ELEMENT category (#PCDATA)> <!-- Component brief description. Optional. --> <!ELEMENT description (#PCDATA)> <!-- Component version. Required. --> <!ELEMENT version (#PCDATA)> <!-- Component license. Optional. --> <!ELEMENT license (#PCDATA)> <!-- Component creation date (yyyy-mm-dd). Optional. --> <!ELEMENT created (#PCDATA)> <!-- Component modification date (yyyy-mm-dd). Optional. --> <!ELEMENT modified (#PCDATA)> <!-- Component author. Optional. --> <!ELEMENT author (#PCDATA|name|email|copyright)*> <!ELEMENT email (#PCDATA)> <!ELEMENT copyright (#PCDATA)> <!-- Custom property. Optional. --> <!ELEMENT property (#PCDATA)> <!ATTLIST property name CDATA #REQUIRED > <!-- Component requirements. Optional. --> <!ELEMENT requires (dependence*)> <!ELEMENT dependence (#PCDATA)> <!ATTLIST dependence type CDATA #REQUIRED version CDATA #IMPLIED > <!ELEMENT function (#PCDATA)> <!-- Component files. Optional. --> <!ELEMENT files (file*)> <!ELEMENT file (#PCDATA)> <!ATTLIST file name CDATA #REQUIRED form CDATA #IMPLIED type CDATA #IMPLIED > <!-- Dictionary --> <!ELEMENT dictionary ( id, name, type?, path, dbUser? )> <!ELEMENT id (#PCDATA)> <!ELEMENT type (#PCDATA)> <!ELEMENT path (#PCDATA)> <!ELEMENT dbUser (#PCDATA)> <!-- Database structure and data. Optional. --> <!ELEMENT meta ( depository| extent| attribute| index| class| counter| tcolumn| tview| report| plugin| user| group)*> <!ATTLIST meta dictionary CDATA #REQUIRED > <!-- Depository --> <!ELEMENT depository (#PCDATA)> <!ATTLIST depository id ID #IMPLIED name CDATA #REQUIRED number CDATA #IMPLIED memoSize CDATA #IMPLIED > <!-- Extent --> <!ELEMENT extent (#PCDATA)> <!ATTLIST extent id ID #IMPLIED name CDATA #REQUIRED > <!-- Attribute --> <!ELEMENT attribute (#PCDATA)> <!ATTLIST attribute id ID #IMPLIED name CDATA #REQUIRED type (string|number|date|logical|text|object|any|ref|classref|array|code) #REQUIRED len CDATA #IMPLIED dec CDATA #IMPLIED lenType (ignore|rtrim|alltrim|fill) #IMPLIED refTo CDATA #IMPLIED defValue CDATA #IMPLIED counter CDATA #IMPLIED notNull (yes|no|true|false) #IMPLIED notEmpty (yes|no|true|false) #IMPLIED mask CDATA #IMPLIED source CDATA #IMPLIED code CDATA #IMPLIED count CDATA #IMPLIED > <!-- Index --> <!ELEMENT index (#PCDATA)> <!ATTLIST index id ID #IMPLIED name CDATA #REQUIRED expression CDATA #REQUIRED > <!-- Class --> <!ELEMENT class (#PCDATA|object)*> <!ATTLIST class id ID #IMPLIED name CDATA #REQUIRED superClass CDATA #IMPLIED extent CDATA #IMPLIED essence CDATA #IMPLIED expression CDATA #IMPLIED uniqueKey CDATA #IMPLIED logNeed (yes|no|true|false) #IMPLIED hasCounters (yes|no|true|false) #IMPLIED attributes CDATA #IMPLIED indices CDATA #IMPLIED > <!-- Counter --> <!ELEMENT counter (#PCDATA)> <!ATTLIST counter id ID #IMPLIED name CDATA #REQUIRED value CDATA #REQUIRED type CDATA #IMPLIED depository CDATA #IMPLIED maxValue CDATA #IMPLIED lastValue CDATA #IMPLIED > <!-- TColumn --> <!ELEMENT tcolumn (#PCDATA)> <!ATTLIST tcolumn id ID #IMPLIED name CDATA #REQUIRED header CDATA #IMPLIED footer CDATA #IMPLIED width CDATA #IMPLIED expression CDATA #IMPLIED depend CDATA #IMPLIED ref CDATA #IMPLIED > <!-- TView --> <!ELEMENT tview (#PCDATA)> <!ATTLIST tview id ID #IMPLIED name CDATA #REQUIRED class CDATA #IMPLIED extent CDATA #IMPLIED group CDATA #IMPLIED user CDATA #IMPLIED header CDATA #IMPLIED footer CDATA #IMPLIED columns CDATA #IMPLIED > <!-- Report--> <!ELEMENT report (#PCDATA)> <!ATTLIST report id ID #IMPLIED name CDATA #REQUIRED type CDATA #IMPLIED file CDATA #IMPLIED class CDATA #IMPLIED extent CDATA #IMPLIED group CDATA #IMPLIED user CDATA #IMPLIED > <!-- Plugin --> <!ELEMENT plugin (#PCDATA)> <!ATTLIST plugin id ID #IMPLIED name CDATA #REQUIRED class CDATA #IMPLIED type CDATA #IMPLIED file CDATA #IMPLIED function CDATA #IMPLIED > <!-- User --> <!ELEMENT user (#PCDATA)> <!ATTLIST user id ID #IMPLIED name CDATA #REQUIRED group CDATA #IMPLIED access CDATA #IMPLIED > <!-- Group --> <!ELEMENT group (#PCDATA)> <!ATTLIST group id ID #IMPLIED name CDATA #REQUIRED > <!-- Default data --> <!ELEMENT data ( objects* )> <!ELEMENT objects (object+)> <!ATTLIST objects class CDATA #REQUIRED depository CDATA #REQUIRED > <!-- Object contents --> <!ELEMENT object (attr+)> <!ATTLIST object id ID #IMPLIED > <!ELEMENT attr (#PCDATA|value)*> <!ATTLIST attr name CDATA #REQUIRED refTo CDATA #IMPLIED > <!ELEMENT value (#PCDATA|value)*> <!ATTLIST value type (string|number|date|logical|text|object|any|ref|classref|array|code) #REQUIRED refTo CDATA #IMPLIED meta CDATA #IMPLIED > <!-- Install actions. Optional. --> <!ELEMENT install (#PCDATA)> <!-- Uninstall actions. Optional. --> <!ELEMENT uninstall (#PCDATA)> <!-- Component l10n. Optional. --> <!ELEMENT locale (name?, description?, message*)> <!ATTLIST locale lang CDATA #REQUIRED > <!ELEMENT message (#PCDATA)> <!ATTLIST message id CDATA #REQUIRED > Index: Makefile =================================================================== RCS file: /cvsroot/eas-dev/ocmng/Makefile,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Makefile 21 Jun 2006 07:53:05 -0000 1.3 +++ Makefile 3 Nov 2006 16:31:53 -0000 1.4 @@ -3,46 +3,20 @@ endif CLIP = $(CLIPROOT)/bin/clip CLIPFLAGS = -alwO -CLIPLIBS = -lclip-codb -OBJS = funcs_a.o funcs_c.o funcs_d.o funcs_i.o -INCS = funcs_s.prg ocmng.ch -PROGS = ocmng$(EXESUFF) xml2xmo$(EXESUFF) -#PROGS = ocmng_compil$(EXESUFF) ocmng_dump$(EXESUFF) ocmng_install$(EXESUFF) ocmng$(EXESUFF) -PODIRS = components/ocmng +PODIRS = EAS PACKAGE= ocmng .SUFFIXES: .prg .o .po -all: $(OBJS) $(PROGS) +all: for dir in $(PODIRS);do cd $$dir && make;done - ./xml2xmo components + xml2xmo . clean: - rm -f $(PROGS) *.so *.ex *.nm *.uri *.c *.s *.o *.a *.po *.log *.pa *.b *.BAK *.bak *~ core* *core for dir in $(PODIRS);do cd $$dir && make clean;done - ./cleanxmo.sh - -ocmng_compil$(EXESUFF): ocmng_compil.prg $(OBJS) $(INCS) - $(CLIP) $(CLIPFLAGS) -esM ocmng_compil.prg $(OBJS) $(CLIPLIBS) - -ocmng_install$(EXESUFF): ocmng_install.prg $(OBJS) $(INCS) - $(CLIP) $(CLIPFLAGS) -esM ocmng_install.prg $(OBJS) $(CLIPLIBS) - -ocmng_dump$(EXESUFF): ocmng_dump.prg $(OBJS) $(INCS) - $(CLIP) $(CLIPFLAGS) -esM ocmng_dump.prg $(OBJS) $(CLIPLIBS) - -ocmng$(EXESUFF): ocmng.prg $(OBJS) $(INCS) - $(CLIP) $(CLIPFLAGS) -esM ocmng.prg $(OBJS) $(CLIPLIBS) - -xml2xmo$(EXESUFF): xml2xmo.prg $(OBJS) $(INCS) - $(CLIP) $(CLIPFLAGS) -esM xml2xmo.prg $(OBJS) $(CLIPLIBS) + cleanxmo.sh install: - cp $(PROGS) $(DESTDIR)$(CLIPROOT)/bin dist: clean @cd .. && tar cvzf $(PACKAGE)-`date +%Y%m%d | tr -d '\n'`.tar.gz `find $(PACKAGE) ! -type d | grep -v CVS` - -.prg.o: - $(CLIP) $(CLIPFLAGS) $< - --- _a1 DELETED --- --- _a2 DELETED --- --- _test1.xml DELETED --- --- cleanxmo.sh DELETED --- --- funcs_a.prg DELETED --- --- funcs_c.prg DELETED --- --- funcs_d.prg DELETED --- --- funcs_i.prg DELETED --- --- funcs_i.prg.1 DELETED --- --- funcs_s.prg DELETED --- --- ocmng.ch DELETED --- --- ocmng.prg DELETED --- --- ocmng_compil.prg DELETED --- --- ocmng_dump.prg DELETED --- --- ocmng_install.prg DELETED --- --- xml2xmo.prg DELETED --- |
From: Andrey C. <sku...@us...> - 2006-11-03 16:32:33
|
Update of /cvsroot/eas-dev/ocmng/configs In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv6950/configs Added Files: ocmng.xml Log Message: Move all components to top level. Remove ocmng and xml2xmo sources. Add components: - dbconsole - form_menu, form_action and form_localization for menu generation - update form component for generation menu --- NEW FILE: ocmng.xml --- <?xml version="1.0" encoding="koi8-r" standalone="no" ?> <component> <name>config-ocmng</name> <category>CORE/configs</category> <version>0.1</version> <description>Components manager</description> <license>GNU/GPL</license> <created>2006-04-24</created> <modified>2006-05-19</modified> <author>Uri</author> <requires> <dependence type="component">../ocmng/ALL.xml</dependence> </requires> </component> |
From: Andrey C. <sku...@us...> - 2006-11-03 16:32:19
|
Update of /cvsroot/eas-dev/ocmng/EAS/forms In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv6950/EAS/forms Added Files: create.xpm delete.xpm edit.xpm form.prg form.xml form_action.xml form_localization.xml form_menu.prg form_menu.xml form_service.xml Log Message: Move all components to top level. Remove ocmng and xml2xmo sources. Add components: - dbconsole - form_menu, form_action and form_localization for menu generation - update form component for generation menu --- NEW FILE: create.xpm --- /* XPM */ static char * item_new_xpm[] = { "16 16 31 1", " c None", ". c #6238B6", "+ c #F5E15E", "@ c #183196", "# c #A29EF6", "$ c #C0C000", "% c #152C89", "& c #173093", "* c #000000", "= c #5933A6", "- c #FFFF85", "; c #968200", "> c #FFFFFF", ", c #E1E1E1", "' c #CECECE", ") c #FFFFC0", "! c #FFFF00", "~ c #777777", "{ c #5B5B5B", "] c #C1C1C1", "^ c #010101", "/ c #CDCDCD", "( c #6D6D6D", "_ c #3F3F3F", ": c #E9E9E9", "< c #4A4A4A", "[ c #5F5F5F", "} c #5C5C5C", "| c #838383", "1 c #FAFAFA", "2 c #F9F9F9", " ", " ", " ", " ........... ", " .+@##@@$%&$**$ ", " .......=-;-;-* ", " .>>>>>,';)!);* ", " .>~~~>{$-!>!-$ ", " .>>>>>,];)!);* ", " .>^^^^^*-;-;-* ", " .>^>>>>$/($_*$ ", " ..^>~~~:<[}|* ", " ^>>>>1:12:* ", " ^^^^^^^^^^^ ", " ", " "}; --- NEW FILE: delete.xpm --- /* XPM */ static char * item_delete_xpm[] = { "16 16 25 1", " c None", ". c #6238B6", "+ c #F5E15E", "@ c #183196", "# c #A29EF6", "$ c #382069", "% c #C91B33", "& c #43267D", "* c #6036B2", "= c #FFFFFF", "- c #3C2270", "; c #777777", "> c #525252", ", c #000000", "' c #FAFAFA", ") c #9D9D9D", "! c #010101", "~ c #3F3F3F", "{ c #E9E9E9", "] c #202020", "^ c #303030", "/ c #B1B1B1", "( c #CDCDCD", "_ c #838383", ": c #F4F4F4", " ", " ", " ", " ........... ", " .+@##@@@@@. ", " .......$%&* % ", " .======%%%-%%% ", " .=;;;=;>%%%%%, ", " .======')%%%,, ", " .=!!!!!!%%%%% ", " .=!====%%%~%%% ", " ..!=;;;{%]^/%, ", " !===='(_(:, ", " !!!!!!,,,!, ", " ", " "}; --- NEW FILE: edit.xpm --- /* XPM */ static char * edit_xpm[] = { "16 16 19 1", " c None", ". c #6238B6", "+ c #7F4978", "@ c #F5E15E", "# c #183196", "$ c #A29EF6", "% c #FFA1F3", "& c #FFFFFF", "* c #000000", "= c #777777", "- c #010101", "; c #ADADAD", "> c #FBFBFB", ", c #010000", "' c #707070", ") c #494949", "! c #5B5B5B", "~ c #545454", "{ c #F9F9F9", " ", " ", " ", " ........... + ", " .@#$$#####.+%+ ", " ..........+%+%+", " .&&&&&&&&+%+%+*", " .&===&==+%+%+* ", " .&&&&&&+++%+* ", " .&----*;>++** ", " .&-&&&;,'+);* ", " ..-&==,'!~'&* ", " -&&&&&&&&{- ", " ----****--- ", " ", " "}; --- NEW FILE: form.prg --- /*-------------------------------------------------------------------------*/ /* E/AS Component (part of E/AS project) */ /* */ /* Copyright (C) 2005 by E/AS Software Foundation */ /* Author: Andrey Cherepanov <sk...@ea...> */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as */ /* published by the Free Software Foundation; either version 2 of the */ /* License, or (at your option) any later version. */ /*-------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------/ / / / Name: UI form center / / System name: form / / Description: Get UI form for object / / Version: 0.1 / / Author: Andrey Cherepanov <sk...@ea...> / / / / Available commands: / / GET Get form content / / <name> form name / / [<type>] type of form (optional) / / object get the XFL form for edit object content / / list get the XFL form with list of objects / / select get the XFL form for select object from list / / print_object get the XPL card for object / / print_list get the XPL form for print object list / / / / GETVIEW Get object with view (object list) / / <name> view name / / / /--------------------------------------------------------------------------*/ /** Component: form */ #define DEFAULT_TITLE_MAIN_WINDOW 'E/AS' #define DEFAULT_FORM_DB 'ETC0101' #define DEFAULT_FORM_CLASS 'mng_form' #define DEFAULT_ENCODING 'koi8-r' parameters cMethod, params local cContent:='' local oErr, i, err:='', view eDebug(12, "FORM method:", cMethod) oErr := ErrorBlock({|e| break(e) }) begin sequence /*=========================================================================*/ // GET() if lower(cMethod) == 'get' if assertParameters( params, { 'name:C' } ) return NIL endif eDebug(15, "FORM args:", params) // Check if form exist in database and return it if (cContent:=get_StoredForm(params)) != NIL return cContent else cContent := '' endif if 'TYPE' $ params if params:type == 'list' cContent := get_UIList(params) elseif params:type == 'object' cContent := get_UIObject(params) endif else if params:name == 'main' cContent := get_MainForm(params) else eDebug(5, "FORM: Unknown file:", params:name) // TODO: dialog box for unknown form cContent := NIL endif endif return cContent /*=========================================================================*/ // GETVIEW() elseif lower(cMethod) == 'getview' view := get_View(params) eDebug( 17, "FORM.getView:", view:data ) return view else eDebug(3, "FORM has not method '"+cMethod+"'") endif recover using oErr i := 1 while ( !empty(ProcName(i)) ) err += "Called from "+allTrim(ProcName(i)) + ; ":" + alltrim(str(ProcLine(i))) + chr(10) i++ end eDebug(5, "FORM component internal error:", errorMessage(oErr)) return NIL end sequence return NIL /* Generate main window */ static function get_MainForm(params) local f:='', title:=DEFAULT_TITLE_MAIN_WINDOW, l, i, ent, aIgnoreClasses local deps, edep, dep, list_all:={}, m title += " " + EASGetVersion() f := '<?xml version="1.0" encoding="'+DEFAULT_ENCODING+'" ?>&\n' + ; '<!-- Main window interface form -->&\n' + ; '<!-- Web: http://eas.lrn.ru -->&\n&\n' + ; ; '<form>&\n' + ; '<head>&\n' + ; '</head>&\n' + ; '<interface>&\n' + ; '<widget class="mainWindow" name="mainWindow" label="'+title+'">&\n&\n' + ; ; ' <!-- Menu -->&\n' m := lcomponent('form_menu', 'generate') if valtype(m) == 'C' // Generate menu from component form_menu f += m else // Generate from available class names f += '<widget class="menuBar">&\n' f += ' <widget class="popupMenu" name="file_menu" label="&Databases">&\n' + ; ' <msg lang="ru" id="&Databases" value="&äÁÎÎÙÅ" />&\n' // Show classes aIgnoreClasses := { "void" } // TODO: get from configuration file deps := lquery(params, 'show databases') asort(deps,,,{|a,b| a[1] < b[1]}) for edep in deps dep := edep[1] params:db := dep l := lquery(params, 'show classes') i := 1 while i <= len(l) if ascan(aIgnoreClasses, lower(l[i][2])) != 0 adel( l, i ) asize( l, len(l)-1 ) endif i++ enddo eDebug(12, 'FORM', dep, ':', len(l), 'class(es)' ) if len(l) == 0 loop endif f += '&\t<widget class="popupMenu" label="'+dep+'">&\n' if valtype(l) == 'A' asort(l,,,{|a,b| a[2] < b[2]}) for i in l f += '&\t&\t<widget class="menuItem" label="'+i[2]+'" name="'+dep+':'+i[2]+'.list"/>&\n' aadd( list_all, dep+':'+i[2] ) next endif f += '&\t</widget>&\n' next eDebug(12, 'FORM: finish append classes' ) f += ' <widget class="menuSeparator"/>&\n' + ; ' <widget class="menuItem" label="&Exit" name="Menu.Quit">&\n' + ; ' <msg lang="ru" id="&Exit" value="÷&ÙÈÏÄ" />&\n' + ; ' <rule>&\n' + ; ' <event widget="Menu.Quit" signal="activate"/>&\n' + ; ' <action><call widget="mainWindow" method="close"/></action>&\n' + ; ' </rule>&\n' + ; ' </widget>&\n' + ; ' </widget>&\n' + ; '</widget>&\n&\n' endif f += ' <!-- Statusbar -->&\n' + ; ' <widget class="statusBar" name="main_statusBar" label="Done.">&\n' + ; ' <msg lang="ru" id="Done." value="çÏÔÏ×Ï." />&\n' + ; ' </widget>&\n' + ; ; '</widget>&\n' + ; '</interface>&\n&\n' + ; ; '<!-- Widgets properties -->&\n' + ; '<style>&\n' + ; ' <property widget="mainWindow" name="geometry" value="600,450,35,15" />&\n' + ; ' <property widget="mainWindow" name="position" value="center" />&\n' + ; ' <property widget="mainWindow" name="MDI" value="true" />&\n' + ; '</style>&\n&\n' f += '<actions>&\n' + ; ' <!-- System actions -->&\n' // Actions for i in list_all f += '<rule>&\n' f += ' <event widget="'+i+'.list" signal="activate"/>&\n' f += ' <action><call method="openForm"><param value="'+i+'"/><param value="list"/>' f += '</call></action>&\n' f += '</rule>&\n' next f += '</actions>&\n' + ; '</form>&\n' eDebug(15, "FORM getMainForm:", len(f)) return f // Generate form with list of all class object static function get_UIList(params) local f, ent:=params:name, fields, i, pclass f := '<?xml version="1.0" encoding="'+DEFAULT_ENCODING+'" ?>&\n' + ; '<!-- '+ent+' list form -->&\n' + ; '<!-- Web: http://eas.lrn.ru -->&\n&\n' + ; ; '<form>&\n' + ; ' <head>&\n' + ; // TODO: fill table with autoreloading (see openView() ) ' <call method="openView">&\n' + ; ' <param><property widget="list" name="object"/></param>&\n' + ; ' <param value="'+ent+'"/>&\n' + ; ' <param value="60" />&\n' + ; // 60 seconds by default ' <param><property widget="__form" name="object"/></param>&\n' + ; ' </call>&\n' + ; ' </head>&\n' + ; ' <interface>&\n' + ; ' <widget class="childWindow" name="__form" label="'+ent+' list">&\n&\n' + ; ; ' <!-- Toolbar -->&\n' + ; ' <widget class="toolBar" name="main_tbar">&\n' + ; ; ' <widget name="create" class="toolButton" label="New">&\n' + ; ' <property name="icon" value="create.xpm"/>&\n' + ; ' </widget>&\n' + ; ' <widget name="edit" class="toolButton" label="Edit">&\n' + ; ' <property name="icon" value="edit.xpm"/>&\n' + ; ' </widget>&\n' + ; ' <widget name="delete" class="toolButton" label="Delete">&\n' + ; ' <property name="icon" value="delete.xpm"/>&\n' + ; ' </widget>&\n' + ; ' </widget>&\n' + ; ; ' <widget name="list" class="table">&\n' pclass := form_splitClass( ent ) params:db := pclass[1] fields := lquery(params, 'describe '+pclass[2]) if valtype(fields) == 'A' for i in fields if i[2] $ 'CNDLXRS' .and. i[1] != 'id' f += ' <column name="'+i[1]+'" title="'+i[1]+'"/>&\n' endif next endif f += ' </widget>&\n' + ; ' <widget class="buttonBar">&\n' + ; ' <widget class="button" label="&Close" name="close" />&\n' + ; ' </widget>&\n' + ; ' </widget>&\n' + ; ' </interface>&\n&\n' + ; ' <style>&\n' + ; ' </style>&\n&\n' + ; ' <actions>&\n' + ; ; ' <rule label="&Create">&\n' + ; ' <event widget="create" signal="clicked"/>&\n' + ; ' <action><call method="openForm"><param value="'+ent+'"/><param value="object"/>&\n' + ; ' </call></action></rule>&\n' + ; ; ' <rule label="&Edit">&\n' + ; ' <event widget="edit" signal="clicked"/>&\n' + ; ' <event widget="list" signal="selected"/>&\n' + ; ' <action><call method="openForm"><param value="'+ent+'"/><param value="object"/>' + ; ' <param><call widget="list" method="getSelectionId"/></param>&\n' + ; ' </call></action></rule>&\n' + ; ; ' <rule label="&Delete...">&\n' + ; ' <event widget="delete" signal="clicked"/>&\n' + ; ' <action>&\n' + ; ' <call widget="__form" method="dialogBox">&\n' + ; ' <param value="Confirmation"/>&\n' + ; ' <param value="Delete item?"/>&\n' f += ' <param value="'+"'"+'&Delete'+"','"+'&Cancel'+"'"+'"/>&\n' f += ' <return>&\n' + ; ' <condition>&\n' + ; ' <param><returnedvalue /></param>&\n' + ; ' <case value="true">&\n' + ; ' <call method="deleteObject">&\n' + ; ' <param><call widget="list" method="getSelectionId"/></param>&\n' + ; ' </call>&\n' + ; ' <call method="openView">&\n' + ; ' <param><property widget="list" name="object"/></param>&\n' + ; ' <param value="'+ent+'"/>&\n' + ; ' </call>&\n' + ; ' </case>&\n' + ; ' </condition>&\n' + ; ' </return>' + ; ' </call>&\n' + ; ' </action>&\n' + ; ' </rule>&\n' f += ' <rule label="-C&lose">&\n' + ; ' <event widget="close" signal="clicked"/>&\n' + ; ' <action><call widget="__form" method="close"/></action>&\n' + ; ' </rule>&\n' + ; ' </actions>&\n' + ; '</form>' return f /* Lookup form in database */ static function get_StoredForm(params) local fClass, fName, r, c:=NIL, id, appendix:='' local q, fType:='', types:={ 'list', 'object' } fClass := DEFAULT_FORM_CLASS fName := params:name if fName[6] == ':' fName := substr( fName, 7 ) endif // list, object if "TYPE" $ params .and. ascan( types, {|e| e==params:type } ) > 0 fName := fName + '.' + params:type endif q := 'select content from ' + fClass + ' where name=="' + fName + '"' r := lquery(params, q) if valtype(r) == 'A' .and. len(r) > 0 c := r[1][1] eDebug(15, "FORM:",fName,len(c)) endif return c /* Get filled view for table */ // TODO: using TVIEW if exists static function get_View(params) local query, a if assertParameters( params, { 'name:C', 'fields:C' } ) return NIL endif a := form_splitClass( params:name ) query := 'select '+params:fields+' from '+a[2] return lcomponent('sys.db', 'executeExt', 'db', a[1], 'query', query) /* Generate visial form for show class object */ static function get_UIObject(params) local class:=params:name, f:="", attr, i, a, t, name, chooseElem:={}, pclass pclass := form_splitClass( class ) params:db := pclass[1] /* XML head */ f += '<?xml version="1.0" encoding="'+DEFAULT_ENCODING+'" ?>&\n' f += '<!-- "'+class+'" dialog interface form -->&\n&\n' /* Form head */ f += '<form>&\n<head>' + ; ' <class name="'+class+'"/>&\n' + ; ' <call method="setFormObject"><param><property widget="__form" name="object"/></param></call>&\n'+ ; '</head>&\n' /* Interface definition */ f += '<interface>&\n' f += '<widget class="document" name="__form" label="'+pclass[2]+'">&\n'+ ; '<widget name="title" class="label" label="'+pclass[2]+'"/>&\n' // Get fields list attr := lquery(params, 'describe '+pclass[2]) if valtype(attr) != 'A' attr := array(0) endif // eDebug(5, "ATTR:",var2log(attr,3,.T.)) if len(attr) > 0 f += '<widget class="grid">&\n'+ ; ' <property name="cols" value="2"/>&\n'+ ; ' <property name="rows" value="'+alltrim(str(len(attr)))+'"/>&\n' endif // Add fields by type for i=1 to len(attr) a := attr[i] name := a[1] if name == 'id' loop endif t := a[2] switch t case 'L' f += ' <widget class="checkbox" name="'+name+'" pos="'+alltrim(str(i))+',1-2+" label="&'+name+'"/>&\n' case 'D' f += ' <widget class="label" pos="'+alltrim(str(i))+',1" label="&'+name+':" accel="'+name+'"/>&\n' f += ' <widget class="editdate" name="'+name+':date" pos="'+alltrim(str(i))+',2+" />&\n' case 'N' f += ' <widget class="label" pos="'+alltrim(str(i))+',1" label="&'+name+':" accel="'+name+'"/>&\n' f += ' <widget class="edit" name="'+name+':number" pos="'+alltrim(str(i))+',2+" />&\n' case 'M' f += ' <widget class="label" pos="'+alltrim(str(i))+',1" label="&'+name+':" accel="'+name+'"/>&\n' f += ' <widget class="edittext" name="'+name+'" pos="'+alltrim(str(i))+'+,2+" />&\n' // TODO: widget for choosing object with button // case 'R' // f += ' <widget class="label" pos="'+alltrim(str(i))+',1" label="&'+name+'" accel="'+name+"_choose"+'"/>&\n' // f += ' <widget class="edit" name="'+name+'" pos="'+alltrim(str(i))+',2" />&\n' // TODO: file uploading for blob otherwise f += ' <widget class="label" pos="'+alltrim(str(i))+',1" label="&'+name+':" accel="'+name+'"/>&\n' f += ' <widget class="edit" name="'+name+'" pos="'+alltrim(str(i))+',2+" />&\n' endswitch next if len(attr) > 0 f += '</widget>&\n' endif // Bottom bar f += '<widget class="buttonBar">&\n'+ ; ' <widget class="button" label="&Ok" name="save" />&\n' ' <widget class="button" label="&Print" name="print" />&\n'+ ; f += ' <widget class="button" label="&Close" name="close" />&\n'+ ; '</widget>&\n'+ ; '</widget>&\n' // Footer f += '</interface>&\n' f += '<!-- Widget properties -->&\n'+ ; '<style>&\n'+ ; ' <property widget="__form" name="spacing" value="2"/>&\n'+ ; ' <property widget="title" name="font.style" value="BOLD"/>&\n'+ ; ' <property widget="title" name="font.size" value="+2"/>&\n'+ ; '</style>&\n' f += '<!-- Actions -->&\n'+ ; '<actions>&\n'+ ; ' <rule label="&OK">&\n'+ ; ' <event widget="save" signal="clicked"/>&\n'+ ; ' <action>&\n'+ ; ' <call method="saveForm"><param><property widget="__form" name="object"/></param><param value="'+class+'" /></call>&\n'+ ; ' <call widget="__form" method="close"/>&\n'+ ; ' </action>&\n'+ ; ' </rule>&\n'+ ; ' <rule label="-&Close">&\n'+ ; ' <event widget="close" signal="clicked"/>&\n'+ ; ' <action>&\n'+ ; ' <call method="dialogBoxConfirmClose"><param><property widget="__form" name="object"/></param><param value="'+class+'" /></call>&\n'+ ; ' </action>&\n'+ ; ' </rule>&\n' /* Add choose action (chooseElem)*/ /* <rule> <event widget="payer" signal="clicked"/> <action><call widget="__form" method="open"> <param value="Partner.Choice.xfl"/> <return> <call widget="payer" method="setValue"> <param><returnedvalue /></param> </call> <property widget="payer.name" name="label"> <call method="getObjectAttr"> <param><returnedvalue /></param> <param value="name"/> </call> </property> </return> </call></action> </rule> */ f += '</actions>&\n' f += '</form>' return f --- NEW FILE: form.xml --- <?xml version="1.0" encoding="koi8-r" standalone="no" ?> <component> <name>form</name> <category>Core/Interface</category> <version>0.1</version> <description>Interface and print form support: get from database or generate</description> <license>GNU/GPL</license> <created>2006-05-01</created> <modified>2006-10-18</modified> <requires> <dependence type="component">../../ocmng/component.xml</dependence> </requires> <author>Skull</author> <meta dictionary="ETC01"> <!-- mng_form --> <attribute name="name" type="string" lenType="rtrim" len="50" notNull="yes" notEmpty="yes" /> <attribute name="type" type="string" len="50" lenType="rtrim" /> <attribute name="content" type="text" lenType="alltrim" /> <index name="name" expression="name"/> <class name="mng_form" extent="component" essence="name" uniqueKey="name" attributes="name,type,description,content" indices="name" mainIdx="name" findAttrs="name" /> <!-- mng_command --> <attribute name="form" type="ref" len="12" refTo="ETC01:mng_form" lenType="ignore" /> <class name="mng_command" extent="component" essence="name" uniqueKey="name" attributes="name,component_name,form,description" indices="name,component_name" mainIdx="name" findAttrs="name" /> </meta> <data> <objects depository="ETC0101" class="mng_form"> <object> <attr name="name">form.po</attr> <attr name="type">application/x-clip-plugin</attr> <attr name="description">Form plugin</attr> <attr name="content">form.po</attr> </object> <object> <attr name="name">create.xpm</attr> <attr name="type">image/x-xpm</attr> <attr name="description">Create icon</attr> <attr name="content">create.xpm</attr> </object> <object> <attr name="name">edit.xpm</attr> <attr name="type">image/x-xpm</attr> <attr name="description">Edit icon</attr> <attr name="content">edit.xpm</attr> </object> <object> <attr name="name">delete.xpm</attr> <attr name="type">image/x-xpm</attr> <attr name="description">Delete icon</attr> <attr name="content">delete.xpm</attr> </object> </objects> <objects depository="ETC0101" class="mng_command"> <object> <attr name="name">get</attr> <attr name="component_name">form</attr> <attr name="form" refTo="ETC0101:mng_form">form.po</attr> <attr name="description"><![CDATA[Get/generate form. Arguments: name - String. Form name. type - String. Form type. Optional. Form types: object XFL form for edit object content list XFL form with list of objects select XFL form for select object from list print_object XPL card for object print_list XPL form for print object list Returns: String. Form contents.]]></attr> </object> <object> <attr name="name">getview</attr> <attr name="component_name">form</attr> <attr name="form" refTo="ETC0101:mng_form">form.po</attr> <attr name="description"><![CDATA[Get view content. Arguments: name - String. Class name. fields - String. Comma separated list of object fields. Returns: Array. View content.]]></attr> </object> </objects> </data> <locale lang="ru"> <name>form</name> <description>ðÏÄÄÅÒÖËÁ ÉÎÔÅÒÆÅÊÓÎÙÈ É ÐÅÞÁÔÎÙÈ ÆÏÒÍ: ÐÏÌÕÞÅÎÉÅ ÉÚ ÂÁÚÙ ÉÌÉ ÇÅÎÅÒÁÃÉÑ</description> </locale> </component> --- NEW FILE: form_action.xml --- <?xml version="1.0" encoding="koi8-r" standalone="no" ?> <component> <name>form_action</name> <category>Core/Interface</category> <version>0.1</version> <description>Support interface actions (for form generation)</description> <license>GNU/GPL</license> <created>2006-10-18</created> <modified>2006-10-26</modified> <requires> <dependence type="component">../../ocmng/ETC01.xml</dependence> </requires> <author>Skull</author> <meta dictionary="ETC01"> <!-- óÔÒÕËÔÕÒÁ ËÌÁÓÓÁ form_action: name ÉÍÑ menu_group ÇÒÕÐÐÁ ÍÅÎÀ toolbar_group ÇÒÕÐÐÁ ÐÁÎÅÌÉ ÉÎÓÔÒÕÍÅÎÔÏ× menu_name ÉÍÑ × ÍÅÎÀ tooltip ÐÏÄÓËÁÚËÁ icon ÚÎÁÞÏË shortcut ËÏÍÂÉÎÁÃÉÑ ËÌÁ×ÉÛ ÐÏ ÕÍÏÌÞÁÎÉÀ l10n_context ËÏÎÔÅËÓÔ ÄÌÑ ÐÅÒÅ×ÏÄÁ acl_context ËÏÎÔÅËÓÔ ÄÌÑ ÐÒÁ× ÄÏÓÔÕÐÁ action ÄÅÊÓÔ×ÉÅ --> <!-- form_action --> <attribute name="name" type="string" len="50" lenType="rtrim" notNull="yes" notEmpty="yes" /> <attribute name="menu_group" type="string" len="50" lenType="rtrim" /> <attribute name="toolbar_group" type="string" len="50" lenType="rtrim" /> <attribute name="menu_name" type="string" len="50" lenType="rtrim" /> <attribute name="tooltip" type="string" lenType="rtrim" /> <attribute name="icon" type="string" len="50" lenType="rtrim" /> <attribute name="shortcut" type="string" len="20" lenType="rtrim" /> <attribute name="l10n_context" type="string" len="50" lenType="rtrim" /> <attribute name="acl_context" type="string" len="50" lenType="rtrim" /> <attribute name="action" type="text" lenType="alltrim" /> <index name="name" expression="name"/> <index name="menu_group" expression="menu_group"/> <index name="toolbar_group" expression="toolbar_group"/> <class name="form_action" extent="form" essence="name" uniqueKey="name" attributes="name,menu_group,toolbar_group,menu_name,tooltip,icon,shortcut,l10n_context,acl_context,action" indices="name,menu_group,toolbar_group" mainIdx="name" findAttrs="name" /> </meta> <data> <objects depository="ETC0101" class="form_action"> <object> <attr name="name">file</attr> <attr name="menu_name">&File</attr> </object> <object> <attr name="name">exit</attr> <attr name="menu_name">&Exit</attr> <attr name="shortcut">Ctrl+Q</attr> <attr name="action"><![CDATA[<call method="applicationQuit" />]]></attr> </object> <object> <attr name="name">help</attr> <attr name="menu_name">&Help</attr> </object> <object> <attr name="name">about</attr> <attr name="menu_name">&About</attr> <attr name="action"><![CDATA[<call method="dialogAbout" />]]></attr> </object> </objects> </data> <locale lang="ru"> <name>form_action</name> <description>ðÏÄÄÅÒÖËÁ ÕÎÉÆÉÃÉÒÏ×ÁÎÎÙÈ ÄÅÊÓÔ×ÉÊ ÉÎÔÅÒÆÅÊÓÁ (ÄÌÑ ÇÅÎÅÒÁÃÉÉ ÆÏÒÍ)</description> </locale> </component> --- NEW FILE: form_localization.xml --- <?xml version="1.0" encoding="koi8-r" standalone="no" ?> <component> <name>form_localization</name> <category>Core/Interface</category> <version>0.1</version> <description>Interface localization</description> <license>GNU/GPL</license> <created>2006-10-21</created> <modified>2006-10-26</modified> <requires> <dependence type="component">../../ocmng/ETC01.xml</dependence> </requires> <author>Skull</author> <meta dictionary="ETC01"> <!-- óÔÒÕËÔÕÒÁ ËÌÁÓÓÁ form_localization: lang ÑÚÙË context ËÏÎÔÅËÓÔ action_parent id ÄÅÊÓÔ×ÉÑ msgid ÏÒÉÇÉÎÁÌØÎÁÑ ÓÔÒÏËÁ msgstr ÐÅÒÅ×ÏÄ fuzzy ÆÌÁÇ ÞÅÒÎÏ×ÏÇÏ ÐÅÒÅ×ÏÄÁ comment ËÏÍÍÅÎÔÁÒÉÊ --> <!-- form_localization --> <attribute name="lang" type="string" len="10" lentype="rtrim" notNull="yes" notEmpty="yes" /> <attribute name="context" type="string" len="50" lenType="rtrim" /> <attribute name="msgid" type="text" lenType="ignore" notNull="yes" notEmpty="yes" /> <attribute name="msgstr" type="text" lenType="ignore" /> <attribute name="fuzzy" type="logical" len="1" lenType="ignore"/> <attribute name="comment" type="string" lenType="ignore" /> <index name="icontext" expression="context+msgid"/> <index name="mcontext" expression="lang+context+msgid"/> <class name="form_localization" extent="form" essence="lang+context+msgid" uniqueKey="" attributes="lang,context,msgid,msgstr,fuzzy,comment" indices="icontext,mcontext" mainIdx="mcontext" findAttrs="lang+context+msgid" /> </meta> <data> <objects depository="ETC0101" class="form_localization"> <object> <attr name="lang">ru</attr> <attr name="context">menu_name</attr> <attr name="msgid">&File</attr> <attr name="msgstr">&æÁÊÌ</attr> </object> <object> <attr name="lang">ru</attr> <attr name="context">menu_name</attr> <attr name="msgid">&Exit</attr> <attr name="msgstr">÷&ÙÈÏÄ</attr> </object> <object> <attr name="lang">ru</attr> <attr name="context">menu_name</attr> <attr name="msgid">&Help</attr> <attr name="msgstr">&óÐÒÁ×ËÁ</attr> </object> <object> <attr name="lang">ru</attr> <attr name="context">menu_name</attr> <attr name="msgid">&About</attr> <attr name="msgstr">&ï ÐÒÏÇÒÁÍÍÅ</attr> </object> </objects> </data> <locale lang="ru"> <name>form_localization</name> <description>ìÏËÁÌÉÚÁÃÉÑ ÉÎÔÅÒÆÅÊÓÁ</description> </locale> </component> --- NEW FILE: form_menu.prg --- /*-------------------------------------------------------------------------*/ /* E/AS Component (part of E/AS project) */ /* */ /* Copyright (C) 2006 by E/AS Software Foundation */ /* Author: Andrey Cherepanov <sk...@ea...> */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as */ /* published by the Free Software Foundation; either version 2 of the */ /* License, or (at your option) any later version. */ /*-------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------/ / / / Name: Form menu / / System name: form_menu / / Description: Menu generation / / Version: 0.1 / / Author: Andrey Cherepanov <sk...@ea...> / / / / Available commands: / / GENERATE Generate menu / / [<context>] menu context (optional) / / / /--------------------------------------------------------------------------*/ /** Component: form_menu */ parameters cMethod, params static defaultDb := 'ETC01' local cContent:='' local oErr, i, err:='', m:='' static componentName:='form_menu' oErr := ErrorBlock({|e| break(e) }) begin sequence /*=========================================================================*/ // GENERATE() if lower(cMethod) == 'generate' eDebug(15, componentName + " args:", params) m := get_Menu( iif('CONTEXT' $ params, params:context, NIL ) ) eDebug( 17, componentName + ".generate:", m ) return m else eDebug(3, componentName + " has not method '"+cMethod+"'") endif recover using oErr i := 1 while ( !empty(ProcName(i)) ) err += "Called from "+allTrim(ProcName(i)) + ; ":" + alltrim(str(ProcLine(i))) + chr(10) i++ end eDebug(5, componentName + " internal error:", errorMessage(oErr)) return NIL end sequence return NIL /* Get real name of elements */ static function __MenuName( s ) local params:=map(), res params:db := defaultDb res := lquery(params, 'select menu_name from form_action where name=="'+s+'"') // Return name if len(res) > 0 s := res[1][1] endif return s /* Get locale for menu item */ static function __MenuNameLocal( name ) local s:="", params:=map(), res, i params:db := defaultDb res := lquery(params, 'select lang,msgstr,fuzzy from form_localization where context+msgid=="menu_name'+name+'"') if valtype(res) == 'A' .and. len(res) > 0 for i in res if .not. i[3] s += '<msg lang="'+i[1]+'" id="'+safeXML(name)+'" value="'+safeXML(i[2])+'"/>&\n' endif next endif //eDebug(15, "MENU:", name, s ) return s /* Recursive process nodes in tree */ static function __processTree( node, s, op ) local i, n, l, params:=map(), res, action, mName if op == 'lookup' if node:id == s return node else for i in node:childs n := __processTree( i, s, op ) if n != NIL return n endif next endif elseif op == 'generate' // Generate node string switch node:type case 'M' mName := __MenuName(node:name) s += '<widget class="popupMenu" label="'+safeXML(mName)+'">&\n' s += __MenuNameLocal( mName ) case 'A' mName := __MenuName(node:name) s += '<widget class="menuItem" label="'+safeXML(mName)+'" name="'+node:name+'">&\n' s += __MenuNameLocal( mName ) case 'S' s += '<widget class="menuSeparator">&\n' otherwise s += '<widget class="UNKNOWN">&\n' endswitch // Process childs for i in asort( node:childs, NIL, NIL, {|a,b| a:order < b:order } ) __processTree( i, @s, op ) next // Action if node:type == 'A' s += ' <rule><event widget="'+node:name+'" signal="activate" />'+chr(10) params:db := defaultDb res := lquery(params, 'select action from form_action where name=="'+node:name+'"') if len(res) > 0 action := res[1][1] else action := '' endif s += ' <action>'+action+'</action>'+chr(10) s += " </rule>&\n" endif s += '</widget>' + chr(10) endif return NIL /* Generate menu */ static function get_Menu( context ) local s:='', params:=map(), res, m:={} local i, l, n, g, j, p, parent params:db := defaultDb res := lquery(params, 'select id,menu_node,menu_type,menu_parent,menu_order from form_menu') // Build menu tree l := len(res) if l == 0 return '' endif for i:=1 to l n := map() n:id := res[i][1] n:name := res[i][2] n:type := left(res[i][3],1) n:parent := res[i][4] n:order := 0+res[i][5] eDebug( 25, componentName + ".add:", n:name, res[i][5], n:order ) n:childs := array(0) if n:parent == '' // Add top level menu items aadd( m, n ) else // Lookup parents parent := NIL for j in m p := __processTree( j, n:parent, 'lookup' ) if p != NIL parent := p exit endif next if parent == NIL aadd( m, n ) else aadd( parent:childs, n ) endif endif next // Write nodes //eDebug( 15, 'TOP LEVEL NODES:', m ) s := '<widget class="menuBar">&\n' for j in asort( m, NIL, NIL, {|a,b| a:order < b:order } ) p := __processTree( j, @s, 'generate' ) next s += '</widget>&\n' eDebug(22, componentName+".generate:", s) return s --- NEW FILE: form_menu.xml --- <?xml version="1.0" encoding="koi8-r" standalone="no" ?> <component> <name>form_menu</name> <category>Core/Interface</category> <version>0.1</version> <description>Menu generation</description> <license>GNU/GPL</license> <created>2006-10-21</created> <modified>2006-10-26</modified> <requires> <dependence type="component">form.xml</dependence> <dependence type="component">form_action.xml</dependence> <dependence type="component">form_localization.xml</dependence> </requires> <author>Skull</author> <meta dictionary="ETC01"> <!-- óÔÒÕËÔÕÒÁ ËÌÁÓÓÁ form_menu menu_node ÉÍÑ ÜÌÅÍÅÎÔÁ ÉÌÉ ÄÅÊÓÔ×ÉÑ menu_type ÔÉÐ menu_parent id ÒÏÄÉÔÅÌØÓËÏÇÏ ÜÌÅÍÅÎÔÁ menu_order ÐÏÒÑÄËÏ×ÙÊ ÎÏÍÅÒ × ÍÅÎÀ --> <!-- form_menu_item --> <attribute name="menu_node" type="string" len="50" lenType="rtrim" /> <attribute name="menu_type" type="string" len="1" lenType="rtrim" /> <attribute name="menu_parent" type="ref" len="12" lenType="ignore" refTo="ETC01:form_menu"/> <attribute name="menu_order" type="number" len="2" lenType="rtrim" /> <index name="menu_node" expression="menu_node"/> <class name="form_menu" extent="form" essence="menu_node" uniqueKey="menu_node" attributes="menu_node,menu_type,menu_parent,menu_order" indices="menu_node" mainIdx="menu_node" findAttrs="menu_node" /> </meta> <data> <objects depository="ETC0101" class="mng_form"> <object> <attr name="name">form_menu.po</attr> <attr name="type">application/x-clip-plugin</attr> <attr name="description">Form menu plugin</attr> <attr name="content">form_menu.po</attr> </object> </objects> <objects depository="ETC0101" class="mng_command"> <object> <attr name="name">generate</attr> <attr name="component_name">form_menu</attr> <attr name="form" refTo="ETC0101:mng_form">form_menu.po</attr> <attr name="description"><![CDATA[Generate menu for form. Arguments: context - String. Menu context. Optional. Returns: String. Menu in XFL format.]]> </attr> </object> </objects> <!-- Default menus --> <objects depository="ETC0101" class="form_menu"> <!-- File menu --> <object> <attr name="menu_node">file</attr> <attr name="menu_type">M</attr> <attr name="menu_parent"></attr> <attr name="menu_order">1</attr> </object> <object> <attr name="menu_node">-exit</attr> <attr name="menu_type">S</attr> <attr name="menu_parent">file</attr> <attr name="menu_order">98</attr> </object> <object> <attr name="menu_node">exit</attr> <attr name="menu_type">A</attr> <attr name="menu_parent">file</attr> <attr name="menu_order">99</attr> </object> <!-- Help menu --> <object> <attr name="menu_node">help</attr> <attr name="menu_type">M</attr> <attr name="menu_parent"></attr> <attr name="menu_order">99</attr> </object> <object> <attr name="menu_node">about</attr> <attr name="menu_type">A</attr> <attr name="menu_parent">help</attr> <attr name="menu_order">99</attr> </object> </objects> </data> <locale lang="ru"> <name>form_menu</name> <description>çÅÎÅÒÁÃÉÑ ÍÅÎÀ</description> </locale> </component> --- NEW FILE: form_service.xml --- <?xml version="1.0" encoding="koi8-r" standalone="no" ?> <component> <name>form_service</name> <category>Core/Interface</category> <version>0.1</version> <description>'Service' Menu</description> <license>GNU/GPL</license> <created>2006-10-31</created> <modified>2006-10-31</modified> <requires> <dependence type="component">form_menu.xml</dependence> </requires> <author>Skull</author> <data> <objects depository="ETC0101" class="form_menu"> <!-- Service menu --> <object> <attr name="menu_node">service</attr> <attr name="menu_type">M</attr> <attr name="menu_parent"></attr> <attr name="menu_order">70</attr> </object> </objects> <objects depository="ETC0101" class="form_action"> <object> <attr name="name">service</attr> <attr name="menu_name">&Service</attr> </object> </objects> <objects depository="ETC0101" class="form_localization"> <object> <attr name="lang">ru</attr> <attr name="context">menu_name</attr> <attr name="msgid">&Service</attr> <attr name="msgstr">ó&ÅÒ×ÉÓ</attr> </object> </objects> </data> <locale lang="ru"> <name>form_service</name> <description>íÅÎÀ 'óÅÒ×ÉÓ'</description> </locale> </component> |
From: Andrey C. <sku...@us...> - 2006-11-03 16:32:19
|
Update of /cvsroot/eas-dev/ocmng/ref2 In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv6950/ref2 Added Files: ALL.xml GBL02.xml Log Message: Move all components to top level. Remove ocmng and xml2xmo sources. Add components: - dbconsole - form_menu, form_action and form_localization for menu generation - update form component for generation menu --- NEW FILE: ALL.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <requires> <dependence type="component">GBL02.xml</dependence> </requires> </component> --- NEW FILE: GBL02.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <name>GBL02-ref2</name> <category>CORE/DB</category> <version>1.0</version> <description>Initial metadata for enterpsise refs</description> <license>GNU/GPL</license> <created>2006-05-19</created> <modified>2006-05-23</modified> <author>Uri</author> <!-- property name="policy">ru.Ru</property --> <requires> <dependence type="component">../CORE/GBL02.xml</dependence> </requires> <meta dictionary="GBL02" rules="appendOnly"> <extent name="VENTinfomation">Internal information of this enterprice</extent> <extent name="GNIinfomation">Information from state department of taxing</extent> </meta> </component> |
From: Andrey C. <sku...@us...> - 2006-11-03 16:32:18
|
Update of /cvsroot/eas-dev/ocmng/tests In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv6950/tests Added Files: CORE.xml testclass1.xml testclass2.xml testplugin.prg Log Message: Move all components to top level. Remove ocmng and xml2xmo sources. Add components: - dbconsole - form_menu, form_action and form_localization for menu generation - update form component for generation menu --- NEW FILE: CORE.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <name>ETC01-coretest</name> <category>test</category> <version>1.0</version> <license>GNU/GPL</license> <created>2006-04-24</created> <requires> <dependence type="component">../CORE/ETC01.xml</dependence> </requires> <dictionary> <id>ETC01</id> <name>settings data</name> <type>$CODBTYPE$</type> <path>$CODBROOT$</path> </dictionary> <meta dictionary="ETC01"> <depository name="aquarum" memoSize="32" /> <extent name="undef">üÔÏ ÐÒÏÓÔÒÁÎÓÔ×Ï ÔÏÌØËÏ ÄÌÑ ÎÅÉÚ×ÅÓÔÎÙÈ ÏÂßÅËÔÏ×.</extent> <extent name="connections">Connection statistic</extent> <extent name="component">Component data</extent> </meta> </component> --- NEW FILE: testclass1.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <name>ETC01-testclass1</name> <category>test</category> <version>1.0</version> <license>GNU/GPL</license> <created>2006-04-13</created> <author>Uri</author> <property name="policy">ru.Ru</property> <requires> <dependence type="component">CORE.xml</dependence> </requires> <files> <file name="testplugin.prg" type="text/clip-source">ODB trigger for class testclass1</file> </files> <meta dictionary="ETC01"> <attribute name="testattr_c" type="string" lenType="ignore" len="2" dec="0" mask="" defValue="" notNull="false" notEmpty="false" /> <index name="testattr_c" expression="testattr_c"/> <class name="testclass1" logNeed="false" extent="component" superClass="" essence="" uniqueKey="testattr_c" attributes="testattr_c" indices="testattr_c" /> <plugin name="testplugin" class="testclass1" type="Source file" file="testplugin.prg" function="" /> </meta> <data> <objects depository="ETC0101" class="testclass1"> <object> <attr name="testattr_c">t1</attr> </object> <object> <attr name="testattr_c">t2</attr> </object> <object> <attr name="testattr_c">t3</attr> </object> </objects> </data> </component> --- NEW FILE: testclass2.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <name>ETC01-testclass2</name> <category>test</category> <version>1.0</version> <license>GNU/GPL</license> <created>2006-05-05</created> <author>Uri</author> <property name="policy">ru.Ru</property> <requires> <dependence type="component">CORE.xml</dependence> <dependence type="component">testclass1.xml</dependence> </requires> <files> </files> <meta dictionary="ETC01"> <attribute name="testattr_c" type="string" lenType="ignore" len="2" dec="0" mask="" defValue="" notNull="false" notEmpty="false" /> <attribute name="testattr_l" type="logical" lenType="alltrim" len="1" dec="0" mask="" defValue="" notNull="false" notEmpty="false" /> <attribute name="testattr_d" type="date" lenType="ignore" len="3" dec="0" mask="" defValue="" notNull="false" notEmpty="false" /> <counter name="testcounter1" type="LAST" /> <attribute name="testattr_n" type="number" lenType="rtrim" len="5" dec="1" mask="" defValue="" counter="testcounter1" notNull="false" notEmpty="false" /> <attribute name="testattr_m" type="text" lenType="fill" len="6" dec="2" mask="" defValue="" notNull="false" notEmpty="false" /> <attribute name="testattr_x" type="any" lenType="ignore" len="7" dec="3" mask="" defValue="" notNull="false" notEmpty="false" /> <attribute name="testattr_r" type="ref" lenType="ignore" len="12" dec="0" mask="" defValue="" notNull="false" notEmpty="false" refTo="ETC01:testclass1" /> <attribute name="testattr_s" type="classref" lenType="ignore" len="12" dec="0" mask="" defValue="" notNull="false" notEmpty="false" /> <attribute name="testattr_a" type="array" lenType="ignore" len="8" dec="0" mask="" defValue="" notNull="false" notEmpty="false" /> <index name="testattr_c" expression="testattr_c"/> <index name="testattr_n" expression="testattr_n"/> <index name="testattr_d" expression="testattr_d"/> <class name="testclass2" logNeed="false" extent="component" superClass="testclass1" essence="testattr_c" uniqueKey="testattr_c" mainIdx="testattr_c" attributes="testattr_c,testattr_l,testattr_d,testattr_n,testattr_m,testattr_x,testattr_r,testattr_s,testattr_a" indices="testattr_c,testattr_n,testattr_d" findAttrs="testattr_c,testattr_d" tcolList="testattr_c,testattr_l,testattr_d" /> <tcolumn name="testattr_c" width="2" header="áÔÔÒ1" footer="" expression="testattr_c" /> <tcolumn name="testattr_l" width="1" header="áÔÔÒ2" footer="" expression="testattr_l" /> <tcolumn name="testattr_d" width="10" header="áÔÔÒ3" footer="" expression="testattr_d" /> <tview name="ôÅÓÔÏ×ÙÊ ËÌÁÓÓ2" class="testclass2" columns="testattr_c,testattr_l,testattr_d" /> </meta> <data> <objects depository="ETC0101" class="testclass2"> <object> <attr name="testattr_c">k1</attr> <attr name="testattr_l">false</attr> <attr name="testattr_d">20060504</attr> <attr name="testattr_n">0</attr> <attr name="testattr_m">memo string:1</attr> <attr name="testattr_x">any data:1</attr> <attr name="testattr_r" refTo="ETC0101:testclass1">t1</attr> <attr name="testattr_s">ETC01:testclass1</attr> <attr name="testattr_a"> <value type="number">1</value> <value type="date">20060504</value> <value type="string">string:1</value> <value type="ref" refTo="ETC0101:testclass1">t1</value> <value type="classref" meta="CLASS">ETC01:testclass1</value> <value type="array"> <value type="string">subarray1</value> <value type="number">1</value> <value type="date">20060504</value> </value> <value type="array"> <value type="string">subarray2</value> <value type="number">2</value> <value type="date">20060504</value> </value> </attr> </object> <object> <attr name="testattr_c">k2</attr> <attr name="testattr_l">true</attr> <attr name="testattr_d">20060503</attr> <attr name="testattr_n">1</attr> <attr name="testattr_m">memo string:2</attr> <attr name="testattr_x">any data:2</attr> <attr name="testattr_r" refTo="ETC0101:testclass1">t2</attr> <attr name="testattr_s">ETC01:testclass1</attr> <attr name="testattr_a"> <value type="number">2</value> <value type="date">20060503</value> <value type="string">string:2</value> <value type="ref" refTo="ETC0101:testclass1">t2</value> <value type="classref" meta="CLASS">ETC01:testclass1</value> <value type="array"> <value type="string">subarray1</value> <value type="number">1</value> <value type="date">20060503</value> </value> <value type="array"> <value type="string">subarray2</value> <value type="number">2</value> <value type="date">20060503</value> </value> </attr> </object> <object> <attr name="testattr_c">k3</attr> <attr name="testattr_l">false</attr> <attr name="testattr_d">20060502</attr> <attr name="testattr_n">1</attr> <attr name="testattr_m">memo string:3</attr> <attr name="testattr_x">any data:3</attr> <attr name="testattr_r" refTo="ETC0101:testclass1">t3</attr> <attr name="testattr_s">ETC01:testclass1</attr> <attr name="testattr_a"> <value type="number">3</value> <value type="date">20060502</value> <value type="string">string:3</value> <value type="ref" refTo="ETC0101:testclass1">t3</value> <value type="classref" meta="CLASS">ETC01:testclass1</value> <value type="array"> <value type="string">subarray1</value> <value type="number">1</value> <value type="date">20060502</value> </value> <value type="array"> <value type="string">subarray2</value> <value type="number">2</value> <value type="date">20060502</value> </value> </attr> </object> <object> <attr name="testattr_c">k4</attr> <attr name="testattr_l">true</attr> <attr name="testattr_d">20060501</attr> <attr name="testattr_n">2</attr> <attr name="testattr_m">memo string:4</attr> <attr name="testattr_x">any data:4</attr> <attr name="testattr_r" refTo="ETC0101:testclass1">t1</attr> <attr name="testattr_s">ETC01:testclass1</attr> <attr name="testattr_a"> <value type="number">4</value> <value type="date">20060501</value> <value type="string">string:4</value> <value type="ref" refTo="ETC0101:testclass1">t1</value> <value type="classref" meta="CLASS">ETC01:testclass1</value> <value type="array"> <value type="string">subarray1</value> <value type="number">1</value> <value type="date">20060501</value> </value> <value type="array"> <value type="string">subarray2</value> <value type="number">2</value> <value type="date">20060501</value> </value> </attr> </object> <object> <attr name="testattr_c">k5</attr> <attr name="testattr_l">false</attr> <attr name="testattr_d">20060430</attr> <attr name="testattr_n">3</attr> <attr name="testattr_m">memo string:5</attr> <attr name="testattr_x">any data:5</attr> <attr name="testattr_r" refTo="ETC0101:testclass1">t2</attr> <attr name="testattr_s">ETC01:testclass1</attr> <attr name="testattr_a"> <value type="number">5</value> <value type="date">20060430</value> <value type="string">string:5</value> <value type="ref" refTo="ETC0101:testclass1">t2</value> <value type="classref" meta="CLASS">ETC01:testclass1</value> <value type="array"> <value type="string">subarray1</value> <value type="number">1</value> <value type="date">20060430</value> </value> <value type="array"> <value type="string">subarray2</value> <value type="number">2</value> <value type="date">20060430</value> </value> </attr> </object> <object> <attr name="testattr_c">k6</attr> <attr name="testattr_l">true</attr> <attr name="testattr_d">20060429</attr> <attr name="testattr_n">4</attr> <attr name="testattr_m">memo string:6</attr> <attr name="testattr_x">any data:6</attr> <attr name="testattr_r" refTo="ETC0101:testclass1">t3</attr> <attr name="testattr_s">ETC01:testclass1</attr> <attr name="testattr_a"> <value type="number">6</value> <value type="date">20060429</value> <value type="string">string:6</value> <value type="ref" refTo="ETC0101:testclass1">t3</value> <value type="classref" meta="CLASS">ETC01:testclass1</value> <value type="array"> <value type="string">subarray1</value> <value type="number">1</value> <value type="date">20060429</value> </value> <value type="array"> <value type="string">subarray2</value> <value type="number">2</value> <value type="date">20060429</value> </value> </attr> </object> </objects> </data> </component> --- NEW FILE: testplugin.prg --- /* Copyright (C) 2006 ITK Author : Uri (ur...@it...) License : (GPL) http://www.itk.ru/clipper/license.html */ #define R2D2_AN_VALUES 5 static members := {; {"BEFORE_UPDATE_OBJECT", {|p1,p2,p3,p4,p5| before_update(p1,p2,p3,p4,p5)} },; {"BEFORE_APPEND_OBJECT", {|p1,p2,p3,p4,p5| before_append(p1,p2,p3,p4,p5)} }; } local i,ret := NIL, nmember parameters query_key query_key := alltrim(upper(query_key)) if query_key=="MEMBERS" ret:={} for i=1 to len(members) aadd(ret,members[i][1]) next endif nmember := ascan(members,{|x|x[1]==query_key}) if nmember !=0 ret := members[nMember][2] endif if ret == NIL ret:= "Error query key in sample plugins." endif return ret **************************************** static function before_append(oDep,newData,oldData,p4,p5) return .t. **************************************** static function before_update(oDep,newData,oldData,p4,p5) return .t. |
From: Andrey C. <sku...@us...> - 2006-11-03 16:32:13
|
Update of /cvsroot/eas-dev/ocmng/acc-kernel In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv6950/acc-kernel Added Files: ACC01.xml ALL.xml Log Message: Move all components to top level. Remove ocmng and xml2xmo sources. Add components: - dbconsole - form_menu, form_action and form_localization for menu generation - update form component for generation menu --- NEW FILE: ACC01.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <name>ACC01-acc-kernel</name> <category>CORE/DB</category> <version>1.0</version> <description>Accounting kernel meta data</description> <license>GNU/GPL</license> <created>2006-05-19</created> <modified>2006-05-23</modified> <author>Uri</author> <requires> <dependence type="component">../CORE/ETC01.xml</dependence> </requires> <meta dictionary="ACC01" rules="appendOnly"> <extent name="AccPost">Account post</extent> <extent name="ACCRegistry">Account registry data</extent> <extent name="AccPostLog">Account post logging</extent> <extent name="ACCRegistryAM">Account registry data for am_balance</extent> <extent name="ACCRegistryAN">Account registry data for an_balance,os_balance,chess_balance</extent> <extent name="ACCRegistryInfo">Account registry data for an_info</extent> </meta> </component> --- NEW FILE: ALL.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <requires> <dependence type="component">ACC01.xml</dependence> </requires> </component> |
From: Andrey C. <sku...@us...> - 2006-11-03 16:32:13
|
Update of /cvsroot/eas-dev/ocmng/ref1 In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv6950/ref1 Added Files: ALL.xml README _a1 okato.2 void.xml Log Message: Move all components to top level. Remove ocmng and xml2xmo sources. Add components: - dbconsole - form_menu, form_action and form_localization for menu generation - update form component for generation menu --- NEW FILE: ALL.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <requires> <dependence type="component">ru/ALL.xml</dependence> <dependence type="component">ru_UDM/ALL.xml</dependence> <dependence type="component">void.xml</dependence> </requires> <files> <file name="README" type="text/text">Readme</file> </files> </component> --- NEW FILE: README --- (This appears to be a binary file; contents omitted.) --- NEW FILE: _a1 --- taxcode taxcause taxtype units unit2unit estate_type estate_form t_group commodity_word region document_type account_type investment_type employee_type appointment_type pasport_type bank nation citizen_type language lang_skill marital_stat relationship war_veteran military_duty military_rank vacation_type dismiss_type education_type cash_document_type equipment_type taxperiod territorial_type wordbase taxcode2 taxcode_gni taxcode_a taxcode_g taxcode_pg taxcode_pr taxcode_ek taxcode_b --- NEW FILE: okato.2 --- <?xml version="1.0" encoding="koi8-r" ?> <component> <name>okato</name> <category>goscomstatinfo</category> <version>1.0</version> <license>GNU/GPL</license> <created>2006-04-24</created> <modified>2006-05-29</modified> <author>Uri</author> <property name="policy">ru.Ru</property> <requires> <dependence type="component">void.xml</dependence> </requires> <files> </files> <meta dictionary="GBL01" rules="appendOnly"> <attribute name="code" type="string" lenType="alltrim" len="12" dec="0" mask="" defValue="*" notNull="false" notEmpty="false" /> <attribute name="name" type="string" lenType="alltrim" len="30" dec="0" mask="" defValue="" notNull="false" notEmpty="false" /> <attribute name="owner_id" type="ref" lenType="rtrim" len="12" dec="0" mask="" defValue="" notNull="false" notEmpty="false" /> <index name="code" expression="code"/> <index name="name" expression="name"/> <index name="owner_id" expression="owner_id"/> <class name="okato" logNeed="false" extent="goscomstatinfo" superClass="" essence="code+':'+name" uniqueKey="code" attributes="code,name,owner_id" indices="code,name,owner_id" findAttrs="code,name" /> <tcolumn name="code" width="12" header="ëÏÄ" footer="" expression="code" /> <tcolumn name="name" width="30" header="îÁÉÍÅÎÏ×ÁÎÉÅ" footer="" expression="name" /> <tcolumn name="okato" width="12" header="ïëáôï" footer="" expression="okato" /> <tview name="ëÏÄÙ ÔÅÒÒÉÔÏÒÉÊ" header="ëÏÄÙ ÔÅÒÒÉÔÏÒÉÊ" class="okato" columns="code,name" /> <tview name="ëÏÄÙ ÔÅÒÒÉÔÏÒÉÊ" header="ëÏÄÙ ÔÅÒÒÉÔÏÒÉÊ" class="okato" columns="code,name" /> </meta> <data> <objects depository="GBL0101" class="okato" rules="appendOnly"> </objects> </data> </component> --- NEW FILE: void.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <name>refs1-void</name> <category>REFS/ru</category> <version>1.0</version> <description>Initial metadata for refs1</description> <license>GNU/GPL</license> <created>2006-04-24</created> <modified>2006-05-23</modified> <author>Uri</author> <requires> <dependence type="component">../CORE/GBL01.xml</dependence> </requires> <meta dictionary="GBL01" rules="appendOnly"> <attribute name="code" type="string" lenType="alltrim" len="12" dec="0" mask="" defValue="" notNull="false" notEmpty="false" /> <attribute name="unit" type="string" lenType="rtrim" len="7" dec="0" mask="" defValue="" notNull="false" notEmpty="false" /> <attribute name="name" type="string" lenType="alltrim" len="30" dec="0" mask="" defValue="" notNull="false" notEmpty="false" /> <attribute name="smallname" type="string" lenType="rtrim" len="50" dec="0" mask="" defValue="" notNull="false" notEmpty="false" /> <attribute name="owner_id" type="ref" lenType="rtrim" len="12" dec="0" /> <attribute name="fullname" type="string" lenType="rtrim" len="250" dec="0" mask="" defValue="" notNull="false" notEmpty="false" /> <index name="code" expression="code"/> <index name="unit" expression="unit"/> <index name="name" expression="name"/> <index name="smallname" expression="smallname"/> <index name="owner_id" expression="owner_id"/> <index name="fullname" expression="fullname"/> </meta> </component> |
From: Andrey C. <sku...@us...> - 2006-11-03 16:32:10
|
Update of /cvsroot/eas-dev/ocmng/r2d2 In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv6950/r2d2 Added Files: ALL.xml ETC01.xml acc_db.xml connection.xml void.xml Log Message: Move all components to top level. Remove ocmng and xml2xmo sources. Add components: - dbconsole - form_menu, form_action and form_localization for menu generation - update form component for generation menu --- NEW FILE: ALL.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <requires> <dependence type="component">ETC01.xml</dependence> <dependence type="component">acc_db.xml</dependence> <dependence type="component">connection.xml</dependence> <dependence type="component">void.xml</dependence> </requires> </component> --- NEW FILE: ETC01.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <name>ETC01-r2d2</name> <category>CORE/DB</category> <version>1.0</version> <description>ETC01 kernel metadata for r2d2</description> <license>GNU/GPL</license> <created>2006-05-19</created> <modified>2006-05-23</modified> <author>Uri</author> <requires> <dependence type="component">../CORE/ETC01.xml</dependence> </requires> <meta dictionary="ETC01" rules="appendOnly"> <depository name="aquarum" memoSize="32" /> <extent name="connections">Connection statistic</extent> </meta> </component> --- NEW FILE: acc_db.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <name>r2d2-acc_db</name> <category>REFS/r2d2</category> <version>1.0</version> <description>Class for list of r2d2 accounting DB</description> <license>GNU/GPL</license> <created>2006-05-19</created> <modified>2006-05-23</modified> <author>Uri</author> <requires> <dependence type="component">void.xml</dependence> </requires> <meta dictionary="ETC01" rules="appendOnly"> <attribute name="acc_enterprise" type="string" lenType="alltrim" len="25" dec="0" /> <attribute name="acc_period" type="string" lenType="alltrim" len="10" dec="0" /> <index name="acc_enterprise" expression="acc_enterprise"/> <index name="acc_period" expression="acc_period"/> <class name="acc_db" logNeed="false" extent="connections" essence="code" uniqueKey="code" attributes="code,acc_enterprise,acc_period,owner_id,acc00,acc01,beg_date,end_date" indices="code,acc_enterprise,acc_period,owner_id,acc00,acc01" /> <tcolumn name="acc_db" width="20" header="ðÒÅÄÐÒÉÑÔÉÅ-ÐÅÒÉÏÄ" footer="" expression="acc_db" /> </meta> <data> <objects depository="ETC0101" class="acc_db" rules="appendOnly"> <object> <attr name="code">001</attr> <attr name="acc_enterprise">Office1</attr> <attr name="acc_period">2006</attr> <attr name="acc00">ACC0001</attr> <attr name="acc01">ACC0101</attr> <attr name="beg_date">20051231</attr> <attr name="end_date">20061231</attr> </object> </objects> </data> </component> --- NEW FILE: connection.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <name>r2d2-connection</name> <category>REFS/r2d2</category> <version>1.0</version> <description>Class for r2d2 user connections</description> <license>GNU/GPL</license> <created>2006-05-26</created> <modified>2006-05-23</modified> <author>Uri</author> <requires> <dependence type="component">void.xml</dependence> </requires> <meta dictionary="ETC01" rules="appendOnly"> <attribute name="user" type="string" lenType="alltrim" len="10" dec="0" /> <attribute name="connect_id" type="string" lenType="alltrim" len="14" dec="0" /> <attribute name="date" type="date" lenType="rtrim" len="10" dec="0" /> <attribute name="passwd" type="string" lenType="alltrim" len="10" dec="0" /> <attribute name="user_data" type="array" lenType="rtrim" len="0" dec="0" /> <index name="user" expression="user"/> <index name="connect_id" expression="connect_id"/> <class name="connection" logNeed="false" extent="connections" essence="user+":"+ctod(date)" attributes="user,connect_id,date,passwd,beg_date,end_date,acc00,acc01,user_data" indices="user,connect_id" /> </meta> </component> --- NEW FILE: void.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <name>r2d2-void</name> <category>REFS/r2d2</category> <version>1.0</version> <description>Initial metadata for r2d2</description> <license>GNU/GPL</license> <created>2006-05-19</created> <modified>2006-05-23</modified> <author>Uri</author> <requires> <dependence type="component">ETC01.xml</dependence> </requires> <meta dictionary="ETC01" rules="appendOnly"> <attribute name="code" type="string" lenType="alltrim" len="7" dec="0" /> <attribute name="owner_id" type="ref" lenType="alltrim" /> <attribute name="acc00" type="string" lenType="alltrim" len="7" dec="0" /> <attribute name="acc01" type="string" lenType="alltrim" len="7" dec="0" /> <attribute name="beg_date" type="date" lenType="rtrim" len="10" dec="0" /> <attribute name="end_date" type="date" lenType="rtrim" len="10" dec="0" /> <index name="code" expression="code"/> <index name="owner_id" expression="owner_id"/> <index name="acc00" expression="acc00"/> <index name="acc01" expression="acc01"/> </meta> <data> <objects depository="ETC0101" class="mng_category" rules="appendOnly"> <object> <attr name="category_name">REFS/r2d2</attr> <attr name="description">Information components for r2d2</attr> <attr name="mng_category" refto="ETC0101:mng_category">REFS</attr> </object> </objects> </data> </component> |
From: Andrey C. <sku...@us...> - 2006-11-03 16:32:10
|
Update of /cvsroot/eas-dev/ocmng/EAS/security In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv6950/EAS/security Added Files: auth.prg auth.xml Log Message: Move all components to top level. Remove ocmng and xml2xmo sources. Add components: - dbconsole - form_menu, form_action and form_localization for menu generation - update form component for generation menu --- NEW FILE: auth.prg --- /*-------------------------------------------------------------------------*/ /* E/AS Component (part of E/AS project) */ /* */ /* Copyright (C) 2005 by E/AS Software Foundation */ /* Author: Andrey Cherepanov <sk...@ea...> */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as */ /* published by the Free Software Foundation; either version 2 of the */ /* License, or (at your option) any later version. */ /*-------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------/ / / / Name: User authentication / / System name: auth / / Description: User authentication / / Version: 0.1 / / Author: Andrey Cherepanov <sk...@ea...> / / / / Available commands: / / AUTH Authenticate user / / <params> Authenticate parameters / / / /--------------------------------------------------------------------------*/ #define DEFAULT_AUTH_METHOD 'PAM' /** Component: auth */ parameters cMethod, params local cContent:='' local oErr, i, err:='' local authMethod := DEFAULT_AUTH_METHOD, cfg local cCmd, cStdOut:=space(0), cStdErr:=space(0) local user, password, authString eDebug(12, "AUTH method:", cMethod, params) oErr := ErrorBlock({|e| break(e) }) begin sequence /*=========================================================================*/ // AUTH() if lower(cMethod) == 'authenticate' cfg := EASGetConfig() cMethod := cfg:getValue('AUTH','METHOD') if .not. empty(cMethod) authMethod := cMethod endif // PAM authentication if upper(cMethod) == 'PAM' cCmd := cfg:getValue('AUTH','PAM') // Substitute CLIPROOT if neccessary cCmd := strtran(cCmd, '$CLIPROOT', getenv("CLIPROOT")) if empty(cCmd) .or. .not. file(cCmd) eDebug(2, "AUTH: file not found:", cCmd) return .F. endif params := params:params if assertParameters( params, { 'name:C', 'password:C' } ) eDebug(2, "AUTH: internal error: missing parameter 'name' and/or 'password'") return .F. endif authString := params:name+" "+params:password+"&\n" syscmd(cCmd, authString, @cStdOut, @cStdErr) //if ( syscmd(cCmd, authString, @cStdOut, @cStdErr) != 0 ) //eDebug(2, "AUTH executable error:",cCmd) //return .F. //endif eDebug(2, "AUTH result:",cStdOut) if left(cStdOut,2) == "OK" eDebug(12, "AUTH: access granted for", params:name) return .T. // Access granted else eDebug(12, "AUTH: access denied for", params:name) return .F. // Access denied endif endif endif recover using oErr i := 1 while ( !empty(ProcName(i)) ) err += "Called from "+allTrim(ProcName(i)) + ; ":" + alltrim(str(ProcLine(i))) + chr(10) i++ end eDebug(5, "Component internal error:", errorMessage(oErr)) return NIL end sequence return .F. --- NEW FILE: auth.xml --- <?xml version="1.0" encoding="koi8-r" standalone="no" ?> <component> <name>auth</name> <category>Core/Security</category> <version>0.1</version> <description>User authentication</description> <license>GNU/GPL</license> <created>2006-04-23</created> <modified>2006-06-04</modified> <requires> <dependence type="component">../forms/form.xml</dependence> </requires> <author>Skull</author> <data> <objects depository="ETC0101" class="mng_form"> <object> <attr name="name">auth.po</attr> <attr name="type">application/x-clip-plugin</attr> <attr name="description">Authentication plugin</attr> <attr name="content">auth.po</attr> </object> </objects> <objects depository="ETC0101" class="mng_command"> <object> <attr name="name">authenticate</attr> <attr name="component_name">auth</attr> <attr name="form" refTo="ETC0101:mng_form">auth.po</attr> <attr name="description"><![CDATA[Authenticate user. Arguments: method - String. Authentication method. Default: 'PAM'. params - Map. Parameters (name:C,password:C). Returns: Logical. .T. if access is granted.]]></attr> </object> </objects> </data> <locale lang="ru"> <name>auth</name> <description>áÕÔÅÎÔÉÆÉËÁÃÉÑ ÐÏÌØÚÏ×ÁÔÅÌÅÊ</description> </locale> </component> |
From: Andrey C. <sku...@us...> - 2006-11-03 16:32:10
|
Update of /cvsroot/eas-dev/ocmng/employee In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv6950/employee Added Files: ACC00.xml ALL.xml Log Message: Move all components to top level. Remove ocmng and xml2xmo sources. Add components: - dbconsole - form_menu, form_action and form_localization for menu generation - update form component for generation menu --- NEW FILE: ACC00.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <name>ACC00-employee</name> <category>CORE/DB</category> <version>1.0</version> <description>Initial metadata for employee</description> <license>GNU/GPL</license> <created>2006-05-19</created> <modified>2006-05-23</modified> <author>Uri</author> <requires> <dependence type="component">../CORE/ACC00.xml</dependence> </requires> <meta dictionary="ACC00" rules="appendOnly"> <extent name="Contracts">Contracts repository</extent> <extent name="EmplDep">Data about all employes data</extent> <extent name="EmplDoc">Employee documents repository</extent> </meta> </component> --- NEW FILE: ALL.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <requires> <dependence type="component">ACC00.xml</dependence> </requires> </component> |
From: Andrey C. <sku...@us...> - 2006-11-03 16:32:10
|
Update of /cvsroot/eas-dev/ocmng/acc-pdoc In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv6950/acc-pdoc Added Files: ACC01.xml ALL.xml Log Message: Move all components to top level. Remove ocmng and xml2xmo sources. Add components: - dbconsole - form_menu, form_action and form_localization for menu generation - update form component for generation menu --- NEW FILE: ACC01.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <name>ACC01-acc-pdoc</name> <category>CORE/DB</category> <version>1.0</version> <description>Initial metadata for accounting primary documents</description> <license>GNU/GPL</license> <created>2006-05-19</created> <modified>2006-05-23</modified> <author>Uri</author> <requires> <dependence type="component">../CORE/ACC01.xml</dependence> </requires> <meta dictionary="ACC01" rules="appendOnly"> <extent name="AccDocument">Account documents repository</extent> </meta> </component> --- NEW FILE: ALL.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <requires> <dependence type="component">ACC01.xml</dependence> </requires> </component> |
From: Andrey C. <sku...@us...> - 2006-11-03 16:32:10
|
Update of /cvsroot/eas-dev/ocmng/equipment In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv6950/equipment Added Files: ACC00.xml ALL.xml Log Message: Move all components to top level. Remove ocmng and xml2xmo sources. Add components: - dbconsole - form_menu, form_action and form_localization for menu generation - update form component for generation menu --- NEW FILE: ACC00.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <name>ACC00-equipment</name> <category>CORE/DB</category> <version>1.0</version> <description>Initial metadata for equipment</description> <license>GNU/GPL</license> <created>2006-05-19</created> <modified>2006-05-23</modified> <author>Uri</author> <requires> <dependence type="component">../CORE/ACC00.xml</dependence> </requires> <meta dictionary="ACC00" rules="appendOnly"> <extent name="equipment">Equipment repository</extent> </meta> </component> --- NEW FILE: ALL.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <requires> <dependence type="component">ACC00.xml</dependence> </requires> </component> |
From: Andrey C. <sku...@us...> - 2006-11-03 16:32:10
|
Update of /cvsroot/eas-dev/ocmng/CORE In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv6950/CORE Added Files: ACC00.xml ACC01.xml ALL.xml ETC01.xml GBL01.xml GBL02.xml VERSIONS.xml Log Message: Move all components to top level. Remove ocmng and xml2xmo sources. Add components: - dbconsole - form_menu, form_action and form_localization for menu generation - update form component for generation menu --- NEW FILE: ACC00.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <name>ACC00</name> <category>CORE/DB</category> <version>1.0</version> <description>ACC00 dictionary</description> <license>GNU/GPL</license> <created>2006-05-19</created> <modified>2006-05-23</modified> <author>Uri</author> <requires> <dependence type="component">VERSIONS.xml</dependence> </requires> <dictionary rules="appendOnly"> <id>ACC00</id> <name>Constable account data</name> <type>$CODBTYPE$</type> <path>$CODBROOT$</path> </dictionary> <meta dictionary="ACC00" rules="appendOnly"> <depository name="Office1" memoSize="32" /> </meta> </component> --- NEW FILE: ACC01.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <name>ACC01</name> <category>CORE/DB</category> <version>1.0</version> <description>ACC01 dictionary</description> <license>GNU/GPL</license> <created>2006-05-19</created> <modified>2006-05-23</modified> <author>Uri</author> <requires> <dependence type="component">VERSIONS.xml</dependence> </requires> <dictionary rules="appendOnly"> <id>ACC01</id> <name>Accounting work data</name> <type>$CODBTYPE$</type> <path>$CODBROOT$</path> </dictionary> <meta dictionary="ACC01" rules="appendOnly"> <depository name="Office1" memoSize="32" /> </meta> </component> --- NEW FILE: ALL.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <requires> <dependence type="component">ETC01.xml</dependence> <dependence type="component">GBL01.xml</dependence> <dependence type="component">GBL02.xml</dependence> <dependence type="component">ACC00.xml</dependence> <dependence type="component">ACC01.xml</dependence> </requires> </component> --- NEW FILE: ETC01.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <name>ETC01</name> <category>CORE/DB</category> <version>1.0</version> <description>ETC01 dictionary</description> <license>GNU/GPL</license> <created>2006-05-19</created> <modified>2006-05-23</modified> <author>Uri</author> <requires> <dependence type="component">VERSIONS.xml</dependence> </requires> <dictionary rules="appendOnly"> <id>ETC01</id> <name>settings data</name> <type>$CODBTYPE$</type> <path>$CODBROOT$</path> </dictionary> <meta dictionary="ETC01" rules="appendOnly"> <depository name="aquarum" memoSize="32" /> <extent name="component">Component data</extent> </meta> </component> --- NEW FILE: GBL01.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <name>GBL01</name> <category>CORE/DB</category> <version>1.0</version> <description>GBL01 dictionary</description> <license>GNU/GPL</license> <created>2006-05-19</created> <modified>2006-05-23</modified> <author>Uri</author> <requires> <dependence type="component">VERSIONS.xml</dependence> </requires> <dictionary rules="appendOnly"> <id>GBL01</id> <name>Global information</name> <type>$CODBTYPE$</type> <path>$CODBROOT$</path> </dictionary> <meta dictionary="GBL01" rules="appendOnly"> <depository name="Russia" memoSize="32" /> </meta> </component> --- NEW FILE: GBL02.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <name>GBL02</name> <category>CORE/DB</category> <version>1.0</version> <description>GBL02 dictionary</description> <license>GNU/GPL</license> <created>2006-05-19</created> <modified>2006-05-23</modified> <author>Uri</author> <requires> <dependence type="component">VERSIONS.xml</dependence> </requires> <dictionary rules="appendOnly"> <id>GBL02</id> <name>Global enterprise information</name> <type>$CODBTYPE$</type> <path>$CODBROOT$</path> </dictionary> <meta dictionary="GBL02" rules="appendOnly"> <depository name="Russia" memoSize="32" /> </meta> </component> --- NEW FILE: VERSIONS.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <name>VERSIONS</name> <category>CORE</category> <version>1.0</version> <description>CLIP and CODB versions</description> <license>GNU/GPL</license> <created>2006-04-24</created> <modified>2006-04-24</modified> <requires> <dependence type="clipversion">CLIP:1.1.16</dependence> <dependence type="codbversion">0.7.0</dependence> </requires> </component> |
From: Andrey C. <sku...@us...> - 2006-11-03 16:32:09
|
Update of /cvsroot/eas-dev/ocmng/EAS/admin In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv6950/EAS/admin Added Files: dbconsole.prg dbconsole.xfl dbconsole.xml Log Message: Move all components to top level. Remove ocmng and xml2xmo sources. Add components: - dbconsole - form_menu, form_action and form_localization for menu generation - update form component for generation menu --- NEW FILE: dbconsole.prg --- /*-------------------------------------------------------------------------*/ /* E/AS Component (part of E/AS project) */ /* */ /* Copyright (C) 2006 by E/AS Software Foundation */ /* Author: Andrey Cherepanov <sk...@ea...> */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as */ /* published by the Free Software Foundation; either version 2 of the */ /* License, or (at your option) any later version. */ /*-------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------/ / / / Name: Database console / / System name: dbconsole / / Description: Database console / / Version: 0.1 / / Author: Andrey Cherepanov <sk...@ea...> / / / / Available commands: / / EXECUTE Execute query / / <query> database query / / GETDATABASES Show available database names / / / / / /--------------------------------------------------------------------------*/ /** Component: dbconsole */ parameters cMethod, params local cContent:='' local oErr, i, err:='', m:='', res, a:={} local componentName:='dbconsole' oErr := ErrorBlock({|e| break(e) }) begin sequence /*=========================================================================*/ // EXECUTE() if lower(cMethod) == 'execute' eDebug(15, componentName + " args:", params) if assertParameters( params, { 'query:C' } ) return NIL endif m := lcomponent('sys.db', 'executeExt', 'db', iif('DB' $ params, params:db,''), 'query', params:query, 'format', .T.) eDebug( 17, componentName + ".execute:", m ) return m /*=========================================================================*/ // GETDATABASES() elseif lower(cMethod) == 'getdatabases' res := lcomponent('sys.db', 'execute', 'query', 'show databases;') for i in res aadd( a, i[1] ) next eDebug( 17, componentName + ".getDatabases:", a ) return a else eDebug(3, componentName + " has not method '"+cMethod+"'") endif recover using oErr i := 1 while ( !empty(ProcName(i)) ) err += "Called from "+allTrim(ProcName(i)) + ; componentName + ":" + alltrim(str(ProcLine(i))) + chr(10) i++ end eDebug(5, " internal error:", errorMessage(oErr)) return NIL end sequence return NIL --- NEW FILE: dbconsole.xfl --- <?xml version="1.0" encoding="koi8-r" standalone="no" ?> <!-- dbconsole.xfl - Database console window --> <form> <head> <call widget=".db" method="setList"> <param><call method="component"> <param value="dbconsole" /> <param value="getDatabases" /> </call></param> </call> </head> <interface> <widget class="childWindow" name=".window" label="Database console"> <widget class="editText" name=".output" /> <widget class="hbox"> <widget class="combobox" name=".db" /> <widget class="edit" name=".command+" /> </widget> <widget class="buttonBar"> <widget class="button" name=".run" label="&Execute" /> <widget class="button" name=".clear" label="Cl&ear" /> <widget class="button" name=".close" label="&Close" /> </widget> </widget> </interface> <style> <property widget=".output" name="readOnly" value="true" /> <property widget=".output" name="font.family" value="courier" /> </style> <actions> <rule> <event widget=".run" signal="clicked"/> <action> <call widget=".output" method="setValue"> <param><call method="component"> <param value="dbconsole" /> <param value="execute" /> <param value="query" /> <param><call widget=".command" method="getValue" /></param> <param value="db" /> <param><call widget=".db" method="getValue" /></param> </call></param> </call> </action> </rule> <rule> <event widget=".clear" signal="clicked"/> <action> <call widget=".command" method="setValue"><param value="" /></call> </action> </rule> <rule> <event widget=".close" signal="clicked"/> <action><call widget=".window" method="close"/></action> </rule> </actions> <locale lang="ru"> <string id="Database console" value="ëÏÎÓÏÌØ ÂÁÚÙ ÄÁÎÎÙÈ" /> <string id="&Execute" value="&÷ÙÐÏÌÎÉÔØ" /> <string id="Cl&ear" value="&ïÞÉÓÔÉÔØ" /> <string id="&Close" value="&úÁËÒÙÔØ" /> </locale> </form> --- NEW FILE: dbconsole.xml --- <?xml version="1.0" encoding="koi8-r" standalone="no" ?> <component> <name>dbconsole</name> <category>Core/Administration</category> <version>0.1</version> <description>Database console</description> <license>GNU/GPL</license> <created>2006-10-23</created> <modified>2006-10-23</modified> <requires> <dependence type="component">../forms/form_service.xml</dependence> </requires> <author>Skull</author> <data> <objects depository="ETC0101" class="mng_form"> <object> <attr name="name">dbconsole.po</attr> <attr name="type">application/x-clip-plugin</attr> <attr name="description">Database console plugin</attr> <attr name="content">dbconsole.po</attr> </object> <object> <attr name="name">dbconsole.xfl</attr> <attr name="type">application/x-xfl</attr> <attr name="description">Database console window</attr> <attr name="content">dbconsole.xfl</attr> </object> </objects> <objects depository="ETC0101" class="mng_command"> <object> <attr name="name">execute</attr> <attr name="component_name">dbconsole</attr> <attr name="form" refTo="ETC0101:mng_form">dbconsole.po</attr> <attr name="description"><![CDATA[Execute query. Arguments: query - String. CQL query. Returns: String with formatted result of query execution.]]> </attr> </object> <object> <attr name="name">getDatabases</attr> <attr name="component_name">dbconsole</attr> <attr name="form" refTo="ETC0101:mng_form">dbconsole.po</attr> <attr name="description"><![CDATA[Get list of available database names. Arguments: None. Returns: Array with available database names.]]> </attr> </object> </objects> <objects depository="ETC0101" class="form_menu"> <object> <attr name="menu_node">dbconsole</attr> <attr name="menu_type">A</attr> <attr name="menu_parent">service</attr> <attr name="menu_order">10</attr> </object> </objects> <objects depository="ETC0101" class="form_action"> <object> <attr name="name">dbconsole</attr> <attr name="menu_name">&Database console...</attr> <attr name="action"><![CDATA[ <call method="openForm"> <param value="dbconsole.xfl"/> </call>]]></attr> </object> </objects> <objects depository="ETC0101" class="form_localization"> <object> <attr name="lang">ru</attr> <attr name="context">menu_name</attr> <attr name="msgid">&Database console...</attr> <attr name="msgstr">ëÏÎÓÏÌØ &ÂÁÚÙ ÄÁÎÎÙÈ...</attr> </object> </objects> </data> <locale lang="ru"> <name>dbconsole</name> <description>ëÏÎÓÏÌØ ÂÁÚÙ ÄÁÎÎÙÈ</description> </locale> </component> |
From: Andrey C. <sku...@us...> - 2006-11-03 16:32:06
|
Update of /cvsroot/eas-dev/ocmng/EAS In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv6950/EAS Added Files: ALL.xml Makefile Log Message: Move all components to top level. Remove ocmng and xml2xmo sources. Add components: - dbconsole - form_menu, form_action and form_localization for menu generation - update form component for generation menu --- NEW FILE: ALL.xml --- <?xml version="1.0" encoding="koi8-r" ?> <component> <requires> <!-- Core/Interface --> <dependence type="component">forms/form.xml</dependence> <dependence type="component">forms/form_menu.xml</dependence> <!-- Core/Security --> <dependence type="component">security/auth.xml</dependence> <!-- Core/Administration --> <dependence type="component">admin/dbconsole.xml</dependence> </requires> </component> --- NEW FILE: Makefile --- ifdef CLIPROOT include $(CLIPROOT)/include/Makefile.inc endif CLIP = $(CLIPROOT)/bin/clip CLIPFLAGS = -alwO PO = admin/dbconsole.po \ forms/form.po \ forms/form_menu.po \ security/auth.po .PHONY: all clean all: $(PO) clean: rm -f $(PO) .prg.po: $(CLIP) $(CLIPFLAGS) -p $< admin/dbconsole.po: admin/dbconsole.prg $(CLIP) $(CLIPFLAGS) -p admin/dbconsole.prg forms/form.po: forms/form.prg $(CLIP) $(CLIPFLAGS) -p forms/form.prg forms/form_menu.po: forms/form_menu.prg $(CLIP) $(CLIPFLAGS) -p forms/form_menu.prg security/auth.po: security/auth.prg $(CLIP) $(CLIPFLAGS) -p security/auth.prg |
From: Andrey C. <sku...@us...> - 2006-11-03 16:20:56
|
Update of /cvsroot/eas-dev/ocmng/acc-pdoc In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv2291/acc-pdoc Log Message: Directory /cvsroot/eas-dev/ocmng/acc-pdoc added to the repository |
From: Andrey C. <sku...@us...> - 2006-11-03 16:20:56
|
Update of /cvsroot/eas-dev/ocmng/equipment In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv2291/equipment Log Message: Directory /cvsroot/eas-dev/ocmng/equipment added to the repository |
From: Andrey C. <sku...@us...> - 2006-11-03 16:20:56
|
Update of /cvsroot/eas-dev/ocmng/configs In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv2291/configs Log Message: Directory /cvsroot/eas-dev/ocmng/configs added to the repository |
From: Andrey C. <sku...@us...> - 2006-11-03 16:20:55
|
Update of /cvsroot/eas-dev/ocmng/CORE In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv2291/CORE Log Message: Directory /cvsroot/eas-dev/ocmng/CORE added to the repository |
From: Andrey C. <sku...@us...> - 2006-11-03 16:20:55
|
Update of /cvsroot/eas-dev/ocmng/EAS/security In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv2262/security Log Message: Directory /cvsroot/eas-dev/ocmng/EAS/security added to the repository |
From: Andrey C. <sku...@us...> - 2006-11-03 16:20:54
|
Update of /cvsroot/eas-dev/ocmng/ref2 In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv2291/ref2 Log Message: Directory /cvsroot/eas-dev/ocmng/ref2 added to the repository |
From: Andrey C. <sku...@us...> - 2006-11-03 16:20:54
|
Update of /cvsroot/eas-dev/ocmng/tests In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv2291/tests Log Message: Directory /cvsroot/eas-dev/ocmng/tests added to the repository |
From: Andrey C. <sku...@us...> - 2006-11-03 16:20:54
|
Update of /cvsroot/eas-dev/ocmng/employee In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv2291/employee Log Message: Directory /cvsroot/eas-dev/ocmng/employee added to the repository |