1. 26 Feb, 2017 1 commit
    • Carsten  Rose's avatar
      #2064: Input Elemente die als JSON response 'value=false' bekommen, zeigen 'false' an. · 13d39fbe
      Carsten Rose authored
      #3253: STORE_TYPO3: steht waehrend Update / Save nicht zur Verfuegung - wird aber benoetigt. Bsp: feUser, beUser, pageId, ...
      
      Thought that problem of #2064 is based on #3253 - that was wrong.
      #3253 implemented, but not heavily tested.
      
      #2064: problem was that for a non existing tablecolumn, has been searched for a default value - which obviously does not exist. In AbstractBuildForm.php, Line 419, a check implemented if the current FormElement is an existing tablecolumn. If not, do not change the empty value.
      
      FormAction.php, FillStoreForm.php, Store.php, QuickFormQuery.php, Save.php: Refactor setVarArray() to setStore()
      
      #3253
      FillStoreForm.php: If there is no STORE_TYPO3, get the old values from SIP: CLIENT_TYPO3VARS.
      Store.php: new function fillTypo3StoreFromSip(), copyT3VarstToSip()
      13d39fbe
  2. 24 Feb, 2017 1 commit
  3. 15 Feb, 2017 1 commit
    • Carsten  Rose's avatar
      CODING.md: small updates in upload part · 1467b137
      Carsten Rose authored
      Support.php, AbstractBuildForm.php: new function falseemptyToZero().
      Constants.php: New UPLOAD_MODE_*
      Evaluate.php: fixed bug in 'skip' logic of evaluate->parseArray()
      Save.php: doUpload() now returns $modeUpload, which are needed in doUploadSlave(), rewrote logic of doUploadSlave(),
      1467b137
  4. 14 Feb, 2017 1 commit
    • Carsten  Rose's avatar
      'Upload advanced mode' implementiert. V2 (kein FormElement Action 'afterSave' mehr noetig) · 2e7b75b6
      Carsten Rose authored
      Default fuer Store Prioritaet hat sich geaendert: alt='FSRD', neu='FSRVD' - damit wird ist es ueberfluessig den V Store anzugeben.
      Variable '_filename' umbenannt in 'filename' und verschoben von STORE_FORM nach STORE_VARS. Damit ist es ueberfluessig eine Sanatize Klasse anzugeben.
      STORE_VAR hat zwei neue Variablen: 'filename', 'fileDestination'.
      Bei Form-Action Elemente gibt es zwei neue Typen: 'sqlBefore' und 'sqlAfter'
      
      Index.rst: Dokumentation auf V2 angepasst. Doku fuer V1 hat es nie gegeben.
      FormAction.php: Moved function initActionFormElement to HelperFormElement::initActionFormElement(), Implement sqlBefore & sqlAfter for Action Elemente.
      HelperFormElement.php: new class initActionFormElement(), initUploadFormElement().
      FillStoreForm.php, AbstractBuildForm.php, Evaluate.php: Implemented the $skip parameter to suppress unwanted variable expansion during form load.
      Constants.php: New STORE_USE_DEFAULT, VAR_FILE_DESTINATION, VAR_FILENAME,FE_SQL_AFTER, FE_SQL_BEOFRE, FE_TYPE_UPLOAD.
      Evaluate.php: moved 'decryptCurlyBraces()' up, in order to  create better error messages.
      Save.php: new doUploadSlave(), implement 'Upload advanced mode'.
      2e7b75b6
  5. 13 Feb, 2017 1 commit
    • Carsten  Rose's avatar
      Multiple & Advanced Upload: · 1bb4cea6
      Carsten Rose authored
      - fix problem when more than one file uploaded - there was only one variable {{_filename}}, which was not sufficient for more than one upload element per form. New: {{_filename_<FE_NAME>:FE:allbut}}.
      - implemented {{_deleted_<FE_NAME>:F0}}: if exist and is '1', than this means that the previous uploaded file has been trashed through the user by clicking on the trash.
      
      Index.rst: update doc. Some more notes are needed. See one of the upcomming commits.
      Constants.php: Renamed CLIENT_UPLOAD_FILENAME and created CLIENT_FILE_DELETED.
      Save.php: Set var CLIENT_FILE_DELETED and use renamed CLIENT_UPLOAD_FILENAME.
      1bb4cea6
  6. 12 Feb, 2017 1 commit
  7. 23 Aug, 2016 1 commit
    • Carsten  Rose's avatar
      Upload: · 729d5963
      Carsten Rose authored
      1) '{{id:R0}}' now gives the correct record id, even on records which are 'new' (id is 0 at time of save) - '{{id:R0}}' can be used 'fileDestination' to build pathFilename.
      2) Fixed problem with non existing uploads: in the past a sip has been saved instead of an empty string in the current record.
      3) Fixed problem with a) choosing an upload file, b) deleting them immediately and c) pressing 'save'. Non existing temporary uploaded file has been tried to move to final destination.
      
      Documentation/UsersManual: FormElement 'File' update
      AbstractBuildForm.php: Extend upload structure with EXISTING_PATH_FILE_NAME.
      QuickFormQuery.php: 'late save' of uploads implemented.
      Save.php: upload columns are not saved during the first save - instead they are saved later.
      729d5963
  8. 05 Jun, 2016 1 commit
  9. 01 Jun, 2016 1 commit
  10. 29 May, 2016 1 commit
  11. 25 May, 2016 1 commit
  12. 11 May, 2016 1 commit
  13. 10 May, 2016 1 commit
  14. 03 May, 2016 1 commit
    • Carsten  Rose's avatar
      Recode: fromelement.mode='readonly' new implemented on client, by using CSS... · 5b899934
      Carsten Rose authored
      Recode: fromelement.mode='readonly' new implemented on client, by using CSS attribute 'disabled'. The HTML atrribute 'readonly' is fine for pure 'input' elements, but does not work sufficient for 'select', 'checkbox', 'radio'. Also, the label (left of input) and note (right of input) are now grayed out if set to 'disable'.
      FillStoreForm.php, Save.php: strings replaced by constants. New central function getfeMode() used by getJsonFeMode() and getAttributeFeMode()
      5b899934
  15. 02 May, 2016 2 commits
  16. 27 Apr, 2016 2 commits
    • Carsten  Rose's avatar
      Upload: first version which really uploads file, saving to destination. · 9c24d2d3
      Carsten Rose authored
      Sanitize.php: new sanitize class ALLBUT. New function safeFilename().
      Support.php: New function mkDirParent().
      Store.php: new system config variable SYSTEM_SITE_PATH.
      QuickFormQuery.php: fills STORE_RECORD before saving the current record.
      Save.php: moving the file to the final destination.
      9c24d2d3
    • Carsten  Rose's avatar
      Rewrote upload to be concurrent save. · e3da2abe
      Carsten Rose authored
      Store.php: fills arrays direct in $_SESSION - not sure if this works.
      AbstractBuildForm.php: buildFile() extended to create hidden sipUplaod element.
      BuildFormBootstrap.php: support different actions on calling file.php
      File.php, Save.php: rewrote whole logic of uploading files. See CODING.md
      e3da2abe
  17. 25 Apr, 2016 1 commit
    • Carsten  Rose's avatar
      Input Field date / datetime / time implemented. · d28b523a
      Carsten Rose authored
      AdministratorManual/index.rst, UsersManual/index.rst: Configuration & Documentation.
      Sanitize.php: code rewrote to use Support::dateTime2mysql().
      Support.php: add dateTimeTegexp()
      FillStoreForm.php: use of Support::setFeDefaults($formElement). Format date/datetime/time values
      Store.php: redefined various functions to be 'static'
      AbstractBuildForm.php, Constants.php: added date/datetime/time to tables. Various new functions.
      Save.php: FE die nicht uebertragen wurden (typsicherweise weil leer) werden neu mit eimem leer String gesschrieben - sonst ist es nicht moeglich  Eingaben wieder zu loeschen.
      formEditor.sql: Felder date/datetime/time neun implementiert.
      d28b523a
  18. 18 Apr, 2016 1 commit
    • Carsten  Rose's avatar
      ErrorMessages in exception: generalized · 2d0d6fc3
      Carsten Rose authored
      AbstractException.php: If exist, print Form And FormElement names.
      HelperFormElement.php, Logger.php, FillStoreForm.php, AbstractBuildForm.php: fomatting form element name.
      Support.php: add setIfNotSet()
      2d0d6fc3
  19. 14 Apr, 2016 1 commit
    • Carsten  Rose's avatar
      After creating a new record and still open form: a new sip is created and... · 16408b47
      Carsten Rose authored
      After creating a new record and still open form: a new sip is created and transfered to client. Attention: 'new + save + modify + save again' still create two records (error).
      AbstractBuildForm.php: buildNewSip() renamed to buildHiddenSip(). Call of buildHiddenSip() moved from tail() to process(). buildHiddenSip() returns JSON code too.
      BuildFormBootstrap.php, BuildFromPlain.php, BuildFormTable.php : removed call buildNewSip()
      QuickFormQuery.php: After save, reload current record and create new sip
      Save.php: process() returns id of affected record.
      16408b47
  20. 13 Apr, 2016 1 commit
    • Carsten  Rose's avatar
      Preparation to update Form after saving values. · 092e6deb
      Carsten Rose authored
      save.php: return JSON with updated values of all fields.
      AbstractBuildForm.php: updated to deliver values of all form elements
      Constants.php: constants to distinguish all or specific values of FEs. QUERY_TYPE_*
      Database.php: doSQL now returns affectedrows or lastinsertid in case of udpate/inset. Typos fixed.
      QuickFormQuery.php: deliver Values as JSON after save.
      Save.php: return lastinsertid or affectedrows.
      092e6deb
  21. 11 Apr, 2016 1 commit
  22. 01 Apr, 2016 1 commit
  23. 24 Mar, 2016 2 commits
    • Carsten  Rose's avatar
      Refactored sanitize functionality: Form save, form update and client are now... · 0f2d60c4
      Carsten Rose authored
      Refactored sanitize functionality: Form save, form update and client are now handled with the same regexp. Form save and update use the same code to sanatize. SANITIZE names are now equal in FormEditor and in Store. New class SANITIZE_ALL_MIN_MAX_DATE.
      
      OnArray.php: moved inputCheckPatternArray() to Sanatize.
      Sanatize.php: complete rewrote of sanitize(). Everything is regexp based now.
      FillStore.php: validateValue() removed, use of Sanitize::sanitize instead.
      Store.php: adjusted change of Sanitize:sanitize signature.
      AbstractBuildForm.php: defined class global variable $inputCheckPattern and initialize them during construct(). Variables, submitted by POST, are now correctly sanatized according their FormElement definition. getInputCheckPattern() adjusted to new/changed SANITIZE definitions.
      Constants.php: added SANTIZE_ALLOW_: MIN_MAX, MIN_MAX_DATE, EMAIL, PATTERN, SANITIZE_EXCEPTION, SANITIZE_EMPTY_STRING
      Save.php: use of Sanitize::sanitize instead of validateValue()
      formEditor.sql: order of FormElement.checkType changed to 'most used first'.
      0f2d60c4
    • Carsten  Rose's avatar
      Dynamic Update implemented · b31fb9eb
      Carsten Rose authored
      load.php: implemented
      FillStoreForm.php: implemented
      Store.php: phpunit test complains about 'store already filled'. Option set to explicitly allow rewrite.
      AbstractBuildForm.php: Added new mode 'FORM_UPDATE'. Elements additionaly create json code. 'data-load' attribute will be added to form elements, if 'dynamicUpdate=yes'
        elements(): added call by reference parameter $json, to return the generated json code.
      BodyTextParse.php: added 'r =' as a new 'start new line' indicator. This was necessary at least for phpunit tests to run.
      BuildFormBootstrap.php: buildPill() passes json data structure.
      BuildFormPlain, BuildFormTable.php: doSubrecords()  passes json data structure.
      Constants.php: New FORM_UPDATE, SQL_FORM_ELEMENT_SIMPLE_ALL_CONTAINER, ERROR_FORM_NOT_FOUND, API_FORM_UPDATE
      Evaluate.php: Exception text enhanced.
      QuickFormQuery.php: FillStoreForm.php included. Automatic detection of FORM_LOAD and FORM_SAVE removed. Instead the mode are given explicitly. mode=FORM_UPDATE implemented.
      Save.php: added TODOs in code.
      formEditor.sql: reformat code. Add 'FormElement.dynamicUpdate'. 'FormElemente.checkType': 'number' replaced by 'digit'. Added 'alnumx', 'digit'. Form 'form', 'formElement': output of 'title' replaced by 'name' - outputting 'title' confuses the user (tries to show records which do fit to the formEditor) and might produce recursion in evaluation (did not understand why, but happens). FormEditor: implemented 'dynamicUpdate', escpecially the 'type' select list will be adjusted dynamically.
      b31fb9eb
  24. 11 Mar, 2016 1 commit
  25. 12 Feb, 2016 1 commit
  26. 11 Feb, 2016 1 commit
  27. 09 Feb, 2016 1 commit
  28. 02 Feb, 2016 2 commits