Commit Graph

349 Commits

Author SHA1 Message Date
Nathan Gray
2302de28f2 Add some et2_IDetachedDOM handling 2011-09-14 20:52:59 +00:00
Nathan Gray
ff2a8102d6 Implemented all link widgets 2011-09-14 20:36:39 +00:00
Nathan Gray
812242a224 Get images working in buttons, sort of
-- Don't know what's happening with events in the grid.  Something happens if you double click, but it's not the button's click method.
2011-09-14 18:37:38 +00:00
Nathan Gray
8b1a63e1ee Transform attributes before passing them to the row's widget 2011-09-14 15:44:54 +00:00
Ralf Becker
ad99ce981f getting server supplied actions working, thought actions submitting the form do not yet work 2011-09-14 14:25:09 +00:00
Nathan Gray
a3901bd00f Link list 2011-09-14 00:06:04 +00:00
Nathan Gray
6b361f770f Handle app/image_name style values 2011-09-14 00:04:54 +00:00
Nathan Gray
43449a0c24 Fix bug where display was not using user preference 2011-09-14 00:04:06 +00:00
Nathan Gray
e31357bd88 Fix date & duration in dataview 2011-09-13 17:37:29 +00:00
Nathan Gray
077acb3fb0 Better warning to help track down offending widget 2011-09-13 17:18:00 +00:00
Nathan Gray
f44558a385 Got link entry working as separate widget 2011-09-12 23:43:39 +00:00
Nathan Gray
1bf74cc95b Read only for date 2011-09-12 15:21:42 +00:00
Ralf Becker
2aff9d170b implementation of old server etemplate::js_pseudo_funcs() on client as et2_js_pseudo_funcs, thought we need to pass the namespace to et2_checkType!!! 2011-09-10 13:16:40 +00:00
Ralf Becker
387be881ee egw.link(_url, _vars) method and using it for JS event handler 2011-09-09 19:41:09 +00:00
Nathan Gray
18a930446f Avoid '_node is undefined' error breaking nm 2011-09-09 16:50:44 +00:00
Nathan Gray
a5ea1f78d9 Get selectbox _appendOptionElement working with empty_label automatically 2011-09-09 15:47:38 +00:00
Andreas Stöckel
5a994382ed Added forgotten et2_dataview_view_rowAOI.js 2011-09-09 14:41:11 +00:00
Andreas Stöckel
1b74d53608 grid now keeps its average height setting after clearing 2011-09-09 14:40:28 +00:00
Andreas Stöckel
2290b04102 Loading data from server in nextmatch widget - readonlys is not processed as it is not so easy to handle 2011-09-09 14:32:55 +00:00
Ralf Becker
395f4a804d added progress-widget 2011-09-09 12:39:27 +00:00
Ralf Becker
e4b8dfd9f5 working progress widget, thought infolog uses a button with an image, which is a progressbar ... 2011-09-09 12:17:16 +00:00
Andreas Stöckel
3ec9de5a30 Removed silver nextmatch background color introduced for debug purposes 2011-09-09 11:44:44 +00:00
Andreas Stöckel
58bc3367df Implemented server-side callback function 2011-09-09 11:29:07 +00:00
Andreas Stöckel
45d02dfeb9 Fixed dataview dependencies and got nextmatch-widget load in timesheet.index 2011-09-09 09:57:59 +00:00
Andreas Stöckel
65a90eabb8 Defaulting 'null' entries in the content-arrays to {} 2011-09-09 09:28:48 +00:00
Ralf Becker
efca5500d9 first try of a progress widget, not yet working :-( 2011-09-09 08:29:31 +00:00
Ralf Becker
bef3880b48 fixed wrong name 2011-09-09 08:28:40 +00:00
Nathan Gray
89991ffb60 Link widget with async file upload + linking 2011-09-09 00:05:46 +00:00
Nathan Gray
312fcf2e0b - Change remove file handler to only remove if you click the x, not the whole entry
- Add hooks for js functions when upload starts and finishes
2011-09-09 00:05:18 +00:00
Ralf Becker
ea03c4032b implemented link attributes for image-widget and added them to xulio, some docu for describtion 2011-09-08 20:44:53 +00:00
Nathan Gray
e7af7de431 Pass etemplate_exec_id in POST instead of GET to avoid potential issues with long ids 2011-09-08 20:33:46 +00:00
Andreas Stöckel
57dc999881 Activating et2_IDetachedDOM implementation of et2_image widget as image and progressbar are now to seperate widgets 2011-09-08 19:36:48 +00:00
Andreas Stöckel
115d677113 Fixed real problem with building new templates failing after nextmatch widget has been used 2011-09-08 19:18:01 +00:00
Andreas Stöckel
ea346ce19c Fixed problem with building new templates failing after nextmatch-widget has been used 2011-09-08 18:53:08 +00:00
Andreas Stöckel
37dc6545cc Fixed bug which caused row content to disappear after a while 2011-09-08 18:42:18 +00:00
Andreas Stöckel
87c0db7be1 Fixed correct expanding of names and implemented the dataProvider class 2011-09-08 18:36:09 +00:00
Nathan Gray
e151398d94 Add read-only implementation of date-duration 2011-09-08 17:11:49 +00:00
Ralf Becker
008f009d80 - implemented new egw.link_app_list(_must_support) and egw.link_get_registry(_app, _name) methodes
- using egw.link_app_list('query') in link widget (no need to transfer it additonally)
- added some more docu to egw object
2011-09-08 12:24:53 +00:00
Nathan Gray
d9f321a413 Start of a link-to widget using jQuery-UI's autocomplete 2011-09-07 23:32:24 +00:00
Andreas Stöckel
b1223cb426 Expressions in the dataview-rows are now evaluated correctly 2011-09-07 16:59:23 +00:00
Andreas Stöckel
89304fca0c Fixed problem with whitespace being skipped 2011-09-07 16:35:34 +00:00
Andreas Stöckel
efc173cd2c Fixed problem with escaping and added a few test cases to the PHP->JS compiler 2011-09-07 16:31:32 +00:00
Andreas Stöckel
db074aa39c Added code which compiles PHP string expressions (like {[test]} ) into JavaScript functions. 2011-09-07 16:11:13 +00:00
Nathan Gray
b2e032245a - Nicer UI for status
- Implement server side callback function when file is uploaded
- Send needed file info back to client instead of storing in session
2011-09-06 19:55:52 +00:00
Nathan Gray
02c414129a Check for name expansion 2011-09-06 19:53:14 +00:00
Andreas Stöckel
8d5b990826 Implemented system for fast cloning of rows in the dataview - widgets which want to support this method have to implement et2_IDetachedDOM 2011-09-06 16:50:38 +00:00
Ralf Becker
0947430796 missing encoding of id 2011-09-06 06:23:12 +00:00
Andreas Stöckel
d037187234 Added code for creating widget-rows in the dataview 2011-09-05 14:35:28 +00:00
Andreas Stöckel
a13dfef19e Fixed code for auto-reducing the grid rows, removed debug messages 2011-09-05 09:13:58 +00:00
Andreas Stöckel
b99c338511 Fixed IE compatibility 2011-09-02 16:23:26 +00:00
Andreas Stöckel
7457315ea4 Fixed problem with calculated values diverging from actual height values 2011-09-02 16:15:57 +00:00
Nathan Gray
8875c94c24 Async file uploads 2011-09-01 22:07:30 +00:00
Andreas Stöckel
0607a2c9a8 Fixed problem with column widths not being calculated/displayed correctly 2011-09-01 10:02:23 +00:00
Nathan Gray
990e1701f5 Work in progress on file upload 2011-08-31 23:37:30 +00:00
Nathan Gray
e8467d6679 Handling of 12 hour time in read-only timeonly 2011-08-31 20:32:24 +00:00
Nathan Gray
8daa7d0021 Get date+time & time working using HTML5 type=time if available, fallback to 2 selectboxes if not 2011-08-31 19:58:38 +00:00
Nathan Gray
c953c58b17 Remove warning, not needed 2011-08-31 19:48:07 +00:00
Andreas Stöckel
54cf0cbf26 Selectbox widget now doesn't use actual widgets for the transmitted options - for lists like the country selection, this created a huge slowdown while page creation. 2011-08-31 16:58:44 +00:00
Nathan Gray
0dea78ab2e - Pull application name from template ID for image
- Use label as tooltip
- Apply CSS classes to image
2011-08-31 16:00:45 +00:00
Andreas Stöckel
c5c90fbce0 Removed debug messages and made it work with ff 2011-08-31 15:58:24 +00:00
Andreas Stöckel
035a4d369f First version of the dataview which does... well... 'something' at least (currently shows dummy rows with non-etemplate content) Need to cleanup code and test auto hiding of rows (code is actually there) 2011-08-31 15:39:24 +00:00
Ralf Becker
17d066a724 using egw.user(_field) to get account_id and phone-number, plus fixing precedence of "tel:" for iOS/Android 2011-08-31 12:18:38 +00:00
Ralf Becker
499726cb23 using egw.image(), thought there are some problems:
- src attribute get never translated: fixed
- label is in etemplate not the alt attribute, it is a title / tooltip (probably ok as alt too)
- egw.image should be called with appname part of template
- if image is not found, etemplate should render an empty widget, not a broken one
2011-08-31 06:29:51 +00:00
Nathan Gray
114debd00f Include the handler code that caused the error 2011-08-31 00:09:55 +00:00
Nathan Gray
7b7397e92d Fix missing popup button 2011-08-31 00:08:59 +00:00
Nathan Gray
86a356314b Fix missing onclick 2011-08-31 00:03:50 +00:00
Nathan Gray
131a032da6 Fix regexp - no match() function, switched to test() 2011-08-30 21:36:55 +00:00
Nathan Gray
8a632c723a - Add image widget
- Add missing dependency on et2_core_common
2011-08-30 20:56:01 +00:00
Nathan Gray
4fc8cadcb2 Code cleanup - remove debug, late date class handle date-houronly 2011-08-30 20:52:10 +00:00
Nathan Gray
c84a471538 Implement last of the date widgets 2011-08-30 20:50:55 +00:00
Nathan Gray
c0abff9612 - Get email widget working with felamimail if user has access, mailto: otherwise
- Get phone widget working using telephony integration if configured, tel: if user's on an Android or iPhone
- Popup calendar on date widget
2011-08-29 21:15:53 +00:00
Andreas Stöckel
97418ebbbb Just commiting current state of my work on the 'dataview' (grid), does NOT do anything usefull right now 2011-08-29 15:04:10 +00:00
Andreas Stöckel
f370f5f8ab DOM Nodes are now reinserted at their correct place after having been detached (caused bug whenn calling 'showMessage' on an element which is inside a vbox) 2011-08-26 11:15:28 +00:00
Andreas Stöckel
5c4c175ce2 Checked IE compatibility; dataview columns now resizes correctly; removed event code from etemplate2.js, use interfaces instead (as done with the 'resize' event) 2011-08-26 09:58:25 +00:00
Nathan Gray
890efd006b Implement blur/placeholder for textbox 2011-08-25 23:39:34 +00:00
Nathan Gray
105c79883f Hide button when value is cleared 2011-08-25 23:00:44 +00:00
Nathan Gray
7f5d8cec65 Fix typo 2011-08-25 22:50:08 +00:00
Nathan Gray
e551dc3895 URL widget
- Still needs to get telephony link from server, felamimail not tested because egw.link_registry not populated
2011-08-25 22:42:07 +00:00
Nathan Gray
5947d0a481 Fix typo 2011-08-25 22:13:54 +00:00
Ralf Becker
fb62831e86 fixing TypeError stoping etemplate.test.contact_widget from displaying, because attribute "type" is not defined
maybe we dont want setting of undefined attributes, but then it should give a clear error (eg. exception)
--> https://localhost/egroupware/etemplate/inc/class.etemplate_new.inc.php?name=etemplate.test.contact_widget tests contact-widgets
2011-08-25 20:09:45 +00:00
Andreas Stöckel
4114068cb3 Added et2_extension_nextmatch_dynheight.js which cares about resizing a div to the maximum possible height - this is needed because the new grid has to be explicitily sized to a given width and height 2011-08-25 15:54:15 +00:00
Andreas Stöckel
ec5b162bfa Moved et2 core interfaces to own file; implemented Class.free which cares about calling 'destroy', removing all references the object may hold and rendering the object unusable after 'free' has been called; added 'getMem_freeMem_trace' which helps hunting down memory leaks with objects derriving from Class; added first implementation of the nextmatch widget - currently does nothing else but rendering the header and clicking on the nextmatch_sortheader labels 2011-08-25 13:35:53 +00:00
Andreas Stöckel
a11abf6412 Selectbox options now set themselves selected 2011-08-24 11:31:30 +00:00
Andreas Stöckel
6e33c99db0 Fixed bad dependency 2011-08-24 10:44:51 +00:00
Andreas Stöckel
53f4064cdc Added some naming scheme to the js files 2011-08-24 10:18:07 +00:00
Andreas Stöckel
7b5e73b600 Added support for attribute descriptor 'translate': '\!no_lang', fixed problem with selectbox options not being read from sel_options, removed attributes from init function as they were either outdated or not used 2011-08-24 10:05:52 +00:00
Ralf Becker
57767df461 fixed not working label_for --> for attribute 2011-08-24 07:55:20 +00:00
Ralf Becker
33c6766c88 - fixed xul_io class not exporting id of tab
- fixed tab widget to use id instead of label
- added attribute names for describtion (label) in xul_io, to export them as single attributes not comma-sep. as options
- added translate: true to description/label title
--> xet-files need to be dumped new, to get the tab-ids
--> seems like describtion value is translated unconditional, it should only be translated if no_lang attribute is not set or false, while label attribute is always translated (Andreas?)
2011-08-24 07:18:59 +00:00
Nathan Gray
07c61d65f0 Implement selecting tab via content array, hiding tab via readonlys array 2011-08-23 21:33:40 +00:00
Andreas Stöckel
e1eefeaafa Fixed problem with tabs not being translated 2011-08-23 17:10:56 +00:00
Andreas Stöckel
b0a21acb12 Changed name of 'label_for' attribute to 'for', implemented attribute translation 2011-08-23 17:05:05 +00:00
Andreas Stöckel
934e33fdd7 Fix for reading modifications 2011-08-23 15:28:54 +00:00
Andreas Stöckel
f00d5aba60 Parsing the 'modifications' array 2011-08-23 15:27:34 +00:00
Andreas Stöckel
b382dc570f Fixed readonly buttons are rendered 2011-08-23 15:05:13 +00:00
Andreas Stöckel
86414e7daa Moved 'getValues' function to etemplate2 class, added 'et2_surroundingsMgr' class, which is capable of managing DOM-Nodes which are inserted around an widget (see set_label function in et2_input and showMessage function in et2_baseWidget as an example of how to use it), added parsing server side validation errors 2011-08-23 14:59:49 +00:00
Andreas Stöckel
cb27424f5b Added et2_createWidget function and got et2_selectbox_ro working correctly with predefined options and non-string option-entries. 2011-08-23 09:45:45 +00:00
Nathan Gray
d9ab0a9ce8 - Fix empty label
- Add readonly for selectbox
2011-08-23 00:12:01 +00:00
Nathan Gray
e8e5a3066a Simple date/time, still needs to know user format 2011-08-22 18:18:29 +00:00
Ralf Becker
b65c87ec2c added all existing select-* widgets 2011-08-22 16:56:45 +00:00
Andreas Stöckel
c5acfe93bf Added 'overflow' attribute, got infolog.edit loading 2011-08-22 16:37:04 +00:00
Andreas Stöckel
4869ca9a49 Implemented hiding grid columns and rows, fixed bug with et2_template::isInTree returning false in the wrong places and thus not all values being transmitted back to the server 2011-08-22 15:58:47 +00:00
Andreas Stöckel
445c04dce1 Added onclick handler to baseWidget and change handler to inputWidget 2011-08-22 14:38:05 +00:00
Andreas Stöckel
1db6a7aaf5 Added support for the 'class' attribute 2011-08-22 11:16:37 +00:00
Andreas Stöckel
05eb7d0f54 Added 'activateLinks' ability to description tags 2011-08-22 10:50:55 +00:00
Andreas Stöckel
711b1c4886 Labeles are now generated as 'label' tags, basic implementation of the 'for' attribute, sel_options can now contain entries with 'title' and 'label' 2011-08-22 08:58:20 +00:00
Andreas Stöckel
e3bea68512 Added XET file for label test 2011-08-21 15:22:28 +00:00
Andreas Stöckel
8bc726e1b8 Implemented 'label' property for input widgets (nathans code didn't work anymore), renamed 'parseArrayMgrAttrs' to 'transformAttributes' 2011-08-21 15:22:00 +00:00
Andreas Stöckel
09bc77426c Selectbox now allows 'option'-widgets inside of it, added hrule widget, added support for 'buttononly' 2011-08-21 13:24:20 +00:00
Andreas Stöckel
4ad303529c Added forgotten tab header 2011-08-21 13:15:25 +00:00
Andreas Stöckel
0fdf434321 Got JS handlers working again 2011-08-21 12:23:56 +00:00
Andreas Stöckel
aa07a39a2e Don't allow children for the menupopup 2011-08-21 08:59:12 +00:00
Andreas Stöckel
127e629eef Adapted selectbox widget code to new etemplate2 js core scheme 2011-08-21 08:48:53 +00:00
Andreas Stöckel
7c7a8230cf Added basic approach to have selectbox widget running again (probably not fully working yet) 2011-08-20 18:34:14 +00:00
Andreas Stöckel
fcff01e3cc Fixed textbox cols/rows always being set to 1 2011-08-19 16:39:28 +00:00
Andreas Stöckel
5af5594f60 Major update of the et2_widget internal structure. The following changes were made:
- All attributes of the widgets are now parsed from XML before the widget itself is created.
These attributes plus all default values are then added to an associative array. The associative array is passed as second parameter to the init function of et2_widget, but is also available as this.options *after* the constructor of the et2_widget baseclass has been called.
The et2_widget constructor also calls a function parseArrayMgrAttrs(_attrs) - in this function widget implementations can read the values from e.g. the content and validation_errors array and merge it into the given _attrs associative array.
After the complete internal widgettree is completely loaded and created the "loadingFinished" function gets called and invokes all given setter functions. After that it "glues" the DOM tree together. This should also (I didn't measure it) be a bit faster than before, when the DOM-Tree was created on the fly. 

Please have a look at the changes of the et2_textbox widget to see how this affects writing widgets.

Note: The "id" property is copied to the object scope on the top of the et2_widget constructor.

- When widgets are cloned the "options" array gets passed along to the newly created widget. This means that changes made on the widgets during runtime are not automatically copied to the clone - as this didn't happen anyhow it is not a really disadvantage.
On the other side there should be no difference between widgets directly inside the "overlay" xet tag and widgets which are inside instanciated templates.

- The selbox widget doesn't work anymore - it relied on the loadAttributes function which isn't available anymore. et2_selbox should use the parseArrayMgrAttrs function to access

- I've commented out some of the "validator"-code in etemplate2.js as it created some error messages when destroying the widget tree.
2011-08-19 16:00:44 +00:00
Nathan Gray
5e54d6b12b Add basic radio, readonly version of checkbox/radio 2011-08-18 17:34:01 +00:00
Nathan Gray
fb43e96aeb Use getInputNode() instead of inconsistant variable for default label implementation 2011-08-17 23:26:01 +00:00
Nathan Gray
9f3551cc7a PHP test page, works inside eGW + validation test 2011-08-17 23:06:25 +00:00
Nathan Gray
e76cf6eab2 - Add labels to input widgets
- Add row & col properties to textarea
2011-08-17 22:56:49 +00:00
Nathan Gray
03d549bab9 Add validation (basic client & server side) 2011-08-17 21:36:08 +00:00
Nathan Gray
c409e8d73e Fix typo breaking selectbox options 2011-08-17 21:32:38 +00:00
Nathan Gray
ba5fee777c Basic widgets xml file 2011-08-17 19:46:19 +00:00
Nathan Gray
379b05b39f Get empty label / row count legacy option working 2011-08-17 17:50:15 +00:00
Nathan Gray
abf37487b8 Fix typo 2011-08-17 17:48:39 +00:00
Andreas Stöckel
2234cc3413 Added very simple but working implementation of the tabs widget 2011-08-17 09:07:09 +00:00
Nathan Gray
e792130479 Stop errors from missing _data and missing array managers 2011-08-16 21:18:26 +00:00
Nathan Gray
e981e7911f Get option value from content, add empty label 2011-08-16 21:18:06 +00:00
Ralf Becker
fae753a551 added hiearchical names in widget id's like 'button[save]' 2011-08-16 20:32:18 +00:00
Nathan Gray
f0db6211b9 Put options in selectbox 2011-08-16 20:32:13 +00:00
Ralf Becker
510ce7c159 - using etemplate_request object and a etemplate_exec_id
- "processing" the submit on serverside (no validation yet)
--> content returned by ajax call is not an hiearchical array: eg. "button[save]" => 1, instead of "button" => array("save" => 1)
- new call to etemplate_new::exec() is send back via new JSON generic et2_load response
--> how do we handle output of callback: a) debug output, eg. echos and b) echo "<html><head><script>window.close();</script></head></html>"; exit;
2011-08-16 19:40:48 +00:00
Nathan Gray
11ccd9c057 Check that value is a string before treating it as one 2011-08-16 19:01:45 +00:00
Nathan Gray
df2869c07f Add simple checkbox, missing ID property 2011-08-16 18:42:17 +00:00
Andreas Stöckel
63d0baf497 Added event listener system to etemplate2 2011-08-16 18:18:18 +00:00
Nathan Gray
03b4704685 Add basic implementation of numeric (int & float) and selectbox widgets 2011-08-16 17:02:09 +00:00
Andreas Stöckel
fb8ef99c0b Added align property and working hbox/vbox implementation 2011-08-16 16:46:22 +00:00
Nathan Gray
a6ebfff827 Fix infinite loop 2011-08-16 16:44:21 +00:00
Andreas Stöckel
fef5ad8ebd Improved invalde type handling 2011-08-16 13:45:41 +00:00
Andreas Stöckel
786ec9220c Added widget for html-XET tag and added forgotten et2_styles.js 2011-08-16 13:12:39 +00:00
Andreas Stöckel
40a11bdb4f Added widget for 'styles' XET tag 2011-08-16 12:56:55 +00:00
Andreas Stöckel
41787c36f3 - Reading readonly properties
- Added system for readonlys: Readonly is passed in constructor as third parameter. If a widget class is registerd with "[type]_ro" (see et2_textbox for example) this one is created
- Added new 'valueWidget' base class which introduces the 'value' attribute and implements auto loading from the content array
- Implemented readonly attribute for buttons and textboxes
2011-08-16 12:31:18 +00:00
Nathan Gray
4fe9d951a8 Fix typo 2011-08-15 18:54:13 +00:00
Andreas Stöckel
3bdca867e7 et2_debug is now capable of taking any count of arguments as the console.* functions do, improved 'Attribute does not exist' message, fixed memory leak in grid (inherited destructor was not called) 2011-08-15 16:03:53 +00:00
Andreas Stöckel
8207a325aa Moved loading of data-array attributes to the new 'loadingFinished' function 2011-08-15 14:52:45 +00:00
Andreas Stöckel
7800cfc5d4 Implemented et2_IInput interface for et2_button in order to transfer the id of the clicked button back to the server, implemented etemplate2.submit function, implemented egw_json et2_load response type to load a new template with new data. 2011-08-15 14:29:58 +00:00
Andreas Stöckel
fd21e247a1 etemplate2 object now creates not passed entries in the data array 2011-08-15 12:46:27 +00:00
Andreas Stöckel
8c9fd0f636 Implemented usage of mutliple array-manager objects (the object which cares about proper namespacing etc.) for each supplied data manager part (like 'content', 'readonlys' etc.), renamed et2_contentArrayMgr.js to et2_arrayMgr.js, renamed et2_all.js to etemplate2.js and added an top-level object which cares about loading the template, creating the array managers etc. 2011-08-15 12:34:00 +00:00
Andreas Stöckel
be34748b32 Added et2_all.js 2011-08-15 11:13:22 +00:00
Andreas Stöckel
f9914e069c Fixed problem with getValues iterating over widgets which are in proxied templates 2011-08-15 10:04:37 +00:00
Andreas Stöckel
29c16431ad Added new attribute type 'js', which cares about converting given JS code to a function 2011-08-15 09:24:32 +00:00
Andreas Stöckel
bb4aab7854 Fixed two dependencies 2011-08-15 08:42:07 +00:00