Commit Graph

58 Commits

Author SHA1 Message Date
Ralf Becker
f57b4580a5 reverting r53406, r53423: using JSON instead of XML for templates on client-side to improve IE performace, as it did not give any performance improvement 2015-08-20 14:57:18 +00:00
Nathan Gray
ecb972ca66 Etemplate now uses JSON instead of XML for templates on the client side.
XML files are parsed into JSON objects on the server, then sent as JSON.
Etemplate parses the JSON object on the client side instead of the XML file directly.  This is supposed to be faster for IE.
2015-08-18 17:47:40 +00:00
Klaus Leithoff
c73f4bcb4c silence some chitter-chatter of etemplate_new 2015-07-07 12:14:19 +00:00
Klaus Leithoff
01fdd4d33a fix/avoid warning on NULL sel_options subarray in fix_sel_options 2015-05-19 14:27:06 +00:00
Ralf Becker
d82f65e95e reverting r52412, as it breaks not validating not send values, sending empty array for nothing selected in selectbox instead of (not submitted) null value 2015-04-03 12:43:26 +00:00
Hadi Nategh
5026216842 Treat iceweasel browser like as firefox 2015-03-31 13:55:05 +00:00
Hadi Nategh
467578d34f Consider iceweasel browser in autocomplete_fix handling 2015-03-31 12:30:43 +00:00
Ralf Becker
63a7af621d allow to submit partial content by passing a container(-widget) to etemplate2.submit()
- not send content is not validated and therefore not passed to server-side callback (currently only implemented for text-, select- and checkbox)
- new method et2_grid.getRow(_widget) to return a fake row container to pass it etemplate2.submit() --> implemented a real row-container for et2_grid
- new output_mode=4 for etemplate_new::exec() to force a json response, like form was submitted from client-side
--> allows to use full server-side validation for ajax like calls submitting only partial content
2015-03-20 02:12:33 +00:00
Hadi Nategh
cdb1f042a2 Make the autocomplete iframe helper invisible 2015-02-10 13:15:48 +00:00
Hadi Nategh
2554c30da7 Fix security error about autocomplete form happens only in FF 2015-02-04 09:40:52 +00:00
Hadi Nategh
13684d4903 Activate cross-browser autocomplete
- Replace et2_contianer from DIV to FORM
- Add autocomplete fixer to submit action
- Add autocomplete fixer to nextmatch search box
2015-02-03 17:42:32 +00:00
Hadi Nategh
59e922221c Enhance autocomplete fixer and fixes some bugs 2015-01-27 10:52:42 +00:00
Hadi Nategh
ebab506aa9 * All Applications: Get browser autocomplete form working 2015-01-26 16:13:08 +00:00
Ralf Becker
70b603ac77 moving VFS API classes into a namespaced PSR4 autoloadable structure:
- PSR4 autoloader exists beside our old autloader to support old as well as new structure until everything is ported over
- moved ported API stuff from phpgwapi to new api directory (idea is phpgwapi become a compatibility layer for old code, while we only port selected stuff to new api directory)
- namespaces use prefix "EGroupware", then (first letter capitalised) app-name or "Api", sub-system names like "Vfs" or for apps "Ui", "Bo, "So" and at least class name starting with a capital letter and without understores eg. "StreamWrapper" plus just ".php"
- examples:
  + egw_vfs in phpgwapi/inc/class.egw_vfs.inc.php --> EGroupware\Api\Vfs in api/src/Vfs.php
  + sqlfs_stream_wrapper in phpgwapi/inc/class.sqlfs_stream_wrapper.inc.php --> EGroupware\Api\Vfs\Sqlfs\StreamWrapper in api/src/Vfs/Sqlfs/StreamWrapper.php
  + sqlfs_utils in phpgwapi/inc/class.sqlfs_utils.inc.php --> EGroupware\Api\Vfs\Sqlfs\Utils in api/src/Vfs/Sqlfs/Utils.php
- api directory is no a new svn module but exists (like home) as sub-directory under base egroupware module
2015-01-26 09:15:07 +00:00
Ralf Becker
ecc9dece92 throw an exceptin with a more maningful message if a template does not contain a template tag with an id attribute matching template name, eg. it was forgotten to rename when customizing 2014-12-04 15:51:59 +00:00
Ralf Becker
5eeac7093c use filemanager UI as UI for sharing directories 2014-11-18 12:55:32 +00:00
Ralf Becker
3e12e8f2f9 * Preferences: opening forced preferences set selectboxes for not set values to first real value not "Users Choice"
caused by etemplate_widget_menupopup not being run, it is now run by etemplate_new::exec / etemplate_new::fix_sel_options for everything in sel_options
2014-09-30 14:27:29 +00:00
Ralf Becker
fad57f202b using egw_json_response::json_encode() for GET requests too, to work agains empty windows caused eg. by wrong encoding 2014-09-10 18:25:36 +00:00
Ralf Becker
f49bbab26f fix an other CSP error, caused by json-responses send eg. from get_rows method on a GET request, filemanager opened in iframe from tracker 2014-07-17 17:26:00 +00:00
Nathan Gray
94b726f883 Don't remove request from POSTs, etemplate is still active client side.
Fixes etemplates stop working after downloading a file (merge print, zip, etc.)
2014-07-14 12:03:04 +00:00
Ralf Becker
ce3c5c897f stop server-side validation errors, if submit was with no_validation 2014-04-02 19:30:33 +00:00
Ralf Becker
1007f2ec7e fixed idots not always loaded client-side configuration: now using egw_info[flags][nonavbar] === "popup" to let framework definitly know we dont want a navbar (need to know before navbar is called and can not use true, which is allways set by index.php) 2014-03-25 12:12:00 +00:00
Ralf Becker
20193e6418 more changes etemplate_old --> etemplate, maybe better not started that ;-) 2014-03-23 09:34:18 +00:00
Ralf Becker
1f0dd46118 as we use now etemplate_new for eTemplate2 and etemplate for old eTemplate class, there is no need to switch etemplate class between new and old 2014-03-23 08:41:31 +00:00
Ralf Becker
4a08f033e7 renamed etemplate to etemplate_old and etemplate_new to etemplate, thought new etemplate is still disabled in etemplate/inc/class.etemplate.inc.php line 38 2012-03-27 15:45:31 +00:00
Nathan Gray
56070c43c5 Add start of ajax select widget, get submits working again 2012-03-22 23:31:31 +00:00
Nathan Gray
670bda71e3 Move CSS into proper position 2012-03-20 15:26:34 +00:00
Nathan Gray
abe44d99c7 Include jQuery-UI CSS for all 2012-03-19 19:52:35 +00:00
Nathan Gray
0aa4c66803 Don't proxy template, just don't load it until asked for 2012-03-14 21:27:23 +00:00
Ralf Becker
2bbb3b07e9 using new egw.langRequire to load translations only once (per top-window load) 2012-03-14 12:10:31 +00:00
Nathan Gray
8820bf0acf Whoops - revert accidental commit 2012-03-12 17:58:55 +00:00
Nathan Gray
c2d1edc754 Make button onclick work inside nextmatch again 2012-03-12 17:55:52 +00:00
Andreas Stöckel
dc017ed889 Now again using a local etemplate2 instance on the client 2012-03-12 12:05:14 +00:00
Ralf Becker
3a4274af02 added show method calling etemplate_old::show(), so calendar keeps working after renaming etemplate --> etemplate_old and etemplate_new --> etemplate 2012-03-12 08:42:05 +00:00
Andreas Stöckel
d486e50a57 phpgwapi:
* Changed way of how "webserverUrl" gets set - any type of data can now be
	  injected into the egw object by creating an object with the data and an
	  entry "prefsOnly" set to true. This allows to ensure, that "webserverUrl"
	  is the first thing that is being set in the egw object (as needed when
	  including new JS/CSS files at runtime)

jsapi:
	* Fixed including JS/CSS files at runtime in other windows than the root
	  window
	* Added "ready" function/module, which provides an alternative to the
	  $j("ready") function. The ready module provides the functionality to
	  postpone calling the "ready" until certain events happened.
	* using jQuery calendar object instead of jscalendar in the calendar
	  function.
	* added "jquery" module which takes care of including all jQuery modules
	  in all windows
	* added possibility for modules to update constants using the "constant"
	  function.
	* added possibility for modules to access certain other modules using
	  the "module" function

etemplate:
	* Using new egw(window).ready function to build the template first if
	  loading has finished.
2012-03-09 15:32:29 +00:00
Andreas Stöckel
df06f6657c Now always including egw and etemplate2 javascript code if we are in the top window 2012-03-08 14:05:00 +00:00
Andreas Stöckel
049cbd88dc Now using the etemplate code from the root instance (etemplate2.js acts as a egw api plugin); fixed egw.json plugins; fixed problem with 'instanceof Object', which does not work when sharing code over multiple windows 2012-03-06 13:22:01 +00:00
Andreas Stöckel
ecad6a0d01 Fixed translation of description widgets 2012-03-02 12:13:20 +00:00
Nathan Gray
a5e904faa1 Revert accidentally commited devel stuff 2011-12-23 16:29:09 +00:00
Nathan Gray
587418fca2 If hooked, keep app in extension_data to persist across etemplate loops. Fixes lost infolog custom fields in addressbook view when changing nm filters
- Attempt 2, see r36788.
2011-12-23 16:27:41 +00:00
Ralf Becker
64b4ac7e68 added a static method max_upload_size_message, required by some apps 2011-09-09 13:26:14 +00:00
Ralf Becker
502ac42923 - etemplate_widget_transformer abstract baseclass to define new widgets using a transformation out of existing widgets
- defines a syntax to describe how the widget is build out of existing widgets
--> reimplemented contact-widget using that aproach on serverside for old etemplate
--> sending the modifications via etemplate_widget::setElementAttribute() to the client fails, because client does not support changing the widget type
--> need to be implemented on the client
2011-08-25 19:52:51 +00:00
Ralf Becker
04aa3d35b9 - no longer translating options on server-side
- sending evtl. necessary no_lang attribute via modifications to client
- deprecated template->(get|set|disable)_cell(_attribute) in favor of new etemplate_widget::(get|set|disable)Element(Attribute)
--> options via sel_options are currenlty not working on clientside
2011-08-24 09:24:55 +00:00
Ralf Becker
0aa128b53e Loading translations like other javascript files:
setting headers to allow browser to cache the file until it's etag containing the creationdates of the used langfiles changes
--> et2 can now use egw_lang object to translate labels, options, ...
2011-08-21 20:09:14 +00:00
Ralf Becker
c4293ba3bc honor disabled attribute in validation for widgets including grid rows, but not yet grid columns 2011-08-21 11:55:56 +00:00
Ralf Becker
e0624ebe89 removed set_(row|column)_attributes and disable_(row|column) method, which modifies template on run-time, it was only used internally by etemplate 2011-08-21 09:14:58 +00:00
Ralf Becker
e92087df31 - new validator for selectboxes (menupopup)
- also used currently to supply options for predefined selectboxes (eg. select-cat), need to discuss if we want to fetch these per ajax
- new widget method run, which runs a given method on all widgets (and children) supporting it, eg. used now for validate
2011-08-20 10:27:38 +00:00
Ralf Becker
30ed6a8ab7 - added legacy-options parsing and defintions for currently implemented widgets
- added more server-side debuging:
* etemplate_widget_template class can be called via url and displays parsed xml, eg:
  http://localhost/egroupware/etemplate/inc/class.etemplate_widget_template.inc.php?name=infolog.edit
  This is different from directly calling the xet file, as it show what got parsed and how:
  http://localhost/egroupware/infolog/templates/default/edit.xet
* etemplate_new class can be called via url to render an arbitrary template, eg:
  http://localhost/egroupware/etemplate/inc/class.etemplate_new.inc.php?name=timesheet.edit
  Thought not all are already rendered correct, eg. infolog.edit is not:
  http://localhost/egroupware/etemplate/inc/class.etemplate_new.inc.php?name=infolog.edit
2011-08-19 08:22:19 +00:00
Ralf Becker
a488b67f99 serverside validation for textbox and button 2011-08-18 21:56:37 +00:00
Nathan Gray
03d549bab9 Add validation (basic client & server side) 2011-08-17 21:36:08 +00:00