{"action":"created","comment":{"url":"https://api.github.com/repos/Alfresco/Aikau/pulls/comments/35513273","id":35513273,"diff_hunk":"@@ -0,0 +1,558 @@\n+/**\n+ * Copyright (C) 2005-2015 Alfresco Software Limited.\n+ *\n+ * This file is part of Alfresco\n+ *\n+ * Alfresco is free software: you can redistribute it and/or modify\n+ * it under the terms of the GNU Lesser General Public License as published by\n+ * the Free Software Foundation, either version 3 of the License, or\n+ * (at your option) any later version.\n+ *\n+ * Alfresco is distributed in the hope that it will be useful,\n+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\n+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n+ * GNU Lesser General Public License for more details.\n+ *\n+ * You should have received a copy of the GNU Lesser General Public License\n+ * along with Alfresco. If not, see <http://www.gnu.org/licenses/>.\n+ */\n+\n+/**\n+ * <p>This layout widget provides the ability to display stacked content a little like the pages (panes) of \n+ * a book and where only one pane will be shown at a time. Panes can be dynamically added, selected and \n+ * removed as required. Unless explicitly requested, only the content of the intially selected pane will be \n+ * rendered - the content of the other panes will be rendered as they are selected. The height of the widget \n+ * will grow and shrink based on the content of each pane by default unless the \n+ * [height]{@link module:alfresco/layout/AlfStackContainer#height} is explicitly set to a non-percentage \n+ * value.</p>\n+ * <p>If you want the widget to respond to publications to dynamically \n+ * [add]{@link module:alfresco/layout/AlfStackContainer#paneAdditionTopic}, \n+ * [select]{@link module:alfresco/layout/AlfStackContainer#paneSelectionTopic} or\n+ * [delete]{@link module:alfresco/layout/AlfStackContainer#paneDeletionTopic} panes then you will need to \n+ * configure the topics to subscribe to. Subscriptions will be made at the configured \n+ * [pubSubScope]{@link module:alfresco/core/Core#pubSubScope} of the widget.</p>\n+ * <p>Pane selection can also be made by configuring a \n+ * [paneSelectionHashVar]{@link module:alfresco/layout/AlfStackContainer#paneSelectionHashVar}. When a hash \n+ * changed event occurs and the hash contains the configured variable, should it match the title of one of \n+ * the panes in the AlfStackContainer, that pane will be selected.</p>\n+ *\n+ * @example <caption>Basic configuration (first pane will be selected):</caption>\n+ * {\n+ *    name: \"alfresco/layout/AlfStackContainer\",\n+ *    config: {\n+ *       widgets: [\n+ *          {\n+ *             id: \"PANE1\",\n+ *             name: \"alfresco/logo/Logo\",\n+ *             title: \"Pane with Alfresco Logo\",\n+ *             config: {\n+ *                logoClasses: \"alfresco-logo-only\"\n+ *             }\n+ *          },\n+ *          {\n+ *             id: \"PANE2\",\n+ *             name: \"alfresco/logo/Logo\",\n+ *             title: \"Pane with Surf Logo\",\n+ *             config: {\n+ *                logoClasses: \"surf-logo-large\"\n+ *             }\n+ *          }\n+ *       ]\n+ *    }\n+ * }\n+ *\n+ * @example <caption>Use \"delayProcessing\" to force second pane to render before selection:</caption>\n+ * {\n+ *    name: \"alfresco/layout/AlfStackContainer\",\n+ *    config: {\n+ *       widgets: [\n+ *          {\n+ *             id: \"PANE1\",\n+ *             name: \"alfresco/logo/Logo\",\n+ *             title: \"Pane with Alfresco Logo\",\n+ *             selected: true,\n+ *             config: {\n+ *                logoClasses: \"alfresco-logo-only\"\n+ *             }\n+ *          },\n+ *          {\n+ *             id: \"PANE2\",\n+ *             name: \"alfresco/logo/Logo\",\n+ *             title: \"Pane with Surf Logo\",\n+ *             delayProcessing: false,\n+ *             config: {\n+ *                logoClasses: \"surf-logo-large\"\n+ *             }\n+ *          }\n+ *       ]\n+ *    }\n+ * }\n+ *\n+ * @example <caption>Use \"selected\" make the second pane initially selected:</caption>\n+ * {\n+ *    name: \"alfresco/layout/AlfStackContainer\",\n+ *    config: {\n+ *       widgets: [\n+ *          {\n+ *             id: \"PANE1\",\n+ *             name: \"alfresco/logo/Logo\",\n+ *             title: \"Pane with Alfresco Logo\",\n+ *             config: {\n+ *                logoClasses: \"alfresco-logo-only\"\n+ *             }\n+ *          },\n+ *          {\n+ *             id: \"PANE2\",\n+ *             name: \"alfresco/logo/Logo\",\n+ *             title: \"Pane with Surf Logo\",\n+ *             selected: true,\n+ *             config: {\n+ *                logoClasses: \"surf-logo-large\"\n+ *             }\n+ *          }\n+ *       ]\n+ *    }\n+ * }\n+ * \n+ * @example <caption>Define topics to dynamically manipulate panes:</caption>\n+ * {\n+ *    name: \"alfresco/layout/AlfStackContainer\",\n+ *    config: {\n+ *       paneSelectionTopic: \"SELECT_PANE_TOPIC\",\n+ *       paneAdditionTopic: \"ADD_PANE_TOPIC\",\n+ *       paneDeletionTopic: \"DELETE_PANE_TOPIC\",\n+ *       widgets: [\n+ *          {\n+ *             id: \"PANE1\",\n+ *             name: \"alfresco/logo/Logo\",\n+ *             title: \"Pane with Alfresco Logo\",\n+ *             selected\n+ *             config: {\n+ *                logoClasses: \"alfresco-logo-only\"\n+ *             }\n+ *          }\n+ *       ]\n+ *    }\n+ * }\n+ *\n+ * @example <caption>Example publication to add a new pane (based on previous example topic):</caption>\n+ * {\n+ *    publishTopic: \"ADD_PANE_TOPIC\",\n+ *    publishPayload: {\n+ *       widgets: [\n+ *          {\n+ *             name: \"alfresco/html/Label\",\n+ *             title: \"New\",\n+ *             closable: true,\n+ *             selected: true,\n+ *             config: {\n+ *                label: \"This pane was dynamically added\"\n+ *             }\n+ *          }\n+ *       ]\n+ *    }\n+ * }\n+ *\n+ * @example <caption>Define a paneSelectionHashVar:</caption>\n+ * {\n+ *    name: \"alfresco/layout/AlfStackContainer\",\n+ *    config: {\n+ *       paneSelectionHashVar: \"view\",\n+ *       widgets: [\n+ *          {\n+ *             id: \"PANE1\",\n+ *             name: \"alfresco/logo/Logo\",\n+ *             title: \"Pane1\",\n+ *             selected\n+ *             config: {\n+ *                logoClasses: \"alfresco-logo-only\"\n+ *             }\n+ *          },\n+ *          {\n+ *             id: \"PANE2\",\n+ *             name: \"alfresco/logo/Logo\",\n+ *             title: \"Pane2\",\n+ *             selected: true,\n+ *             config: {\n+ *                logoClasses: \"surf-logo-large\"\n+ *             }\n+ *          }\n+ *       ]\n+ *    }\n+ * }\n+ * <p>If the hash was changed to #view=Pane2, PANE2 will be displayed</p>\n+ * \n+ * @module alfresco/layout/AlfStackContainer\n+ * @extends external:dijit/_WidgetBase\n+ * @mixes external:dojo/_TemplatedMixin\n+ * @mixes module:alfresco/core/Core\n+ * @mixes module:alfresco/core/CoreWidgetProcessing\n+ * @author Richard Smith\n+ */\n+define([\"dojo/_base/declare\",\n+        \"dijit/_WidgetBase\", \n+        \"dijit/_TemplatedMixin\",\n+        \"dojo/text!./templates/AlfStackContainer.html\",\n+        \"alfresco/core/Core\",\n+        \"alfresco/core/CoreWidgetProcessing\",\n+        \"alfresco/documentlibrary/_AlfHashMixin\",\n+        \"dijit/layout/StackContainer\",\n+        \"dijit/layout/ContentPane\",\n+        \"dojo/dom-construct\",\n+        \"dojo/_base/lang\",\n+        \"dojo/_base/array\",\n+        \"dojo/hash\",\n+        \"dojo/io-query\"], \n+        function(declare, _WidgetBase, _TemplatedMixin, template, AlfCore, CoreWidgetProcessing, _AlfHashMixin, \n+                  StackContainer, ContentPane, domConstruct, lang, array, hash, ioQuery) {\n+   \n+   return declare([_WidgetBase, _TemplatedMixin, AlfCore, CoreWidgetProcessing, _AlfHashMixin], {\n+      \n+      /**\n+       * The HTML template to use for the widget\n+       * \n+       * @instance\n+       * @type {string}\n+       */\n+      templateString: template,\n+      \n+      /**\n+       * This will hold a reference to the stack container widget.\n+       *\n+       * @instance\n+       * @type {object}\n+       * @default null\n+       */\n+      stackContainerWidget: null,\n+\n+      /**\n+       * Height of the finished AlfStackContainer as any recognised css size with units\n+       * \n+       * @instance\n+       * @type {string}\n+       * @default \"100%\"\n+       */\n+      height: \"100%\",\n+\n+      /**\n+       * Width of the finished AlfStackContainer as any recognised css size with units\n+       * \n+       * @instance\n+       * @type {string}\n+       * @default \"100%\"\n+       */\n+      width: \"100%\",\n+\n+      /**\n+       * Should StackContainer layout mathematics be invoked?\n+       * \n+       * @instance\n+       * @type {Boolean}\n+       * @default false\n+       */\n+      doLayout: false,\n+\n+      /**\n+       * This array is used to store widgets for delayed processing\n+       * \n+       * @type {array}\n+       */\n+      _delayedProcessingWidgets: [],\n+\n+      /**\n+       * The topic whose publication should trigger the selection of a pane\n+       * \n+       * @instance\n+       * @type {string}\n+       * @default null\n+       */\n+      paneSelectionTopic: null,\n+\n+      /**\n+       * The topic whose publication should trigger the addition of a pane\n+       * \n+       * @instance\n+       * @type {string}\n+       * @default null\n+       */\n+      paneAdditionTopic: null,\n+\n+      /**\n+       * The topic whose publication should trigger the deletion of a pane\n+       * \n+       * @instance\n+       * @type {string}\n+       * @default null\n+       */\n+      paneDeletionTopic: null,\n+\n+      /**\n+       * If this optional value is provided, a change to the hash of this variable will update the pane selection\n+       *\n+       * @instance\n+       * @type {string}\n+       * @default null\n+       */\n+      paneSelectionHashVar: null,\n+      \n+      /**\n+       * Variable to record the title of the selected pane at initialisation\n+       *\n+       * @instance\n+       * @type {object}\n+       * @default null\n+       * @private\n+       */\n+      _defaultPaneTitle: null,\n+\n+      /**\n+       * @instance\n+       */\n+      postCreate: function alfresco_layout_AlfStackContainer__postCreate() {\n+\n+         // Initialise a StackContainer instance and watch its selectedChildWidget event\n+         this.stackContainerWidget = new StackContainer({\n+            style: \"height: \" + this.height + \"; width: \" + this.width + \";\",\n+            doLayout: this.doLayout\n+         }, this.containerNode);\n+         this.stackContainerWidget.watch(\"selectedChildWidget\", lang.hitch(this, \"_paneChanged\"));\n+\n+         // Setup child widgets and startup()\n+         if (this.widgets)\n+         {\n+            // By default we want to ensure that we don't unnecessarily process widgets for \n+            // panes that are not immediately visible. Therefore unless specifically requested \n+            // in the configuration to be the selected pane or to render immediately then\n+            // we'll mark them all as delayed processing. If no pane is marked as selected then\n+            // we'll ensure that the first pane is both selected and will be immediately rendered\n+            var paneSelected = false;\n+            array.forEach(this.widgets, function(widget) {\n+               if (widget.delayProcessing !== false && !widget.selected)\n+               {\n+                  widget.delayProcessing = true;\n+               }\n+               paneSelected = paneSelected || widget.selected;\n+            });\n+            if (this.widgets.length && !paneSelected)\n+            {\n+               this.widgets[0].selected = true;\n+               this.widgets[0].delayProcessing = false;\n+            }\n+\n+            // Now add panes for each widget...\n+            array.forEach(this.widgets, lang.hitch(this, \"addWidget\"));\n+         }\n+         this.stackContainerWidget.startup();\n+\n+         // Subscribe to some optional topics\n+         if (this.paneSelectionTopic != null)\n+         {\n+            this.alfSubscribe(this.paneSelectionTopic, lang.hitch(this, \"paneSelect\"));\n+         }\n+         if (this.paneAdditionTopic != null)\n+         {\n+            this.alfSubscribe(this.paneAdditionTopic, lang.hitch(this, \"paneAdd\"));\n+         }\n+         if (this.paneDeletionTopic != null)\n+         {\n+            this.alfSubscribe(this.paneDeletionTopic, lang.hitch(this, \"paneDelete\"));\n+         }\n+         if (this.paneSelectionHashVar != null)\n+         {\n+            this.alfSubscribe(this.hashChangeTopic, lang.hitch(this, this.onHashChanged));\n+\n+            // Initialise the view by invoking onHashChanged, as though the browser had done so\n+            this.onHashChanged(ioQuery.queryToObject(hash()));\n+         }\n+      },\n+\n+      /**\n+       * This function adds widgets to the StackContainer widget\n+       * \n+       * @instance\n+       * @param {object} widget The widget to add\n+       * @param {integer} index The index of the required pane position\n+       */\n+      addWidget: function alfresco_layout_AlfStackContainer__addWidget(widget, index) {\n+\n+         // Create a domNode and ContentPane\n+         var domNode = domConstruct.create(\"div\", {}),\n+             cp = new ContentPane();\n+\n+         // Add content to the ContentPane\n+         if(widget.content && typeof widget.content === \"string\")\n+         {\n+            cp.set('content', widget.content);","path":"aikau/src/main/resources/alfresco/layout/AlfStackContainer.js","position":385,"original_position":385,"commit_id":"458c4f61054c58d9d90ba8c682c2a8b495773e78","original_commit_id":"458c4f61054c58d9d90ba8c682c2a8b495773e78","user":{"login":"MartinDoyleUK","id":2427267,"avatar_url":"https://avatars.githubusercontent.com/u/2427267?v=3","gravatar_id":"","url":"https://api.github.com/users/MartinDoyleUK","html_url":"https://github.com/MartinDoyleUK","followers_url":"https://api.github.com/users/MartinDoyleUK/followers","following_url":"https://api.github.com/users/MartinDoyleUK/following{/other_user}","gists_url":"https://api.github.com/users/MartinDoyleUK/gists{/gist_id}","starred_url":"https://api.github.com/users/MartinDoyleUK/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MartinDoyleUK/subscriptions","organizations_url":"https://api.github.com/users/MartinDoyleUK/orgs","repos_url":"https://api.github.com/users/MartinDoyleUK/repos","events_url":"https://api.github.com/users/MartinDoyleUK/events{/privacy}","received_events_url":"https://api.github.com/users/MartinDoyleUK/received_events","type":"User","site_admin":false},"body":"Single-quotes not permitted in Aikau any more. Please run JSHint on all changed files and fix any resultant bugs. The `.jshintrc` config file in the Aikau project should be picked up automatically by most JSHint runtimes.","created_at":"2015-07-27T08:11:23Z","updated_at":"2015-07-27T08:11:23Z","html_url":"https://github.com/Alfresco/Aikau/pull/400#discussion_r35513273","pull_request_url":"https://api.github.com/repos/Alfresco/Aikau/pulls/400","_links":{"self":{"href":"https://api.github.com/repos/Alfresco/Aikau/pulls/comments/35513273"},"html":{"href":"https://github.com/Alfresco/Aikau/pull/400#discussion_r35513273"},"pull_request":{"href":"https://api.github.com/repos/Alfresco/Aikau/pulls/400"}}},"pull_request":{"url":"https://api.github.com/repos/Alfresco/Aikau/pulls/400","id":40875891,"html_url":"https://github.com/Alfresco/Aikau/pull/400","diff_url":"https://github.com/Alfresco/Aikau/pull/400.diff","patch_url":"https://github.com/Alfresco/Aikau/pull/400.patch","issue_url":"https://api.github.com/repos/Alfresco/Aikau/issues/400","number":400,"state":"open","locked":false,"title":"Add AlfStackContainer to Aikau","user":{"login":"spotnape","id":5859428,"avatar_url":"https://avatars.githubusercontent.com/u/5859428?v=3","gravatar_id":"","url":"https://api.github.com/users/spotnape","html_url":"https://github.com/spotnape","followers_url":"https://api.github.com/users/spotnape/followers","following_url":"https://api.github.com/users/spotnape/following{/other_user}","gists_url":"https://api.github.com/users/spotnape/gists{/gist_id}","starred_url":"https://api.github.com/users/spotnape/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spotnape/subscriptions","organizations_url":"https://api.github.com/users/spotnape/orgs","repos_url":"https://api.github.com/users/spotnape/repos","events_url":"https://api.github.com/users/spotnape/events{/privacy}","received_events_url":"https://api.github.com/users/spotnape/received_events","type":"User","site_admin":false},"body":" - module and template\r\n - test model files and test\r\n - test Suites modification","created_at":"2015-07-27T07:17:04Z","updated_at":"2015-07-27T08:11:23Z","closed_at":null,"merged_at":null,"merge_commit_sha":"fcb4660802f854ae9be8959460c85d51a4a42b2c","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/Alfresco/Aikau/pulls/400/commits","review_comments_url":"https://api.github.com/repos/Alfresco/Aikau/pulls/400/comments","review_comment_url":"https://api.github.com/repos/Alfresco/Aikau/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Alfresco/Aikau/issues/400/comments","statuses_url":"https://api.github.com/repos/Alfresco/Aikau/statuses/458c4f61054c58d9d90ba8c682c2a8b495773e78","head":{"label":"spotnape:develop","ref":"develop","sha":"458c4f61054c58d9d90ba8c682c2a8b495773e78","user":{"login":"spotnape","id":5859428,"avatar_url":"https://avatars.githubusercontent.com/u/5859428?v=3","gravatar_id":"","url":"https://api.github.com/users/spotnape","html_url":"https://github.com/spotnape","followers_url":"https://api.github.com/users/spotnape/followers","following_url":"https://api.github.com/users/spotnape/following{/other_user}","gists_url":"https://api.github.com/users/spotnape/gists{/gist_id}","starred_url":"https://api.github.com/users/spotnape/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spotnape/subscriptions","organizations_url":"https://api.github.com/users/spotnape/orgs","repos_url":"https://api.github.com/users/spotnape/repos","events_url":"https://api.github.com/users/spotnape/events{/privacy}","received_events_url":"https://api.github.com/users/spotnape/received_events","type":"User","site_admin":false},"repo":{"id":34459764,"name":"Aikau","full_name":"spotnape/Aikau","owner":{"login":"spotnape","id":5859428,"avatar_url":"https://avatars.githubusercontent.com/u/5859428?v=3","gravatar_id":"","url":"https://api.github.com/users/spotnape","html_url":"https://github.com/spotnape","followers_url":"https://api.github.com/users/spotnape/followers","following_url":"https://api.github.com/users/spotnape/following{/other_user}","gists_url":"https://api.github.com/users/spotnape/gists{/gist_id}","starred_url":"https://api.github.com/users/spotnape/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spotnape/subscriptions","organizations_url":"https://api.github.com/users/spotnape/orgs","repos_url":"https://api.github.com/users/spotnape/repos","events_url":"https://api.github.com/users/spotnape/events{/privacy}","received_events_url":"https://api.github.com/users/spotnape/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/spotnape/Aikau","description":"Aikau UI framework","fork":true,"url":"https://api.github.com/repos/spotnape/Aikau","forks_url":"https://api.github.com/repos/spotnape/Aikau/forks","keys_url":"https://api.github.com/repos/spotnape/Aikau/keys{/key_id}","collaborators_url":"https://api.github.com/repos/spotnape/Aikau/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/spotnape/Aikau/teams","hooks_url":"https://api.github.com/repos/spotnape/Aikau/hooks","issue_events_url":"https://api.github.com/repos/spotnape/Aikau/issues/events{/number}","events_url":"https://api.github.com/repos/spotnape/Aikau/events","assignees_url":"https://api.github.com/repos/spotnape/Aikau/assignees{/user}","branches_url":"https://api.github.com/repos/spotnape/Aikau/branches{/branch}","tags_url":"https://api.github.com/repos/spotnape/Aikau/tags","blobs_url":"https://api.github.com/repos/spotnape/Aikau/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/spotnape/Aikau/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/spotnape/Aikau/git/refs{/sha}","trees_url":"https://api.github.com/repos/spotnape/Aikau/git/trees{/sha}","statuses_url":"https://api.github.com/repos/spotnape/Aikau/statuses/{sha}","languages_url":"https://api.github.com/repos/spotnape/Aikau/languages","stargazers_url":"https://api.github.com/repos/spotnape/Aikau/stargazers","contributors_url":"https://api.github.com/repos/spotnape/Aikau/contributors","subscribers_url":"https://api.github.com/repos/spotnape/Aikau/subscribers","subscription_url":"https://api.github.com/repos/spotnape/Aikau/subscription","commits_url":"https://api.github.com/repos/spotnape/Aikau/commits{/sha}","git_commits_url":"https://api.github.com/repos/spotnape/Aikau/git/commits{/sha}","comments_url":"https://api.github.com/repos/spotnape/Aikau/comments{/number}","issue_comment_url":"https://api.github.com/repos/spotnape/Aikau/issues/comments{/number}","contents_url":"https://api.github.com/repos/spotnape/Aikau/contents/{+path}","compare_url":"https://api.github.com/repos/spotnape/Aikau/compare/{base}...{head}","merges_url":"https://api.github.com/repos/spotnape/Aikau/merges","archive_url":"https://api.github.com/repos/spotnape/Aikau/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/spotnape/Aikau/downloads","issues_url":"https://api.github.com/repos/spotnape/Aikau/issues{/number}","pulls_url":"https://api.github.com/repos/spotnape/Aikau/pulls{/number}","milestones_url":"https://api.github.com/repos/spotnape/Aikau/milestones{/number}","notifications_url":"https://api.github.com/repos/spotnape/Aikau/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/spotnape/Aikau/labels{/name}","releases_url":"https://api.github.com/repos/spotnape/Aikau/releases{/id}","created_at":"2015-04-23T14:03:06Z","updated_at":"2015-04-23T14:03:11Z","pushed_at":"2015-07-27T07:14:51Z","git_url":"git://github.com/spotnape/Aikau.git","ssh_url":"git@github.com:spotnape/Aikau.git","clone_url":"https://github.com/spotnape/Aikau.git","svn_url":"https://github.com/spotnape/Aikau","homepage":null,"size":57491,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"Alfresco:develop","ref":"develop","sha":"edecbf420f8d82bd2939354a68d33a88d662153c","user":{"login":"Alfresco","id":391127,"avatar_url":"https://avatars.githubusercontent.com/u/391127?v=3","gravatar_id":"","url":"https://api.github.com/users/Alfresco","html_url":"https://github.com/Alfresco","followers_url":"https://api.github.com/users/Alfresco/followers","following_url":"https://api.github.com/users/Alfresco/following{/other_user}","gists_url":"https://api.github.com/users/Alfresco/gists{/gist_id}","starred_url":"https://api.github.com/users/Alfresco/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Alfresco/subscriptions","organizations_url":"https://api.github.com/users/Alfresco/orgs","repos_url":"https://api.github.com/users/Alfresco/repos","events_url":"https://api.github.com/users/Alfresco/events{/privacy}","received_events_url":"https://api.github.com/users/Alfresco/received_events","type":"Organization","site_admin":false},"repo":{"id":29740360,"name":"Aikau","full_name":"Alfresco/Aikau","owner":{"login":"Alfresco","id":391127,"avatar_url":"https://avatars.githubusercontent.com/u/391127?v=3","gravatar_id":"","url":"https://api.github.com/users/Alfresco","html_url":"https://github.com/Alfresco","followers_url":"https://api.github.com/users/Alfresco/followers","following_url":"https://api.github.com/users/Alfresco/following{/other_user}","gists_url":"https://api.github.com/users/Alfresco/gists{/gist_id}","starred_url":"https://api.github.com/users/Alfresco/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Alfresco/subscriptions","organizations_url":"https://api.github.com/users/Alfresco/orgs","repos_url":"https://api.github.com/users/Alfresco/repos","events_url":"https://api.github.com/users/Alfresco/events{/privacy}","received_events_url":"https://api.github.com/users/Alfresco/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Alfresco/Aikau","description":"Aikau UI framework","fork":false,"url":"https://api.github.com/repos/Alfresco/Aikau","forks_url":"https://api.github.com/repos/Alfresco/Aikau/forks","keys_url":"https://api.github.com/repos/Alfresco/Aikau/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Alfresco/Aikau/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Alfresco/Aikau/teams","hooks_url":"https://api.github.com/repos/Alfresco/Aikau/hooks","issue_events_url":"https://api.github.com/repos/Alfresco/Aikau/issues/events{/number}","events_url":"https://api.github.com/repos/Alfresco/Aikau/events","assignees_url":"https://api.github.com/repos/Alfresco/Aikau/assignees{/user}","branches_url":"https://api.github.com/repos/Alfresco/Aikau/branches{/branch}","tags_url":"https://api.github.com/repos/Alfresco/Aikau/tags","blobs_url":"https://api.github.com/repos/Alfresco/Aikau/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Alfresco/Aikau/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Alfresco/Aikau/git/refs{/sha}","trees_url":"https://api.github.com/repos/Alfresco/Aikau/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Alfresco/Aikau/statuses/{sha}","languages_url":"https://api.github.com/repos/Alfresco/Aikau/languages","stargazers_url":"https://api.github.com/repos/Alfresco/Aikau/stargazers","contributors_url":"https://api.github.com/repos/Alfresco/Aikau/contributors","subscribers_url":"https://api.github.com/repos/Alfresco/Aikau/subscribers","subscription_url":"https://api.github.com/repos/Alfresco/Aikau/subscription","commits_url":"https://api.github.com/repos/Alfresco/Aikau/commits{/sha}","git_commits_url":"https://api.github.com/repos/Alfresco/Aikau/git/commits{/sha}","comments_url":"https://api.github.com/repos/Alfresco/Aikau/comments{/number}","issue_comment_url":"https://api.github.com/repos/Alfresco/Aikau/issues/comments{/number}","contents_url":"https://api.github.com/repos/Alfresco/Aikau/contents/{+path}","compare_url":"https://api.github.com/repos/Alfresco/Aikau/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Alfresco/Aikau/merges","archive_url":"https://api.github.com/repos/Alfresco/Aikau/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Alfresco/Aikau/downloads","issues_url":"https://api.github.com/repos/Alfresco/Aikau/issues{/number}","pulls_url":"https://api.github.com/repos/Alfresco/Aikau/pulls{/number}","milestones_url":"https://api.github.com/repos/Alfresco/Aikau/milestones{/number}","notifications_url":"https://api.github.com/repos/Alfresco/Aikau/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Alfresco/Aikau/labels{/name}","releases_url":"https://api.github.com/repos/Alfresco/Aikau/releases{/id}","created_at":"2015-01-23T16:04:14Z","updated_at":"2015-07-27T07:19:43Z","pushed_at":"2015-07-27T07:17:05Z","git_url":"git://github.com/Alfresco/Aikau.git","ssh_url":"git@github.com:Alfresco/Aikau.git","clone_url":"https://github.com/Alfresco/Aikau.git","svn_url":"https://github.com/Alfresco/Aikau","homepage":null,"size":69908,"stargazers_count":20,"watchers_count":20,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":20,"mirror_url":null,"open_issues_count":3,"forks":20,"open_issues":3,"watchers":20,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Alfresco/Aikau/pulls/400"},"html":{"href":"https://github.com/Alfresco/Aikau/pull/400"},"issue":{"href":"https://api.github.com/repos/Alfresco/Aikau/issues/400"},"comments":{"href":"https://api.github.com/repos/Alfresco/Aikau/issues/400/comments"},"review_comments":{"href":"https://api.github.com/repos/Alfresco/Aikau/pulls/400/comments"},"review_comment":{"href":"https://api.github.com/repos/Alfresco/Aikau/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Alfresco/Aikau/pulls/400/commits"},"statuses":{"href":"https://api.github.com/repos/Alfresco/Aikau/statuses/458c4f61054c58d9d90ba8c682c2a8b495773e78"}}}}