From 7b0091123cf7ab2111c47e62e5e036051e544b12 Mon Sep 17 00:00:00 2001 From: Steve Hackbarth Date: Wed, 20 Aug 2014 23:11:59 -0500 Subject: [PATCH] metric with foo list --- source/xtuple-field-dev-sample-2/README.md | 7 +++ .../xtuple-field-dev-sample-2/client/core.js | 59 +++++++++++++++++++ .../client/en/strings.js | 16 +++++ .../client/package.js | 3 + .../database/orm/models/metric.json | 44 ++++++++++++++ .../database/source/manifest.js | 10 ++++ .../database/source/metric_with_foo.sql | 8 +++ source/xtuple-field-dev-sample-2/package.json | 18 ++++++ 8 files changed, 165 insertions(+) create mode 100644 source/xtuple-field-dev-sample-2/README.md create mode 100644 source/xtuple-field-dev-sample-2/client/core.js create mode 100644 source/xtuple-field-dev-sample-2/client/en/strings.js create mode 100644 source/xtuple-field-dev-sample-2/client/package.js create mode 100644 source/xtuple-field-dev-sample-2/database/orm/models/metric.json create mode 100644 source/xtuple-field-dev-sample-2/database/source/manifest.js create mode 100644 source/xtuple-field-dev-sample-2/database/source/metric_with_foo.sql create mode 100644 source/xtuple-field-dev-sample-2/package.json diff --git a/source/xtuple-field-dev-sample-2/README.md b/source/xtuple-field-dev-sample-2/README.md new file mode 100644 index 000000000..994c78eaf --- /dev/null +++ b/source/xtuple-field-dev-sample-2/README.md @@ -0,0 +1,7 @@ +xtuple-field-dev-sample-2 +================ + +### Overview + +Customer says to you: I want a read-only, searchable list of the `metric` table in +the setup area. But I also need some `foo` on every record. diff --git a/source/xtuple-field-dev-sample-2/client/core.js b/source/xtuple-field-dev-sample-2/client/core.js new file mode 100644 index 000000000..6262b2c43 --- /dev/null +++ b/source/xtuple-field-dev-sample-2/client/core.js @@ -0,0 +1,59 @@ +/*jshint indent:2, curly:true, eqeqeq:true, immed:true, latedef:true, +newcap:true, noarg:true, regexp:true, undef:true, strict:true, trailing:true, +white:true*/ +/*global XT:true, XM:true, XV:true, enyo:true */ + +(function () { + "use strict"; + + XT.extensions.xtuple_field_dev_sample_2 = { + + initModels: function () { + XM.MetricFoo = XM.Model.extend({ + recordType: "XM.MetricFoo" + }); + XM.MetricFooCollection = XM.Collection.extend({ + model: XM.MetricFoo + }); + }, + + initViews: function () { + enyo.kind({ + name: "XV.MetricFooListParameters", + kind: "XV.ParameterWidget", + components: [ + {kind: "onyx.GroupboxHeader", content: "_metrics".loc()}, + {name: "name", label: "_name".loc(), attr: "name"}, + {name: "value", label: "_value".loc(), attr: "value"} + ] + }); + + enyo.kind({ + name: "XV.MetricFooList", + kind: "XV.List", + label: "_metrics".loc(), + collection: "XM.MetricFooCollection", + parameterWidget: "XV.MetricFooListParameters", + query: {orderBy: [ + {attribute: 'name'} + ]}, + components: [ + {kind: "XV.ListItem", components: [ + {kind: "FittableColumns", components: [ + {kind: "XV.ListColumn", classes: "first", components: [ + {kind: "XV.ListAttr", attr: "name"}, + {kind: "XV.ListAttr", attr: "foo"} + ]}, + {kind: "XV.ListColumn", classes: "last", fit: true, components: [ + {kind: "XV.ListAttr", attr: "value"} + ]} + ]} + ]} + ] + }); + + XT.app.$.postbooks.appendPanels("setup", [{name: "metricFooList", kind: "XV.MetricFooList"}]); + } + }; + +}()); diff --git a/source/xtuple-field-dev-sample-2/client/en/strings.js b/source/xtuple-field-dev-sample-2/client/en/strings.js new file mode 100644 index 000000000..546c66c47 --- /dev/null +++ b/source/xtuple-field-dev-sample-2/client/en/strings.js @@ -0,0 +1,16 @@ +/*jshint node:true, indent:2, curly:false, eqeqeq:true, immed:true, +latedef:true, newcap:true, noarg:true, regexp:true, undef:true, +strict:true, trailing:true, white:true */ +/*global XT:true */ + +(function () { + "use strict"; + + var lang = XT.stringsFor("en_US", { + "_metrics": "Metrics" + }); + + if (typeof exports !== 'undefined') { + exports.language = lang; + } +}()); diff --git a/source/xtuple-field-dev-sample-2/client/package.js b/source/xtuple-field-dev-sample-2/client/package.js new file mode 100644 index 000000000..acae12e09 --- /dev/null +++ b/source/xtuple-field-dev-sample-2/client/package.js @@ -0,0 +1,3 @@ +enyo.depends( + "core.js" +); diff --git a/source/xtuple-field-dev-sample-2/database/orm/models/metric.json b/source/xtuple-field-dev-sample-2/database/orm/models/metric.json new file mode 100644 index 000000000..a5bf9f43c --- /dev/null +++ b/source/xtuple-field-dev-sample-2/database/orm/models/metric.json @@ -0,0 +1,44 @@ +[ + { + "context": "xtuple-field-dev-sample-2", + "nameSpace": "XM", + "type": "MetricFoo", + "table": "xtfielddev.metric_foo", + "comment": "Metric Map With Foo", + "privileges": { + "all": { + "create": false, + "read": true, + "update": false, + "delete": false + } + }, + "properties": [ + { + "name": "name", + "attr": { + "type": "String", + "column": "metric_name", + "isPrimaryKey": true, + "isNaturalKey": true + } + }, + { + "name": "value", + "attr": { + "type": "String", + "column": "metric_value" + } + }, + { + "name": "foo", + "attr": { + "type": "String", + "column": "foo" + } + } + ], + "isSystem": true + } +] + diff --git a/source/xtuple-field-dev-sample-2/database/source/manifest.js b/source/xtuple-field-dev-sample-2/database/source/manifest.js new file mode 100644 index 000000000..8d0235705 --- /dev/null +++ b/source/xtuple-field-dev-sample-2/database/source/manifest.js @@ -0,0 +1,10 @@ +{ + "name": "xtuple-field-dev-sample-2", + "version": "0.0.1", + "comment": "Simple field dev 2", + "loadOrder": 999, + "dependencies": [], + "databaseScripts": [ + "metric_with_foo.sql" + ] +} diff --git a/source/xtuple-field-dev-sample-2/database/source/metric_with_foo.sql b/source/xtuple-field-dev-sample-2/database/source/metric_with_foo.sql new file mode 100644 index 000000000..7a5bc117a --- /dev/null +++ b/source/xtuple-field-dev-sample-2/database/source/metric_with_foo.sql @@ -0,0 +1,8 @@ +select xt.create_schema('xtfielddev'); + +select xt.create_view('xtfielddev.metric_foo', $$ + + select metric_name, metric_value, 'foo'::text as foo + from public.metric + +$$); diff --git a/source/xtuple-field-dev-sample-2/package.json b/source/xtuple-field-dev-sample-2/package.json new file mode 100644 index 000000000..dcd9ca0dc --- /dev/null +++ b/source/xtuple-field-dev-sample-2/package.json @@ -0,0 +1,18 @@ +{ + "author": "Steve Hackbarth ", + "name": "xtuple-field-dev-sample-2", + "description": "Another xTuple field dev sample", + "version": "0.0.1", + "dependencies": { + }, + "peerDependencies": { + "xtuple": "~4.7.0" + }, + "repository": { + "type": "git", + "url": "http://github.com/shackbarth/xtuple-extensions" + }, + "engines": { + "node": "0.8.x" + } +}