Details

    • Type: New Feature
    • Status: Done/Fixed
    • Priority: Major
    • Resolution: Fixed/Completed
    • Affects Version/s: None
    • Fix Version/s: 1.0
    • Component/s: None
    • Labels:
      None

      Description

      • Wizard screens (templates located in templates/CRM/Import/Form):
        Upload Data (UploadFile.tpl)
        Match Fields (MapField.tpl) -> csv parse only
        Preview Import (Preview.tpl)->
        Incoming record count
        Mapping sample (1st 5 records)
        If email defined - validate format and report # of invalid emails, and check for email dupes (within incoming data)
        Import Summary (Summary.tpl)
        Successfully imported record count
        Invalid records (e.g. bad email or other invalid data elements) are rejected
        If 1 or more invalid records, Include link to download rejected records
      • WizardHeader.tpl - maps the steps of the wizard and indicates current step
        Generic template. Located in templates/CRM/

      ------>>---------------------------------------------------------------------------------------------------------|
      Upload Data Match Fields Preview Summary Check Duplicates

      Smarty vars for this .tpl are in an associative array 'wizard' with attributes

      • $steps (array of len total number of steps), contains
        title =>$stepTitle
        link =>'(not used yet)'
      • $currentStepNumber (step number of current step)
      • $currentStepTitle
      • $stepCount (total number of steps)

      Template will use these vars to assign class="current-step", "past-step" or "future-step" to progress bar sections.

      • Wizard Buttons/Links (top AND bottom of each page):

      << Previous (link) [ Next >> ] [ Cancel ]

      • Upload Data (step 1 of 4) -> UploadFile.tpl
        $uploadFile -> Upload File : <input type=file />
      • Match Fields (step 2 of 4) -> MapField.tpl
        $rowDisplayCount -> how many csv rows are we going to display (2 for now)
        $columnCount -> how many columns (fields in the csv data)
        $dataValues -> nested array of field values from csv data rows

      Table display logic:
      for (i = 0, i < $columnCount, i++)
      $form.mapper[i].html
      for (j = 0, j < $rowDisplayCount, j++)
      $dataValues[j][i]

      • Preview Import (step 3 of 4) -> Preview.tpl
        $rowDisplayCount -> how many csv rows are we going to display (2 for now)
        $columnCount -> how many columns (fields in the csv data)
        $dataValues -> nested array of field values from csv data rows
        $totalRowCount -> total count of incoming data records
        $validRowCount -> subtotal of rows w/o errors
        $invalidRowCount -> subtotal of rows w/ errors (will be rejected)
        $duplicateRowCount -> subtotal of rows w/in import data which are duplicates (duplicate email addresses, for now)

      If duplicates detected, include radio button for user to select duplicate handling method. "What do you want to do with duplicate contacts?"
      Options:

      • Skip duplicates
      • Replace existing CiviCRM record with import record dta
      • Update existing CiviCRM record with import record
      • Import Summary (step 4 of 4) -> Summary.tpl
        $totalRowCount -> total count of incoming data records
        $validRowCount -> subtotal of rows w/o errors
        $invalidRowCount -> subtotal of rejected rows due to errors
        $duplicateRowCount -> subtotal of rows w/in import data which were rejected as duplicates (duplicate email addresses, for now)

      Links:
      $downloadErrorRecords
      $downloadDuplicateRecords

      Buttons:
      [ Done ] -> returns to default CRM page (Search, for now)

        Attachments

          Activity

            People

            • Assignee:
              brian Brian McFee
              Reporter:
              dgg David Greenberg
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: