6d3afe2fb6382f733c233417d95866c88e4684d1.svn-base 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. $(function() {
  2. $.extend(BemsWebApplication.Factory, {
  3. getColumns: function(columns) {
  4. var defaultColumns = this.defaultColumns;
  5. if (_.isNull(defaultColumns)) {
  6. throw new Error('it must be "defaultColumns"');
  7. }
  8. if (_.isUndefined(columns)) {
  9. return defaultColumns;
  10. }
  11. _.each(columns, function(c) {
  12. var defaultColumn = _.find(defaultColumns, function(x) {
  13. return x.dataField === c.dataField;
  14. });
  15. _.each(defaultColumn, function(value, name) {
  16. if (_.isUndefined(c[name])) {
  17. c[name] = value;
  18. }
  19. });
  20. });
  21. //columns = _.map(columns, function(c) {
  22. // return _.extend(_.find(defaultColumns, function(x) {
  23. // return x.dataField === c.dataField;
  24. // }), c);
  25. //});
  26. //columns.forEach(function(column) {
  27. // c.push($.extend({}, defaultColumns[column.dataField], column));
  28. //});
  29. //return c;
  30. return columns;
  31. },
  32. getAlterNames: function(select, alterNames) {
  33. return $.extend(_.reduce(select, function(o, name) {
  34. if (name.indexOf('/') < 0) {
  35. o[name] = name;
  36. }
  37. return o;
  38. }, {}), alterNames);
  39. },
  40. getBaseDataSourceWithRelation: function(store, options, dataSourceOptions, refTable) {
  41. var o = {
  42. dataSourceOptions: {
  43. store: store,
  44. select: dataSourceOptions.select,
  45. expand: dataSourceOptions.expand,
  46. refOptions: options,
  47. },
  48. ref: refTable
  49. };
  50. if (_.has(dataSourceOptions, 'extendOptions')) {
  51. var extendOptions = {};
  52. if (_.has(dataSourceOptions.extendOptions, 'multipleItems')) {
  53. extendOptions.multipleItems = dataSourceOptions.extendOptions.multipleItems;
  54. }
  55. if (_.has(dataSourceOptions.extendOptions, 'alterNames')) {
  56. extendOptions.alterNames = BWA.DataUtil.mapObject(dataSourceOptions.extendOptions.alterNames, function(x) {
  57. return [refTable, '/', x].join('');
  58. });
  59. }
  60. o.dataSourceOptions.extendOptions = extendOptions;
  61. }
  62. return BWA.DataUtil.createDataSource(o);
  63. }
  64. });
  65. });