1. 02 Aug, 2017 2 commits
  2. 01 Aug, 2017 2 commits
  3. 30 Jul, 2017 1 commit
  4. 24 Jul, 2017 1 commit
    • Carsten  Rose's avatar
      recordLocking · feaeeffc
      Carsten Rose authored
      DatabaseUpdateData.php: Table Form: recordLockTimeoutSeconds - default changed from 0 to 900 secs. Existing forms get the default timeout timout interval.
      Dirty.php, QuickFormQuery.php: recordLockTimeoutSeconds will be retrieved from the Form.recordLockTimeoutSeconds definition (instead of parsing config.qfq.ini). Therefore a definition per form ist possible.
      feaeeffc
  5. 22 Jul, 2017 1 commit
    • Carsten  Rose's avatar
      recordLocking · ecce620b
      Carsten Rose authored
      file.php, load.php, Html2Pdf.php: minor updates.
      Dirty.php, QuickFormQuery.php: optional $lockTimeout as parameter during instantiating. Return $lockTimeout where necessary. Otherwise read qfq.config.ini. Refactor process(), acquireDirty(), checkDirtyAndRelease().
      ecce620b
  6. 16 Jul, 2017 1 commit
  7. 10 Jul, 2017 4 commits
    • Carsten  Rose's avatar
      Feature #3981 / Record Locking · d231eb20
      Carsten Rose authored
      Dirty.php: record delete is handled - if lock exist, delete is not allowed.
      d231eb20
    • Carsten  Rose's avatar
      Feature #3981 / Record Locking · c9a42543
      Carsten Rose authored
      Dirty.php, QuickFormQuery.php: Update user messages. Renamed releaseDirty() to checkDirtAndRelease()
      c9a42543
    • Carsten  Rose's avatar
      Feature #3981 / Record Locking · 700dd79d
      Carsten Rose authored
      Manual.rst: add documentation for record locking
      DatabaseUpdateData.php: Add new column 'dirtyMode'
      Dirty.php, Config.php, formEditor.sql: remove dirtyMode=readonly. Rename 'timeout' to 'exclusive' and 'overwrite' to 'advisory'.
      700dd79d
    • Carsten  Rose's avatar
      Feature #3981 / Record Locking · a0cd3709
      Carsten Rose authored
      First version for save - not working now.
      Manual.rst: document config var SYSTEM_DIRTY_RECORD_TIMEOUT_SECONDS.
      QuickFormQuery.php, Dirty.php: extend to support QFQ/save().
      Client.php: fixed broken PHP Unit test
      Config.php: set default for dirtyRecordTimeout.
      BuildFormBootstrap.php: No dirtyUrl if dirtyMode=none.
      formEditor.sql: extend definition to Form.dirtyMode, new table 'Dirty'
      Fixed several unit tests for new tables.
      a0cd3709
  8. 17 Jun, 2017 1 commit
  9. 14 Jun, 2017 1 commit
  10. 12 Jun, 2017 1 commit
    • Carsten  Rose's avatar
      #3899 / Copy/Paste · cc55f4fb
      Carsten Rose authored
      Manual.rst: various topics undocumented.
      DatabaseUpdate.php: New table Clipboard, New FE.type='paste', New Form.forwardMode='url-sip' - will be applied for 0.18.3.
      FormAction.php: New: doAllFormElementPaste(), prepareDuplicate(), checkNCopyFiles(), copyRecord()
      Store.php: New member in STORE_CLIENT 'CLIENT_COOKIE_QFQ' - might be used to identify current user.
      BuildFormBootstrap.php: New buildButtonCopyForm().
      QuickFormQuery.php: Calculating the target page now happens after saving the current record and processing all after save actions. New: pasteClipboard()
      formEditor.sql: New form 'copyForm'. New table 'Clipboard'
      cc55f4fb
  11. 07 Jun, 2017 1 commit
    • Carsten  Rose's avatar
      #3863 / DB Update Fails: Expected no record, got 2 rows: SHOW TABLE STATUS WHERE Name='Form' · 7fc80c24
      Carsten Rose authored
      Introduce new config var 'DB_UPDATE' in config.qfq.ini. Update the handling, if there exist table 'form' and 'Form'.
      Manual.rst:  document the new config option DB_UPDATE.
      Database.php: Typo fixed.
      DatabaseUpdate.php: Iterate over all found 'Form' tables, take the newest version number. Respect config option DB_UPDATE. Fixed a problem: if in the PHP DB updates a newer DB Version is configured than the PHP source itself is, such updates are now not played anymore.
      Config.php, QuickFormQuery.php, config.example.ini: handle config setting DB_UPDATE.
      7fc80c24
  12. 05 Jun, 2017 1 commit
    • Carsten  Rose's avatar
      #3568 / Form: fuer alle Buttons (save, close, new, delete) eine optionale... · 61d75fbb
      Carsten Rose authored
      #3568 / Form: fuer alle Buttons (save, close, new, delete) eine optionale class & text konfigurierbar machen
      Manual.rst: new configuration options listed at config.qfq.ini and Form.paramtert.
      Config.php: Defaults configured for F_SAVE|CLOSE|DELETE|NEW_BUTTON_TEXT|TOOLTIP|CLASS|GLYPH_ICON.
      BuildFormBootstrap.php: Changed code to take values from config.qfq.ini or (if given) from form.parameter definitions.
      QuickFormQuery.php: Copy new setup values from config.qfq.ini to Form.
      StoreTest.php: update unit test for new global configuration values
      config.qfq.example.ini: fill with new commented key/value pairs.
      61d75fbb
  13. 04 Jun, 2017 4 commits
    • Carsten  Rose's avatar
      API_ANSWER_REDIRECT_URL_SKIP_HISTORY: Implement 'url-skip-history' as an user selectable option. · 0893a40a
      Carsten Rose authored
      Manual.rst: update doc of 'url-skip-history'.
      DatabaseUpdateData.php: update data structure as well as update given data from 'page' to 'url'.
      QuickFormReport.php: remove temporarily fix page/url.
      formEditor.sql: update table 'Form.forwardMode' to ('client', 'no', 'url', 'url-skip-history'). FormEditor now uses dynamicUpdate to hide/show FE 'forwardPage'.
      0893a40a
    • Carsten  Rose's avatar
      #3854 / Wrong final page: a) New > Save > Close, b) New > Save > Delete · b6cb6285
      Carsten Rose authored
      QfqForm.js: Preparation for client, to handle window.location.replace() by new API status 'url-skip-history'. Also changed "(data.redirect === "url" || data['redirect-url'])" to "(data.redirect === "url" && data['redirect-url'])" - CR did not understand the former logic ('or' instead of 'and'). #OPEN#: window.location.replace = 'index.php....' throws an JS exception that it the attribute 'replace' is readonly. Instead "window.location.replace('index.php....')" works as expected.
      PROTOCOL.md: add 'url-skip-history'.
      save.php: recode to become more readable.
      QuickFormQuery.php: getForwardMode() - temporarily fix to update status 'page' to 'url' (bug never caused a problem as long as '||' has been used on client side). Will change 'page' to 'url' asap.
      b6cb6285
    • Carsten  Rose's avatar
      #3853 / New > Save: Reload des Forms mit neuer SIP und neu erstellter recordId. · ed4efb2a
      Carsten Rose authored
      Recode: new function buildNSetReloadUrl()
      ed4efb2a
    • Carsten  Rose's avatar
      #3853 / New > Save: Reload des Forms mit neuer SIP und neu erstellter recordId. · 1c95ff76
      Carsten Rose authored
      Partly remove unused code 'htmlNameIdZero'. Instead implement generation of a new SIP for the new record and reload the current page with the new SIP.
      QuickFormQuery.php: remove newRecordUpdateSip(). Set URL redirection if none specific is configured. Skip creation of json code if page will be reloaded.
      1c95ff76
  14. 29 May, 2017 1 commit
  15. 27 May, 2017 1 commit
  16. 20 May, 2017 1 commit
    • Carsten  Rose's avatar
      #3766 / SQL_LOG per tt_content record einstellbar machen · 4b0d1413
      Carsten Rose authored
      Add `sqlLog` and `sqlLogMode` to QFQ tt-content records.
      Add mode 'error' and `none` to sqlLogMode.
      Manual.rst: Added explanations for SQL_LOG, SQL_LOG_MODE, and tt-content pendants sqlLog, sqlLogMode. Update config.qfq.ini to latest attributes.
      Database.php: rename $mode to $currentQueryMode to make it more descriptive. Recode dbLog().
      Logger.php: do nothing if there is no file defined.
      Report.php: new function checkUpdateLog().
      Config.php: Set defaults for config.qfq.ini SQL_LOG and SQL_LOG_MODE
      Store.php: Fix problem that an empty SQL_LOG will be prependad with SYSTEM_PATH_EXT.
      4b0d1413
  17. 10 May, 2017 1 commit
  18. 09 May, 2017 1 commit
    • Carsten  Rose's avatar
      #3679, Automatic DB update - Schema & FormEditor · 05b32a30
      Carsten Rose authored
      For updates of QFQ prior to 0.17.0, do:   ALTER TABLE  `Form` COMMENT =  'Version=<your old QFQ version>'
      DatabaseUpdate.php, DatabaseUpdateData.php: new class.
      QuickFormQuery.php: Add DB UpdateCheck
      Database.php: moved to new subdirectory `database`. Add 'ALTER' as a new SQL command.
      FormAction.php, TypeAhead.php, Report.php, Sendmail.php, FillStoreForm.php, Store.php, AbstractBuild.php, Delete.php, Evaluate.php: Update path to Database.php.
      05b32a30
  19. 03 May, 2017 1 commit
  20. 30 Apr, 2017 1 commit
  21. 24 Apr, 2017 3 commits
  22. 23 Apr, 2017 1 commit
  23. 22 Apr, 2017 1 commit
    • Carsten  Rose's avatar
      #3218 / download.php / export · e10937b6
      Carsten Rose authored
      * Recode the '_link' notation for download
      * Add 'ZIP' as export format
      * Add 'parameter' to wkhtmltopdf
      * Implemented 'SYSTEM_STORE / SYSTEM_DOWNLOAD_POPUP' for detecting if there are download links on the page. This eleminates passing parameters through dozens of functions.
      * Report/Columntype '_dDownload' broken!
      Coding.md: described `download` from a coding point of view.
      Manual.rst: Update '_link' to latest notation of 'download'.
      download.php: implemented catching of 'Undefined index'. Added further exceptions.
      Download.php: Added cache=off for downloading. Rename getFile() to getElement(). Make getElement() more generic. Add zipFiles(). Implement 'downloadMode' in doElements().
      Html2Pdf.php: recode to new download notation. Parameter to wkhtmltopdf implemented.
      Link.php: New TOKEN_* and NAME_DOWNLOAD_*, NAME_FILE. Move TOKEN_* to Constants.php. Will be used in Download.php too. Implemented 'SYSTEM_STORE / SYSTEM_DOWNLOAD_POPUP'. Implemented BASE64 encoding of multiple 'U' and 'u'.
      Report.php: Implemented 'SYSTEM_STORE / SYSTEM_DOWNLOAD_POPUP'.
      Sip.php: implement debugSip() to show Sip. New: base64 encoded parameter will be shown in clear.
      Store.php: some functions missed keyword 'static'. getVar() and getStore automatically decode base64 parameter.
      QuickFormQuery.php: Implemented 'SYSTEM_STORE / SYSTEM_DOWNLOAD_POPUP'.
      e10937b6
  24. 17 Apr, 2017 1 commit
  25. 02 Apr, 2017 1 commit
    • Carsten  Rose's avatar
      #3385 / templateGroup: insert/update/delete non primary records · 8db50d60
      Carsten Rose authored
      Manual.rst: update doc how to insert/update/delete non primary templateGroup records.
      FormAction.php: removed $templateGroupIndex - solved implicit by defining a LIMIT on 'slaveId' . Implemented '%D' (one below %d). Implemented FE_SQL_HONOR_FORM_ELEMENTS - reduces unecassary SQL queries.
      HelperFormElement.php: moved function 'explodeTemplateGroupElements()' to 'QuickFormQuery.php'
      Database.php: remove call to explodeTemplateGroupElements() - not necessary at that place.
      QuickFormQuery.php: fill STORE_RECORD during Formload - to read templateGroup records very early. Local copy of `getNativeFormElements()`, new `explodeTemplateGroupElements()`
      8db50d60
  26. 29 Mar, 2017 1 commit
    • Carsten  Rose's avatar
      #3463 / form.mode=readonly · d84dad1a
      Carsten Rose authored
      Implemented the option to make a form `readonly`. this can be done statically or dynamically via variable (e.g. SIP).
      QuickFormQuery.php, AbstractBuildForm.php: Force 'readonly' by overwriting FormElement individual 'mode' setting.
      BuildFormBootstrap.php: Introduced new variable F_SHOW_BUTTON.
      d84dad1a
  27. 28 Mar, 2017 1 commit
    • Carsten  Rose's avatar
      #3456 / LDAP: with Credentials to access 'webpass' · 8cb94e92
      Carsten Rose authored
      Manual.rst: Updated doc for a) config.qfq.ini: LDAP_1_RDN, LDAP_1_PASSWORD, b) Form.parameter|FormElement.parameter: ldapUseBindCredentials
      ErrorHandler.php: removed details - the end user should not too many details.
      FormAction.php, Ldap.php, QuickFormQuery.php: implement 'ldapUseBindCredentials'
      Ldap.php: set_error_handler() to catch ldap_bind() problems. Always set LDAP_OPT_PROTOCOL_VERSION=3 - this might cause problems with som LDAP Servers - we will see.
      8cb94e92
  28. 26 Mar, 2017 1 commit
    • Carsten  Rose's avatar
      #3433 | templateGroup on primary Record: Values of removed copies are not deleted · 5d817af7
      Carsten Rose authored
      The new implementation creates empty fake instances of all copies of templateGroup FormElements. Those are empty. Before save, the submitted form values will be expanded with the empty fake templateGroup FormElements and such empty values will be saved.
      FormAction.php: Rename constant SQL_FORM_ELEMENT_TEMPLATE_GROUP to SQL_FORM_ELEMENT_TEMPLATE_GROUP_FE_ID - to be more precise.
      HelperFormElement.php, Database.php: new function explodeTemplateGroupElements()
      5d817af7
  29. 23 Mar, 2017 1 commit
  30. 16 Mar, 2017 1 commit