in tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web/wwwroot/app/directives/common.directive.js [563:672]
link: function (scope, element, attrs) {
var obj = "";
obj = eval('(' + attrs.colorder + ')');
if (scope.input.columnPosition == obj && scope.input.displayInUI == "true") {
var el = angular.element('<span />');
if (scope.input.type.toLowerCase() == 'boolean') {
scope.input.required = false;
el.append('<div class="directiveMatterExtraBoolLabel"><span ng-show="' + scope.input.required + '" class="mandatory pull-left">* </span>' +
'<span ng-hide="' + scope.input.required + '" class="pull-left"> </span>' +
'<label class="directiveFormFieldsLableWidth" >{{input.name}}: </label></div>');
}
else {
el.append('<div><span ng-show="' + scope.input.required + '" class="mandatory pull-left">* </span>' +
'<span ng-hide="' + scope.input.required + '" class="pull-left"> </span>' +
'<label class="directiveFormFieldsLableWidth" >{{input.name}}: </label></div>');
}
switch (scope.input.type.toLowerCase()) {
case 'boolean':
if (scope.input.defaultValue != null && scope.input.defaultValue != undefined) {
scope.input.value = scope.input.defaultValue;
}
el.append('<div class="directiveMatterExtraBoolField"><input ng-checked="{{input.value}}" id="' + scope.input.fieldInternalName + '" aria-label="' + scope.input.fieldInternalName + '" type="checkbox" ng-model="input.value"/></div>');
break;
case 'text':
if (scope.input.defaultValue != null && scope.input.defaultValue != undefined) {
scope.input.value = scope.input.defaultValue;
}
if (scope.input.required == "true") {
el.append('<div class="directiveMatterExtraFields"><input id="' + scope.input.fieldInternalName + '" class="directiveFormFields" aria-label="' + scope.input.fieldInternalName + '" ng-class="{errorBorder: (input.value == undefined && cm.addFieldReq == true)}" required type="text" ng-model="input.value"/></div>');
}
else {
el.append('<div class="directiveMatterExtraFields"><input id="' + scope.input.fieldInternalName + '" aria-label="' + scope.input.fieldInternalName + '" class="directiveFormFields" type="text" ng-model="input.value"/></div>');
}
break;
case 'radiobuttons':
if (scope.input.defaultValue != null && scope.input.defaultValue != undefined) {
scope.input.value = scope.input.defaultValue;
}
var radioButtontText = "";
if (scope.input.required == "true") {
if (scope.input.defaultValue == null || scope.input.defaultValue == undefined) {
scope.input.value = scope.input.values[0].choiceValue;
}
for (var i = 0; i < scope.input.values.length; i++) {
radioButtontText += '<input name="radioGroup' + scope.input.values[i].fieldInternalName + '" type="radio" aria-label="' + scope.input.fieldInternalName + '" ng-model="input.value" value="' + scope.input.values[i].choiceValue + '"><label id="">' + scope.input.values[i].choiceValue + ' </label>'
}
}
else {
for (var i = 0; i < scope.input.values.length; i++) {
radioButtontText += '<input name="radioGroup' + scope.input.values[i].fieldInternalName + '" type="radio" aria-label="' + scope.input.fieldInternalName + '" ng-model="input.value" value="' + scope.input.values[i].choiceValue + '"><label id="">' + scope.input.values[i].choiceValue + ' </label>'
}
}
el.append('<div class="directiveMatterExtraFields">' + radioButtontText + '</div>')
break;
case 'dropdown':
if (scope.input.defaultValue != null && scope.input.defaultValue != undefined) {
var defaultValue = scope.input.defaultValue;
angular.forEach(scope.input.values, function (option) {
if (option.choiceValue == defaultValue) {
scope.input.value = option;
}
});
}
if (scope.input.required == "true") {
el.append('<div class="directiveMatterExtraFields"><select id="' + scope.input.fieldInternalName + '" aria-label="' + scope.input.fieldInternalName + '" class="directiveFormFields" ng-class="{errorBorder: (input.value == undefined && cm.addFieldReq == true)}" required ng-model="input.value" ng-options=" x.choiceValue for x in input.values "> <option value="" label="- Select -"></option></select></div>')
}
else {
el.append('<div class="directiveMatterExtraFields"><select id="' + scope.input.fieldInternalName + '" aria-label="' + scope.input.fieldInternalName + '" class="directiveFormFields" ng-model="input.value" ng-options=" x.choiceValue for x in input.values "> <option value="" label="- Select -"></option></select></div>')
}
break;
case 'datetime':
if (scope.input.defaultValue != null && scope.input.defaultValue != undefined) {
scope.input.value = $filter('date')(scope.input.defaultValue, 'MM/dd/yyyy');
scope.input.value = new Date(scope.input.value);
}
if (scope.input.required == "true") {
el.append('<div class="directiveMatterExtraFields"> <input id="' + scope.input.fieldInternalName + '" class="directiveFormFields" aria-label="' + scope.input.fieldInternalName + '" ng-class="{errorBorder: (input.value == undefined && cm.addFieldReq == true)}" required type="text" class="calendar form-control " uib-datepicker-popup="MM/dd/yyyy" data-ng-model="input.value" is-open="opened" placeholder="mm/dd/yyyy" data-ng-model="" datepicker-options="dateOptions" ng-required="true" close-text="Close" readonly ng-keydown="$event.keyCode==13?open1():null" ng-click="open1()" /> </div>')
}
else {
el.append('<div class="directiveMatterExtraFields"> <input id="' + scope.input.fieldInternalName + '" class="directiveFormFields" aria-label="' + scope.input.fieldInternalName + '" type="text" class="calendar form-control " uib-datepicker-popup="MM/dd/yyyy" data-ng-model="input.value" is-open="opened" placeholder="mm/dd/yyyy" data-ng-model="" datepicker-options="dateOptions" ng-required="true" close-text="Close" readonly ng-keydown="$event.keyCode==13?open1():null" ng-click="open1()" /> </div>')
}
break;
case 'multichoice':
if (scope.input.defaultValue != null && scope.input.defaultValue != undefined) {
var defaultOptions = scope.input.defaultValue.split(',');
scope.input.value = [];
for (var aCount = 0; aCount < defaultOptions.length; aCount++) {
angular.forEach(scope.input.values, function (option) {
if (option.choiceValue == defaultOptions[aCount]) {
scope.input.value.push(option);
}
});
}
}
if (scope.input.required == "true") {
el.append('<div class="directiveMatterExtraFields"><select aria-label="' + scope.input.fieldInternalName + '" id="' + scope.input.fieldInternalName + '" class="multiSelectHeight directiveFormFields" required style="height:100px;" multiple ng-model="input.value" ng-class="{errorBorder: (input.value == undefined && cm.addFieldReq == true)}" ng-options="x.choiceValue for x in input.values "> <option value="" label="- Select -"></option></select></div>')
}
else {
el.append('<div class="directiveMatterExtraFields"><select aria-label="' + scope.input.fieldInternalName + '" id="' + scope.input.fieldInternalName + '" class="multiSelectHeight directiveFormFields" required style="height:100px;" multiple ng-model="input.value" ng-options="x.choiceValue for x in input.values "> <option value="" label="- Select -"></option></select></div>')
}
break;
}
$compile(el)(scope);
element.append(el);
}
},