{"version":3,"sources":["webpack://yocto-console-view/webpack/universalModuleDefinition","webpack://yocto-console-view/webpack/bootstrap","webpack://yocto-console-view/./src/module/main.module.js","webpack://yocto-console-view/external \"angular-animate\"","webpack://yocto-console-view/external \"@uirouter/angularjs\"","webpack://yocto-console-view/external \"guanlecoja-ui\"","webpack://yocto-console-view/external \"buildbot-data-js\"","webpack://yocto-console-view/./src/module/console.tpl.jade","webpack://yocto-console-view/./src/module/view/modal/modal.tpl.jade","webpack://yocto-console-view/./src/module/view/modal/modal.controller.js","webpack://yocto-console-view/./src/module/releaseselectorfield.directive.js","webpack://yocto-console-view/./src/module/releaseselectorfield.tpl.jade","webpack://yocto-console-view/./src/module/yoctochangedetails.directive.js","webpack://yocto-console-view/./src/module/yoctochangedetails.tpl.jade"],"names":["root","factory","exports","module","require","define","amd","self","this","__WEBPACK_EXTERNAL_MODULE__1__","__WEBPACK_EXTERNAL_MODULE__2__","__WEBPACK_EXTERNAL_MODULE__3__","__WEBPACK_EXTERNAL_MODULE__4__","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","angular","config","ConsoleState","constructor","$stateProvider","glMenuServiceProvider","bbSettingsServiceProvider","addGroup","caption","icon","order","cfg","group","state","controller","concat","controllerAs","template","url","data","addSettingsGroup","items","type","default_value","Console","$scope","$q","$window","dataService","bbSettingsService","resultsService","$uibModal","$timeout","onChange","_onChange","matchBuildWithChange","makeFakeChange","extend","settings","getSettingsGroup","buildLimit","changeLimit","dataAccessor","open","closeOnDestroy","_infoIsExpanded","all_builders","getBuilders","builders","buildergroups","Intl","collator","Collator","undefined","numeric","sensitivity","strcompare","compare","a","b","revmapping","branchmapping","builds","getBuilds","limit","changes","getChanges","fakechanges","buildrequests","getBuildrequests","buildsets","getBuildsets","onNew","build","change","buildid","properties","yp_build_revision","yp_build_branch","complete_at","getProperties","endpoint","split","rev","getBuildProperty","branch","onchange_debounce","length","$resolved","_i","_Array$from","Array","from","builderid","hasBuild","sortBuildersByTags","changesBySSID","changesByRevision","_i2","_Array$from2","sourcestamp","ssid","revision","populateChange","_i3","_Array$from3","_i4","_Array$from4","filtered_changes","comments","subject","_i5","_Array$from5","push","builder","tag","builders_with_builds","builderids_with_builds","_i6","_Array$from6","last_builderids_with_builds","builders_by_tags","_i7","_Array$from7","tags","_i8","_Array$from8","sort","colspan","sorted_builders","tag_lines","buildersById","_i9","_Array$from9","buildergroup","builderg","_i10","_Array$from10","buildrequest","buildrequestid","buildset","buildsetid","started_at","revlink","errorlink","parent_buildid","reason","publish_destination","publishurl","replace","when_timestamp","changeid","openAll","map","show_details","closeAll","getRowHeaderWidth","hasExpanded","getColHeaderHeight","max_buildername","_i11","_Array$from11","Math","max","isBigTable","padding","innerWidth","_i12","_Array$from12","infoIsExpanded","selectBuild","windowClass","resolve","selectedBuild","toggleInfo","window","T","ConsoleModal","$uibModalInstance","$on","close","directive","Releaseselectorfield","restrict","scope","_releaseselectorfield","$http","rootfield","$parent","fields_ref","gatherFields","fields","field","fullName","$watch","selector","selectors","result","k","v","console","log","Yoctochangedetails","compact"],"mappings":"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","file":"scripts.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"angular-animate\"), require(\"@uirouter/angularjs\"), require(\"guanlecoja-ui\"), require(\"buildbot-data-js\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"yocto-console-view\", [\"angular-animate\", \"@uirouter/angularjs\", \"guanlecoja-ui\", \"buildbot-data-js\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"yocto-console-view\"] = factory(require(\"angular-animate\"), require(\"@uirouter/angularjs\"), require(\"guanlecoja-ui\"), require(\"buildbot-data-js\"));\n\telse\n\t\troot[\"yocto-console-view\"] = factory(root[\"angular-animate\"], root[\"@uirouter/angularjs\"], root[\"guanlecoja-ui\"], root[\"buildbot-data-js\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__1__, __WEBPACK_EXTERNAL_MODULE__2__, __WEBPACK_EXTERNAL_MODULE__3__, __WEBPACK_EXTERNAL_MODULE__4__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","/*\n * decaffeinate suggestions:\n * DS101: Remove unnecessary use of Array.from\n * DS102: Remove unnecessary code created because of implicit returns\n * DS205: Consider reworking code to avoid use of IIFEs\n * DS207: Consider shorter variations of null checks\n * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md\n */\n\nimport 'angular-animate';\nimport '@uirouter/angularjs';\nimport 'guanlecoja-ui';\nimport 'buildbot-data-js';\n\nclass ConsoleState {\n constructor($stateProvider, glMenuServiceProvider, bbSettingsServiceProvider) {\n\n // Name of the state\n const name = 'console';\n\n // Menu configuration\n glMenuServiceProvider.addGroup({\n name,\n caption: 'Yocto Console View',\n icon: 'exclamation-circle',\n order: 5\n });\n\n // Configuration\n const cfg = {\n group: name,\n caption: 'Yocto Console View'\n };\n\n // Register new state\n const state = {\n controller: `${name}Controller`,\n controllerAs: \"c\",\n template: require('./console.tpl.jade'),\n name,\n url: `/${name}`,\n data: cfg\n };\n\n $stateProvider.state(state);\n\n bbSettingsServiceProvider.addSettingsGroup({\n name: 'Console',\n caption: 'Console related settings',\n items: [{\n type: 'integer',\n name: 'buildLimit',\n caption: 'Number of builds to fetch',\n default_value: 200\n }\n , {\n type: 'integer',\n name: 'changeLimit',\n caption: 'Number of changes to fetch',\n default_value: 30\n }\n ]});\n }\n}\n\nclass Console {\n constructor($scope, $q, $window, dataService, bbSettingsService, resultsService,\n $uibModal, $timeout) {\n this.onChange = this.onChange.bind(this);\n this._onChange = this._onChange.bind(this);\n this.matchBuildWithChange = this.matchBuildWithChange.bind(this);\n this.makeFakeChange = this.makeFakeChange.bind(this);\n this.$scope = $scope;\n this.$window = $window;\n this.$uibModal = $uibModal;\n this.$timeout = $timeout;\n angular.extend(this, resultsService);\n const settings = bbSettingsService.getSettingsGroup('Console');\n this.buildLimit = settings.buildLimit.value;\n this.changeLimit = settings.changeLimit.value;\n this.dataAccessor = dataService.open().closeOnDestroy(this.$scope);\n this._infoIsExpanded = {};\n this.$scope.all_builders = (this.all_builders = this.dataAccessor.getBuilders());\n this.$scope.builders = (this.builders = []);\n this.$scope.buildergroups = (this.buildergroups = []);\n if (typeof Intl !== 'undefined' && Intl !== null) {\n const collator = new Intl.Collator(undefined, {numeric: true, sensitivity: 'base'});\n this.strcompare = collator.compare;\n } else {\n this.strcompare = function(a, b) {\n if (a < b) {\n return -1;\n }\n if (a === b) {\n return 0;\n }\n return 1;\n };\n }\n\n this.$scope.revmapping = (this.revmapping = {});\n this.$scope.branchmapping = (this.branchmapping = {});\n\n this.$scope.builds = (this.builds = this.dataAccessor.getBuilds({\n property: [\"yp_build_revision\", \"yp_build_branch\", \"reason\", \"publish_destination\"],\n limit: this.buildLimit,\n order: '-started_at'\n }));\n this.changes = this.dataAccessor.getChanges({limit: this.changeLimit, order: '-changeid'});\n this.$scope.fakechanges = (this.fakechanges = []);\n this.buildrequests = this.dataAccessor.getBuildrequests({limit: this.buildLimit, order: '-submitted_at'});\n this.buildsets = this.dataAccessor.getBuildsets({limit: this.buildLimit, order: '-submitted_at'});\n\n this.builds.onChange = this.onChange;\n this.changes.onChange = this.onChange;\n this.buildrequests.onChange = this.onChange;\n this.buildsets.onChange = this.onChange;\n\n this.builds.onNew = build => {\n let change = false;\n let {\n buildid\n } = build;\n if ((build.properties != null ? build.properties.yp_build_revision : undefined) != null) {\n this.revmapping[build.buildid] = build.properties.yp_build_revision[0];\n change = true;\n }\n if ((build.properties != null ? build.properties.yp_build_branch : undefined) != null) {\n this.branchmapping[build.buildid] = build.properties.yp_build_branch[0];\n change = true;\n }\n if ((!this.revmapping[buildid] || !this.branchmapping[buildid]) && !build.complete_at) {\n build.getProperties().onChange = properties => {\n change = false;\n buildid = properties.endpoint.split('/')[1];\n if (!this.revmapping[buildid]) {\n const rev = this.getBuildProperty(properties[0], 'yp_build_revision');\n if (rev != null) {\n this.revmapping[buildid] = rev;\n change = true;\n }\n }\n if (!this.branchmapping[buildid]) {\n const branch = this.getBuildProperty(properties[0], 'yp_build_branch');\n if (branch != null) {\n this.branchmapping[buildid] = branch;\n change = true;\n }\n }\n if (change && (this.onchange_debounce == null)) {\n this.onchange_debounce = this.$timeout(this._onChange, 100);\n }\n };\n }\n if (change && (this.onchange_debounce == null)) {\n this.onchange_debounce = this.$timeout(this._onChange, 100);\n }\n };\n }\n\n getBuildProperty(properties, property) {\n const hasProperty = properties && properties.hasOwnProperty(property);\n if (hasProperty) { return properties[property][0]; } else { return null; }\n }\n\n onChange(s) {\n // if there is no data, no need to try and build something.\n if ((this.builds.length === 0) || (this.all_builders.length === 0) || !this.changes.$resolved ||\n (this.buildsets.length === 0) || (this.buildrequests === 0)) {\n return;\n }\n if ((this.onchange_debounce == null)) {\n this.onchange_debounce = this.$timeout(this._onChange, 100);\n }\n }\n\n _onChange() {\n let build, change;\n this.onchange_debounce = undefined;\n // we only display builders who actually have builds\n for (build of Array.from(this.builds)) {\n this.all_builders.get(build.builderid).hasBuild = true;\n }\n\n this.sortBuildersByTags(this.all_builders);\n\n if (this.changesBySSID == null) { this.changesBySSID = {}; }\n if (this.changesByRevision == null) { this.changesByRevision = {}; }\n for (change of Array.from(this.changes)) {\n this.changesBySSID[change.sourcestamp.ssid] = change;\n this.changesByRevision[change.revision] = change;\n this.populateChange(change);\n }\n for (change of Array.from(this.fakechanges)) {\n this.populateChange(change);\n }\n\n for (build of Array.from(this.builds)) {\n this.matchBuildWithChange(build);\n }\n\n this.filtered_changes = [];\n\n for (let ssid in this.changesBySSID) {\n change = this.changesBySSID[ssid];\n if (change.comments) {\n change.subject = change.comments.split(\"\\n\")[0];\n }\n for (let builder of Array.from(change.builders)) {\n if (builder.builds.length > 0) {\n this.filtered_changes.push(change);\n break;\n }\n }\n }\n }\n /*\n * Sort builders by tags\n * Buildbot eight has the category option, but it was only limited to one category per builder,\n * which make it easy to sort by category\n * Here, we have multiple tags per builder, we need to try to group builders with same tags together\n * The algorithm is rather twisted. It is a first try at the concept of grouping builders by tags..\n */\n\n sortBuildersByTags(all_builders) {\n // first we only want builders with builds\n let builder, builders, tag;\n const builders_with_builds = [];\n let builderids_with_builds = \"\";\n for (let builder of Array.from(all_builders)) {\n if (builder.hasBuild && builder.name != 'indexing') {\n builders_with_builds.push(builder);\n builderids_with_builds += `.${builder.builderid}`;\n }\n }\n\n if (builderids_with_builds === this.last_builderids_with_builds) {\n // don't recalculate if it hasn't changed!\n return;\n }\n\n const builders_by_tags = {};\n for (builder of Array.from(builders_with_builds)) {\n if (builder.tags != null && builder.tags.length) {\n for (tag of Array.from(builder.tags)) {\n if ((builders_by_tags[tag] == null)) {\n builders_by_tags[tag] = [];\n }\n builders_by_tags[tag].push(builder);\n }\n } else {\n if ((builders_by_tags[''] == null)) {\n builders_by_tags[''] = [];\n }\n builders_by_tags[''].push(builder);\n }\n }\n\n const self = this;\n for (tag in builders_by_tags) {\n builders_by_tags[tag].sort((a, b) => self.strcompare(a.name, b.name));\n }\n let buildergroups = [];\n for (tag in builders_by_tags) {\n if (tag != '') {\n buildergroups.push({\n name: builders_by_tags[tag][0].name,\n tag: tag,\n builders: builders_by_tags[tag],\n colspan: builders_by_tags[tag].length\n });\n }\n }\n for (builder in builders_by_tags['']) {\n buildergroups.push({\n name: builders_by_tags[''][builder].name,\n tag: '',\n builders: [builders_by_tags[''][builder]],\n colspan: 1\n });\n }\n\n buildergroups.sort((a, b) => self.strcompare(a.name, b.name));\n\n let sorted_builders = [];\n for (let group in buildergroups) {\n for (builder in buildergroups[group].builders) {\n sorted_builders.push(buildergroups[group].builders[builder])\n }\n }\n\n this.builders = sorted_builders;\n this.buildergroups = buildergroups;\n this.tag_lines = [];\n return this.last_builderids_with_builds = builderids_with_builds;\n }\n\n /*\n * fill a change with a list of builders\n */\n populateChange(change) {\n change.builders = [];\n change.buildersById = {};\n for (let buildergroup of Array.from(this.buildergroups)) {\n let builderg = {name: buildergroup.name, builds: [], builders: [], colspan: buildergroup.builders.length};\n for (let builder of Array.from(buildergroup.builders)) {\n builderg.builders.push(builder);\n change.buildersById[builder.builderid] = builderg;\n }\n change.builders.push(builderg);\n }\n }\n /*\n * Match builds with a change\n */\n matchBuildWithChange(build) {\n let change, oldrev, rev;\n const buildrequest = this.buildrequests.get(build.buildrequestid);\n if ((buildrequest == null)) {\n return;\n }\n const buildset = this.buildsets.get(buildrequest.buildsetid);\n if ((buildset == null)) {\n return;\n }\n\n if (((build.properties != null ? build.properties.yp_build_revision : undefined) != null) || this.revmapping[build.buildid]) {\n if ((build.properties != null ? build.properties.yp_build_revision : undefined) != null) {\n rev = build.properties.yp_build_revision[0];\n } else {\n rev = this.revmapping[build.buildid];\n }\n change = this.changesByRevision[rev];\n if ((change == null)) {\n change = this.changesBySSID[rev];\n }\n if ((change == null)) {\n change = this.makeFakeChange(rev, build.started_at, rev);\n this.fakechanges.push(change)\n }\n\n change.caption = \"Commit\";\n if ((build.properties != null ? build.properties.yp_build_branch : undefined) != null) {\n change.caption = build.properties.yp_build_branch[0];\n }\n if (this.branchmapping[build.buildid]) {\n change.caption = this.branchmapping[build.buildid];\n }\n change.revlink = \"http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=\" + rev;\n change.errorlink = \"http://errors.yoctoproject.org/Errors/Latest/?filter=\" + rev + \"&type=commit&limit=150\";\n let bid = build.buildid;\n if ((buildset != null) && (buildset.parent_buildid != null)) {\n bid = buildset.parent_buildid;\n }\n if ((build.properties != null ? build.properties.reason : undefined) != null) {\n change.reason = build.properties.reason[0];\n }\n if ((build.properties != null ? build.properties.publish_destination : undefined) != null) {\n change.publishurl = build.properties.publish_destination[0].replace(\"/srv/autobuilder/autobuilder.yoctoproject.org/\", \"https://autobuilder.yocto.io/\");\n change.publishurl = change.publishurl.replace(\"/srv/autobuilder/autobuilder.yocto.io/\", \"https://autobuilder.yocto.io/\");\n }\n\n } else {\n rev = `Unresolved Revision`;\n if ((change == null)) {\n change = this.changesBySSID[rev];\n }\n if ((change == null)) {\n change = this.makeFakeChange(rev, build.started_at, rev);\n change.caption = rev;\n this.fakechanges.push(change)\n }\n\n }\n\n if (build.builderid in change.buildersById) {\n change.buildersById[build.builderid].builds.push(build);\n }\n }\n\n makeFakeChange(revision, when_timestamp, comments) {\n const change = {\n revision,\n changeid: revision,\n when_timestamp,\n comments\n };\n this.changesBySSID[revision] = change;\n this.populateChange(change);\n return change;\n }\n /*\n * Open all change row information\n */\n openAll() {\n return Array.from(this.filtered_changes).map((change) =>\n (change.show_details = true));\n }\n\n /*\n * Close all change row information\n */\n closeAll() {\n return Array.from(this.filtered_changes).map((change) =>\n (change.show_details = false));\n }\n\n /*\n * Calculate row header (aka first column) width\n * depending if we display commit comment, we reserve more space\n */\n getRowHeaderWidth() {\n if (this.hasExpanded()) {\n return 400; // magic value enough to hold 78 characters lines\n } else {\n return 200;\n }\n }\n /*\n * Calculate col header (aka first row) height\n * It depends on the length of the longest builder\n */\n getColHeaderHeight() {\n let max_buildername = 0;\n for (let builder of Array.from(this.builders)) {\n max_buildername = Math.max(builder.name.length, max_buildername);\n }\n return Math.max(100, max_buildername * 3);\n }\n\n /*\n *\n * Determine if we use a 100% width table or if we allow horizontal scrollbar\n * depending on number of builders, and size of window, we need a fixed column size or a 100% width table\n *\n */\n isBigTable() {\n const padding = this.getRowHeaderWidth();\n if (((this.$window.innerWidth - padding) / this.builders.length) < 40) {\n return true;\n }\n return false;\n }\n /*\n *\n * do we have at least one change expanded?\n *\n */\n hasExpanded() {\n for (let change of Array.from(this.changes)) {\n if (this.infoIsExpanded(change)) {\n return true;\n }\n }\n return false;\n }\n\n /*\n *\n * display build details\n *\n */\n selectBuild(build) {\n let modal;\n return modal = this.$uibModal.open({\n template: require('./view/modal/modal.tpl.jade'),\n controller: 'consoleModalController as modal',\n windowClass: 'modal-big',\n resolve: {\n selectedBuild() { return build; }\n }\n });\n }\n\n /*\n *\n * toggle display of additional info for that change\n *\n */\n toggleInfo(change) {\n return change.show_details = !change.show_details;\n }\n infoIsExpanded(change) {\n return change.show_details;\n }\n}\n\n\nangular.module('yocto_console_view', [\n 'ui.router', 'ui.bootstrap', 'ngAnimate', 'guanlecoja.ui', 'bbData'])\n.config(['$stateProvider', 'glMenuServiceProvider', 'bbSettingsServiceProvider', ConsoleState])\n.controller('consoleController', ['$scope', '$q', '$window', 'dataService', 'bbSettingsService', 'resultsService', '$uibModal', '$timeout', Console]);\n\nrequire('./view/modal/modal.controller.js');\nrequire('./releaseselectorfield.directive.js');\nrequire('./yoctochangedetails.directive.js');\n","module.exports = __WEBPACK_EXTERNAL_MODULE__1__;","module.exports = __WEBPACK_EXTERNAL_MODULE__2__;","module.exports = __WEBPACK_EXTERNAL_MODULE__3__;","module.exports = __WEBPACK_EXTERNAL_MODULE__4__;","module.exports = window.T['console_view/views/console.html'] || \"

loading

No changes. Console view needs changesource to be setup, andchangesto be in the system.

{{buildergroup.tag}}
{{ build.number }}
\";","module.exports = window.T['console_view/views/modal.html'] || \"

Build summary

\";","/*\n * decaffeinate suggestions:\n * DS102: Remove unnecessary code created because of implicit returns\n * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md\n */\nclass ConsoleModal {\n constructor($scope, $uibModalInstance, selectedBuild) {\n this.$uibModalInstance = $uibModalInstance;\n this.selectedBuild = selectedBuild;\n $scope.$on('$stateChangeStart', () => {\n return this.close();\n });\n }\n\n close() {\n return this.$uibModalInstance.close();\n }\n}\n\n\nangular.module('yocto_console_view')\n.controller('consoleModalController', ['$scope', '$uibModalInstance', 'selectedBuild', ConsoleModal]);\n","/*\n * decaffeinate suggestions:\n * DS002: Fix invalid constructor\n * DS101: Remove unnecessary use of Array.from\n * DS102: Remove unnecessary code created because of implicit returns\n * DS205: Consider reworking code to avoid use of IIFEs\n * DS207: Consider shorter variations of null checks\n * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md\n */\n\nclass Releaseselectorfield {\n constructor() {\n return {\n replace: false,\n restrict: 'E',\n scope: false,\n template: require('./releaseselectorfield.tpl.jade'),\n controller: '_ReleaseselectorfieldController'\n };\n }\n}\n\nclass _releaseselectorfield {\n constructor($scope, $http) {\n // HACK: we find the rootfield by doing $scope.$parent.$parent\n let rootfield = $scope;\n while ((rootfield != null) && (rootfield.rootfield == null)) {\n rootfield = rootfield.$parent;\n }\n\n if ((rootfield == null)) {\n console.log(\"rootfield not found!?!?\");\n return;\n }\n\n // copy paste of code in forcedialog, which flatten the fields to be able to find easily\n const fields_ref = {};\n var gatherFields = fields => Array.from(fields).map((field) =>\n (field.fields != null) ?\n gatherFields(field.fields)\n :\n (fields_ref[field.fullName] = field));\n\n gatherFields(rootfield.rootfield.fields);\n\n // when our field change, we update the fields that we are suppose to\n $scope.$watch(\"field.value\", function(n, o) {\n\n const selector = $scope.field.selectors[n];\n if (selector != null) {\n return (() => {\n const result = [];\n for (let k in selector) {\n const v = selector[k];\n if (k in fields_ref) {\n result.push(fields_ref[k].value = v);\n }\n }\n return result;\n })();\n }\n });\n }\n}\n\nangular.module('yocto_console_view')\n.directive('releaseselectorfield', [Releaseselectorfield])\n.controller('_ReleaseselectorfieldController', ['$scope', '$http', _releaseselectorfield])\n","module.exports = window.T['console_view/views/releaseselectorfield.html'] || \"
\";","/*\n * decaffeinate suggestions:\n * DS002: Fix invalid constructor\n * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md\n */\nclass Yoctochangedetails {\n constructor() {\n return {\n replace: true,\n restrict: 'E',\n scope: {\n change: '=',\n compact: '=?'\n },\n template: require('./yoctochangedetails.tpl.jade')\n };\n }\n}\n\nangular.module('yocto_console_view')\n.directive('yoctochangedetails', [Yoctochangedetails])\n","module.exports = window.T['console_view/views/yoctochangedetails.html'] || \"
{{ change.caption }}  {{ \\\"Errors\\\" }}  {{ \\\"Output\\\" }}  {{ change.caption }}  ({{ change.when_timestamp | timeago }})  
Reason{{ change.reason }}
Author{{ change.author }}
Date{{ change.when_timestamp | dateformat:'LLL'}} ({{ change.when_timestamp | timeago }})
Repository{{ change.repository }}
Branch{{ change.branch }}
Revision {{ change.revision }}
Comment
{{ change.comments }}
Changed files

No files

\";"],"sourceRoot":""}