<script>
var ModelData = {%= $field | json %};
- var FieldTypes = {%= [
- bugdar\Field::TYPE_TEXT,
- bugdar\Field::TYPE_BOOL,
- bugdar\Field::TYPE_LIST,
- bugdar\Field::TYPE_DATE,
- bugdar\Field::TYPE_USER
- ] | json %};
+ var FieldTypes = {%= bugdar\Field::$field_types | json %};
</script>
<div ng-app="bugdar.admin.fields">
<input type="checkbox" name="can_search" ng-checked="field.can_search" value="1">
</label>
+
+ <div ng-switch="field.type">
+ <div ng-switch-when="text">
+ <label>
+ {%=T('Default Value:')%}
+ <input type="text" name="default_value" ng-model="field.default_value">
+ </label>
+
+ <label>
+ {%=T('Validator Pattern:')%}
+ <input type="text" name="validator_pattern" ng-model="field.validator_pattern">
+ </label>
+ </div>
+
+ <div ng-switch-when="boolean">
+ <label>
+ {%=T('Default Value:')%}
+ <select name="default_value" ng-model="field.default_value">
+ <option value="">{%=T('Unset')%}</option>
+ <option value="1">{%=T('True')%}</option>
+ <option value="0">{%=T('False')%}</option>
+ </select>
+ </label>
+ </div>
+
+ <div ng-switch-when="list">
+ <label>
+ {%=T('List Options:')%}
+ <textarea ng-model="field.rawListOptions">{{field.validator_pattern}}</textarea>
+ <input type="hidden" name="validator_pattern" ng-value="listOptionsAsText()">
+ </label>
+
+ <label>
+ {%=T('Default Value:')%}
+ <select name="default_value" ng-model="field.default_value">
+ <option ng-repeat="option in listOptions()" value="{{option}}" ng-selected="field.default_value == option">{{option}}</option>
+ </select>
+ </label>
+ </div>
+ </div>
+
<input type="submit" value="{%=T('Save Field')%}">
</form>
.controller('FieldEditor', ['$scope', function($scope) {
$scope.field = ModelData;
$scope.fieldTypes = FieldTypes;
+
+ $scope.listOptionsAsText = function() {
+ var options = $scope.listOptions();
+ if (options.length == 0)
+ return '';
+ return options.join('\n').trim();
+ };
+
+ $scope.listOptions = function() {
+ var rawOptions = ($scope.field.rawListOptions || '').trim();
+ if (rawOptions.length == 0)
+ return [];
+
+ var options = rawOptions.split('\n');
+ for (var i = 0; i < options.length; ++i)
+ options[i] = options[i].trim();
+
+ return options;
+ };
}]);