Skip to content

Commit

Permalink
closes #401
Browse files Browse the repository at this point in the history
  • Loading branch information
benkeen committed Sep 12, 2017
1 parent 228ba99 commit d6b128f
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 99 deletions.
38 changes: 9 additions & 29 deletions plugins/dataTypes/Composite/Composite.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
/*global $:false*/
define([
"manager",
"constants",
"lang",
"generator"
], function(manager, C, L, generator) {
"manager"
], function(manager) {

"use strict";

Expand All @@ -17,45 +14,28 @@ define([

/* @private */
var MODULE_ID = "data-type-Composite";
var LANG = L.dataTypePlugins.Composite;

var _validate = function(rows) {
var visibleProblemRows = [];
var problemFields = [];
for (var i=0; i<rows.length; i++) {
if ($("#dtOption_" + rows[i]).val() === "") {
var visibleRowNum = generator.getVisibleRowOrderByRowNum(rows[i]);
visibleProblemRows.push(visibleRowNum);
problemFields.push($("#option_" + rows[i]));
}
}

var errors = [];
if (visibleProblemRows.length) {
errors.push({ els: problemFields, error: L.AlphaNumeric_incomplete_fields + " <b>" + visibleProblemRows.join(", ") + "</b>"});
}

return errors;
var _validate = function() {
return [];
};

var _loadRow = function(rowNum, data) {
return {
return {
execute: function() {
$("#dtExample_" + rowNum).val(data.example);
$("#dtOption_" + rowNum).val(data.option);
},
isComplete: function() { return $("#dtOption_" + rowNum).length > 0; }
isComplete: function() {
return $("#dtOption_" + rowNum).length > 0;
}
};
};

var _saveRow = function(rowNum) {
return {
"example": $("#dtExample_" + rowNum).val(),
"option": $("#dtOption_" + rowNum).val()
"option": $("#dtOption_" + rowNum).val()
};
};


manager.registerDataType(MODULE_ID, {
validate: _validate,
loadRow: _loadRow,
Expand Down
50 changes: 23 additions & 27 deletions plugins/dataTypes/PersonalNumber/PersonalNumber.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class DataType_PersonalNumber extends DataTypePlugin {
protected $dataTypeFieldGroupOrder = 110;
protected $jsModules = array("PersonalNumber.js");
private $generatedPersonnrs = array();

// Separator in personal number
static $sep = "-";

Expand Down Expand Up @@ -43,8 +44,6 @@ public function generate($generator, $generationContextData) {
// TODO: add support for organisation numbers
private static function generateRandomSwedishPersonalNumber($sep) {
$new_str = "16";
$rand = 0;

$cnt = 13; // 12 siffers + 1 increment for separator

for ($i=2; $i<$cnt; $i++) {
Expand Down Expand Up @@ -84,38 +83,35 @@ private static function generateRandomSwedishPersonalNumber($sep) {
public static function recalcCtrl($idNumber, $separator) {
$strArr = explode($separator, $idNumber);
$idNr = "";
for($i=0; $i<count($strArr); $i++)
$idNr .= $strArr[$i];
for ($i=0; $i<count($strArr); $i++) {
$idNr .= $strArr[$i];
}

$idNrArr = str_split($idNr);

$ctrl = 0;

// Ogiltig längd
if(!((strlen($idNr) == 12) || (strlen($idNr) == 10)))
return 99;
if (!((strlen($idNr) == 12) || (strlen($idNr) == 10))) {
return 99;
}

// OK, 12 siffers (person) or 10 siffers (organisation), recalculate control siffer
$partSum=0;
$sum=0;
$sum = 0;

for($i = strlen($idNr) - 10; $i< strlen($idNr) - 1; $i++)
{
if($i%2 == 0)
{
for ($i = strlen($idNr) - 10; $i< strlen($idNr) - 1; $i++) {
if ($i%2 == 0) {
$siffra = intval($idNrArr[$i]);
$partSum = $siffra * 2;
if($partSum >= 10)
$partSum = (int)($partSum / 10) + ($partSum % 10);
}
else
$partSum = intval($idNrArr[$i]);
$sum+= $partSum;
if ($partSum >= 10) {
$partSum = (int)($partSum / 10) + ($partSum % 10);
}
} else {
$partSum = intval($idNrArr[$i]);
}
$sum += $partSum;
}

$ctrl = (10 - ($sum % 10)) % 10;

return $ctrl;
}

Expand Down Expand Up @@ -146,18 +142,18 @@ public function getExampleColumnHTML() {

public function getOptionsColumnHTML() {
$html =<<< END
<span id="dtOptionPersonalNumberSeparator_%ROW%" style="display:inline;">
<div>
{$this->L["separators"]}
<input type="text" name="dtOptionPersonalNumber_sep_%ROW%" id="dtOptionPersonalNumber_sep_%ROW%" style="width: 78px" value=" " title="{$this->L["separator_help"]}" />
</span>
<input type="text" name="dtOptionPersonalNumber_sep_%ROW%" id="dtOptionPersonalNumber_sep_%ROW%" style="width: 78px" value=" "
title="{$this->L["separator_help"]}" />
</div>
END;
return $html;
}

public function getRowGenerationOptionsUI($generator, $postdata, $colNum, $numCols) {
return array(
"cc_separator" => $postdata["dtOptionPersonalNumber_sep_$colNum"],
"cc_format" => $postdata["dtOption_$colNum"],
"cc_separator" => $postdata["dtOptionPersonalNumber_sep_$colNum"]
);
}

Expand Down
56 changes: 14 additions & 42 deletions plugins/dataTypes/PersonalNumber/PersonalNumber.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,47 +21,18 @@ define([
var rowID = msg.rowID;
var selectedFormat = msg.value;

var $separatorField = $("#dtOptionPersonalNumber_sep_" + rowID);

switch (selectedFormat) {
case "PersonalNumberWithoutHyphen":
$separatorField.val("");
break;

case "PersonalNumberWithHyphen":
$separatorField.val("-");
break;

default:
//$separatorField.val(selectedFormat);
break;

}

var optionValue = "";
if (selectedFormat === "PersonalNumberWithHyphen") {
optionValue = "-";
}
$("#dtOptionPersonalNumber_sep_" + rowID).val(optionValue);
};

/**
* Called when the user submits the form to generate some data. If the selected data set contains
* one or more rows of this data type, this function is called with the list of row numbers. Note that
* the row numbers passed are the *original* row numbers of the rows on creation. It's possible that the
* user has re-sorted or deleted some rows. So to get the visible row number for a row, call
* gen._getVisibleRowOrderByRowNum(row)
* No validation currently required.
*/
var _validate = function(rows) {
var visibleProblemRows = [];
var problemFields = [];
for (var i=0; i<rows.length; i++) {
if ($("#dtOption_" + rows[i]).val() === "") {
var visibleRowNum = generator.getVisibleRowOrderByRowNum(rows[i]);
visibleProblemRows.push(visibleRowNum);
problemFields.push($("#dtOption_" + rows[i]));
}
}
var errors = [];
if (visibleProblemRows.length) {
errors.push({ els: problemFields, error: LANG.incomplete_fields + " <b>" + visibleProblemRows.join(", ") + "</b>"});
}
return errors;
var _validate = function() {
return [];
};

/**
Expand All @@ -70,8 +41,8 @@ define([
*/
var _saveRow = function(rowNum) {
return {
example: $("#dtExample_" + rowNum).val(),
separator: $("#dtOptionPersonalNumber_sep_" + rowNum).val()//,
example: $("#dtExample_" + rowNum).val(),
separator: $("#dtOptionPersonalNumber_sep_" + rowNum).val()
};
};

Expand All @@ -87,9 +58,10 @@ define([
execute: function() {
$("#dtExample_" + rowNum).val(data.example);
$("#dtOptionPersonalNumber_sep_" + rowNum).val(data.separator);

},
isComplete: function() { }
isComplete: function() {
return $("#dtOptionPersonalNumber_sep_" + rowNum).length > 0;
}
};
};

Expand All @@ -102,4 +74,4 @@ define([
saveRow: _saveRow
});

});
});
2 changes: 1 addition & 1 deletion resources/scripts/manager.js
Original file line number Diff line number Diff line change
Expand Up @@ -464,7 +464,7 @@ define([
* Helper function to return an array of plugins, by plugin type.
* @function
* @private
* @param {String} the type of plugin: "data-type", "core", "export-type"
* @param {String} type of plugin: "data-type", "core", "export-type"
*/
var _getModulesByPluginType = function(pluginType) {
var plugins = [];
Expand Down

0 comments on commit d6b128f

Please sign in to comment.