/********************************************* * Copyright (c) 2013 AnsibleWorks, Inc. * * GeneratorHelpers * * Functions shared between FormGenerator and ListGenerator * */ angular.module('GeneratorHelpers', ['GeneratorHelpers']) .factory('Attr', function() { return function(obj, key) { var result; var value = (typeof obj[key] === "string") ? obj[key].replace(/\'/g, '"') : obj[key]; switch(key) { case 'ngClick': result = "ng-click=\"" + value + "\" "; break; case 'ngOptions': result = "ng-options=\"" + value + "\" "; break; case 'ngClass': result = "ng-class=\"" + value + "\" "; break; case 'ngChange': result = "ng-change=\"" + value + "\" "; break; case 'ngDisabled': result = "ng-disabled=\"" + value + "\" "; break; case 'ngShow': result = "ng-show=\"" + value + "\" "; break; case 'ngHide': result = "ng-hide=\"" + value + "\" "; break; case 'ngBind': result = "ng-bind=\"" + value + "\" "; break; case 'trueValue': result = "ng-true-value=\"" + value + "\" "; break; case 'falseValue': result = "ng-false-value=\"" + value + "\" "; break; case 'awToolTip': result = "aw-tool-tip=\"" + value + "\" "; break; case 'awPopOver': result = "aw-pop-over='" + value + "' "; break; case 'dataTitle': result = "data-title=\"" + value + "\" "; break; case 'dataPlacement': result = "data-placement=\"" + value + "\" "; break; case 'dataContainer': result = "data-container=\"" + value + "\" "; break; case 'icon': // new method of constructing icon tag. Replces Icon method. result = ""; break; default: result = key + "=\"" + value + "\" "; } return result; } }) .factory('Icon', function() { return function(icon) { return " "; } }) .factory('Column', ['Attr', 'Icon', function(Attr, Icon) { return function(params) { var list = params['list']; var fld = params['fld']; var options = params['options']; var base = params['base']; var field = list['fields'][fld]; var html = ''; html += "