{"action":"created","comment":{"url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/pulls/comments/178349411","pull_request_review_id":108398876,"id":178349411,"diff_hunk":"@@ -0,0 +1,98 @@\n+# Components\n+**Note:** This guide assumes you are in the `app/src/app/` folder.\n+\n+In Angular components are used to seperate an application in different display blocks that display data, listen on user input, and take action based on that input.\n+\n+In the following all components of the TOSCAna web app will be shortly explained:\n+\n+## Overview\n+\n+![](img/components.png)\n+## app\n+\n+![](img/app-comonent.png)\n+\n+The app component is the entry point of the web app it holds the topbar, sidebar and the view.\n+\n+**View:** The content of the view changes dynamically based on the route. The `routes` array in `modules/routing/routing.modules.ts` maps a route to a component.\n+You can read more about routing [here](https://angular.io/guide/router) in the Angular docs.\n+\n+## csar-sidebar \n+\n+![](img/sidebar.png)\n+\n+The sidebar shows all available CSARs if you click on a CSAR it also shows its sub items.\n+\n+The sidebar component also manages CSAR upload it checks if the CSAR name is valid and if the User submits it uploads the file to the server.\n+\n+### csar-item \n+\n+This component holds a CSAR and its sub items.\n+\n+It handles user actions like:\n+\n+- clicking on the csar-item: notify the RouteHandler to open the csar-view, highlight itself and show the csar-sub-item component\n+- clicking the `+` button: notify the RouteHandler to open the transformation-creator component to create a transformation for the given csar\n+- clicking the deletion button: delete the CSAR and close its csar-view if it is opened\n+\n+\n+### csar-sub-item\n+\n+This component shows t list of transformations based on the given csar.\n+\n+It handles user actions like:\n+\n+- clicking on a transformations list item: notify the RouteHandler to open the transformation-view for transformation clicked on\n+- clicking on the trash bin: delete the transformation and close the transformation-view if opened\n+\n+## transformation-creator\n+\n+![](img/transformation-creator.png)\n+\n+The transformation creator shows all available target platforms.\n+If a user click on a target platform and a transformation for that platform already exists it shows a dialog that asks the user if he wants to overwrite the transformation.\n+Then it creates a transformation for that platform and tells the RouteHandler to show the transformation-input view.\n+\n+## transformation-inputs\n+\n+![](img/transformation-inputs.png)\n+\n+This component shows a table containing all inputs a transformation needs.\n+If a user fills one of the text boxes the component is responsible for validating the input. \n+\n+## transformation-view\n+\n+![](img/view_transformation.png)\n+\n+This component shows all relevant information about a transformation.\n+For each of the transformations phase it shows the state in a corresponding color.\n+Also it creates the run script that automatically downloads the artifact of a transformation and executes the `deploy.sh`.\n+The transformation-view also polls for changes in the transformation process and updates the log view it holds.\n+\n+Additionally to the log tab the component has also a inputs and outputs tab.\n+The inputs tab shows the transformation inputs and the outputs tab shows the outputs that were defined in the service template of the CSAR.\n+\n+## csar-view\n+\n+![](img/view_csars.png)\n+\n+The csar-view shows information about a CSAR.\n+Like the transformation-view it also shows the CSAR processing phases and its status.\n+And it also holds the log view.","path":"docs/dev/webapp/components.md","position":81,"original_position":81,"commit_id":"6eb5062f1eb223dd19a07ec8a7ddb7f6603f8a4d","original_commit_id":"6eb5062f1eb223dd19a07ec8a7ddb7f6603f8a4d","user":{"login":"hnicke","id":13155638,"avatar_url":"https://avatars2.githubusercontent.com/u/13155638?v=4","gravatar_id":"","url":"https://api.github.com/users/hnicke","html_url":"https://github.com/hnicke","followers_url":"https://api.github.com/users/hnicke/followers","following_url":"https://api.github.com/users/hnicke/following{/other_user}","gists_url":"https://api.github.com/users/hnicke/gists{/gist_id}","starred_url":"https://api.github.com/users/hnicke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hnicke/subscriptions","organizations_url":"https://api.github.com/users/hnicke/orgs","repos_url":"https://api.github.com/users/hnicke/repos","events_url":"https://api.github.com/users/hnicke/events{/privacy}","received_events_url":"https://api.github.com/users/hnicke/received_events","type":"User","site_admin":false},"body":"`And it` -> `It`","created_at":"2018-03-30T18:51:27Z","updated_at":"2018-03-30T19:03:12Z","html_url":"https://github.com/StuPro-TOSCAna/TOSCAna/pull/637#discussion_r178349411","pull_request_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/pulls/637","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/pulls/comments/178349411"},"html":{"href":"https://github.com/StuPro-TOSCAna/TOSCAna/pull/637#discussion_r178349411"},"pull_request":{"href":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/pulls/637"}}},"pull_request":{"url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/pulls/637","id":178611403,"html_url":"https://github.com/StuPro-TOSCAna/TOSCAna/pull/637","diff_url":"https://github.com/StuPro-TOSCAna/TOSCAna/pull/637.diff","patch_url":"https://github.com/StuPro-TOSCAna/TOSCAna/pull/637.patch","issue_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/issues/637","number":637,"state":"open","locked":false,"title":"[WIP] Web app dev doc","user":{"login":"nfode","id":3685923,"avatar_url":"https://avatars1.githubusercontent.com/u/3685923?v=4","gravatar_id":"","url":"https://api.github.com/users/nfode","html_url":"https://github.com/nfode","followers_url":"https://api.github.com/users/nfode/followers","following_url":"https://api.github.com/users/nfode/following{/other_user}","gists_url":"https://api.github.com/users/nfode/gists{/gist_id}","starred_url":"https://api.github.com/users/nfode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nfode/subscriptions","organizations_url":"https://api.github.com/users/nfode/orgs","repos_url":"https://api.github.com/users/nfode/repos","events_url":"https://api.github.com/users/nfode/events{/privacy}","received_events_url":"https://api.github.com/users/nfode/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-03-30T18:32:48Z","updated_at":"2018-03-30T19:03:12Z","closed_at":null,"merged_at":null,"merge_commit_sha":"cfc32404e3d8252df97fc25c158f95d6ec7d6ebe","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/pulls/637/commits","review_comments_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/pulls/637/comments","review_comment_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/pulls/comments{/number}","comments_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/issues/637/comments","statuses_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/statuses/6eb5062f1eb223dd19a07ec8a7ddb7f6603f8a4d","head":{"label":"StuPro-TOSCAna:doc/app/dev-doc","ref":"doc/app/dev-doc","sha":"6eb5062f1eb223dd19a07ec8a7ddb7f6603f8a4d","user":{"login":"StuPro-TOSCAna","id":30219494,"avatar_url":"https://avatars2.githubusercontent.com/u/30219494?v=4","gravatar_id":"","url":"https://api.github.com/users/StuPro-TOSCAna","html_url":"https://github.com/StuPro-TOSCAna","followers_url":"https://api.github.com/users/StuPro-TOSCAna/followers","following_url":"https://api.github.com/users/StuPro-TOSCAna/following{/other_user}","gists_url":"https://api.github.com/users/StuPro-TOSCAna/gists{/gist_id}","starred_url":"https://api.github.com/users/StuPro-TOSCAna/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StuPro-TOSCAna/subscriptions","organizations_url":"https://api.github.com/users/StuPro-TOSCAna/orgs","repos_url":"https://api.github.com/users/StuPro-TOSCAna/repos","events_url":"https://api.github.com/users/StuPro-TOSCAna/events{/privacy}","received_events_url":"https://api.github.com/users/StuPro-TOSCAna/received_events","type":"Organization","site_admin":false},"repo":{"id":96331237,"name":"TOSCAna","full_name":"StuPro-TOSCAna/TOSCAna","owner":{"login":"StuPro-TOSCAna","id":30219494,"avatar_url":"https://avatars2.githubusercontent.com/u/30219494?v=4","gravatar_id":"","url":"https://api.github.com/users/StuPro-TOSCAna","html_url":"https://github.com/StuPro-TOSCAna","followers_url":"https://api.github.com/users/StuPro-TOSCAna/followers","following_url":"https://api.github.com/users/StuPro-TOSCAna/following{/other_user}","gists_url":"https://api.github.com/users/StuPro-TOSCAna/gists{/gist_id}","starred_url":"https://api.github.com/users/StuPro-TOSCAna/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StuPro-TOSCAna/subscriptions","organizations_url":"https://api.github.com/users/StuPro-TOSCAna/orgs","repos_url":"https://api.github.com/users/StuPro-TOSCAna/repos","events_url":"https://api.github.com/users/StuPro-TOSCAna/events{/privacy}","received_events_url":"https://api.github.com/users/StuPro-TOSCAna/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/StuPro-TOSCAna/TOSCAna","description":"TOSCA transformer build by students at the University of Stuttgart","fork":false,"url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna","forks_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/forks","keys_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/keys{/key_id}","collaborators_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/teams","hooks_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/hooks","issue_events_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/issues/events{/number}","events_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/events","assignees_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/assignees{/user}","branches_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/branches{/branch}","tags_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/tags","blobs_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/git/refs{/sha}","trees_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/git/trees{/sha}","statuses_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/statuses/{sha}","languages_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/languages","stargazers_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/stargazers","contributors_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/contributors","subscribers_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/subscribers","subscription_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/subscription","commits_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/commits{/sha}","git_commits_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/git/commits{/sha}","comments_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/comments{/number}","issue_comment_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/issues/comments{/number}","contents_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/contents/{+path}","compare_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/compare/{base}...{head}","merges_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/merges","archive_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/downloads","issues_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/issues{/number}","pulls_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/pulls{/number}","milestones_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/milestones{/number}","notifications_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/labels{/name}","releases_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/releases{/id}","deployments_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/deployments","created_at":"2017-07-05T14:57:34Z","updated_at":"2018-03-30T18:59:46Z","pushed_at":"2018-03-30T18:59:48Z","git_url":"git://github.com/StuPro-TOSCAna/TOSCAna.git","ssh_url":"git@github.com:StuPro-TOSCAna/TOSCAna.git","clone_url":"https://github.com/StuPro-TOSCAna/TOSCAna.git","svn_url":"https://github.com/StuPro-TOSCAna/TOSCAna","homepage":"http://toscana.readthedocs.io","size":96839,"stargazers_count":9,"watchers_count":9,"language":"Java","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":4,"mirror_url":null,"archived":false,"open_issues_count":29,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":4,"open_issues":29,"watchers":9,"default_branch":"master"}},"base":{"label":"StuPro-TOSCAna:doc/app/documentation","ref":"doc/app/documentation","sha":"fa164dffde0d55abacfa5b12ffbe22253f928eea","user":{"login":"StuPro-TOSCAna","id":30219494,"avatar_url":"https://avatars2.githubusercontent.com/u/30219494?v=4","gravatar_id":"","url":"https://api.github.com/users/StuPro-TOSCAna","html_url":"https://github.com/StuPro-TOSCAna","followers_url":"https://api.github.com/users/StuPro-TOSCAna/followers","following_url":"https://api.github.com/users/StuPro-TOSCAna/following{/other_user}","gists_url":"https://api.github.com/users/StuPro-TOSCAna/gists{/gist_id}","starred_url":"https://api.github.com/users/StuPro-TOSCAna/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StuPro-TOSCAna/subscriptions","organizations_url":"https://api.github.com/users/StuPro-TOSCAna/orgs","repos_url":"https://api.github.com/users/StuPro-TOSCAna/repos","events_url":"https://api.github.com/users/StuPro-TOSCAna/events{/privacy}","received_events_url":"https://api.github.com/users/StuPro-TOSCAna/received_events","type":"Organization","site_admin":false},"repo":{"id":96331237,"name":"TOSCAna","full_name":"StuPro-TOSCAna/TOSCAna","owner":{"login":"StuPro-TOSCAna","id":30219494,"avatar_url":"https://avatars2.githubusercontent.com/u/30219494?v=4","gravatar_id":"","url":"https://api.github.com/users/StuPro-TOSCAna","html_url":"https://github.com/StuPro-TOSCAna","followers_url":"https://api.github.com/users/StuPro-TOSCAna/followers","following_url":"https://api.github.com/users/StuPro-TOSCAna/following{/other_user}","gists_url":"https://api.github.com/users/StuPro-TOSCAna/gists{/gist_id}","starred_url":"https://api.github.com/users/StuPro-TOSCAna/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StuPro-TOSCAna/subscriptions","organizations_url":"https://api.github.com/users/StuPro-TOSCAna/orgs","repos_url":"https://api.github.com/users/StuPro-TOSCAna/repos","events_url":"https://api.github.com/users/StuPro-TOSCAna/events{/privacy}","received_events_url":"https://api.github.com/users/StuPro-TOSCAna/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/StuPro-TOSCAna/TOSCAna","description":"TOSCA transformer build by students at the University of Stuttgart","fork":false,"url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna","forks_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/forks","keys_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/keys{/key_id}","collaborators_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/teams","hooks_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/hooks","issue_events_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/issues/events{/number}","events_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/events","assignees_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/assignees{/user}","branches_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/branches{/branch}","tags_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/tags","blobs_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/git/refs{/sha}","trees_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/git/trees{/sha}","statuses_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/statuses/{sha}","languages_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/languages","stargazers_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/stargazers","contributors_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/contributors","subscribers_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/subscribers","subscription_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/subscription","commits_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/commits{/sha}","git_commits_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/git/commits{/sha}","comments_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/comments{/number}","issue_comment_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/issues/comments{/number}","contents_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/contents/{+path}","compare_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/compare/{base}...{head}","merges_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/merges","archive_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/downloads","issues_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/issues{/number}","pulls_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/pulls{/number}","milestones_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/milestones{/number}","notifications_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/labels{/name}","releases_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/releases{/id}","deployments_url":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/deployments","created_at":"2017-07-05T14:57:34Z","updated_at":"2018-03-30T18:59:46Z","pushed_at":"2018-03-30T18:59:48Z","git_url":"git://github.com/StuPro-TOSCAna/TOSCAna.git","ssh_url":"git@github.com:StuPro-TOSCAna/TOSCAna.git","clone_url":"https://github.com/StuPro-TOSCAna/TOSCAna.git","svn_url":"https://github.com/StuPro-TOSCAna/TOSCAna","homepage":"http://toscana.readthedocs.io","size":96839,"stargazers_count":9,"watchers_count":9,"language":"Java","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":4,"mirror_url":null,"archived":false,"open_issues_count":29,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":4,"open_issues":29,"watchers":9,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/pulls/637"},"html":{"href":"https://github.com/StuPro-TOSCAna/TOSCAna/pull/637"},"issue":{"href":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/issues/637"},"comments":{"href":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/issues/637/comments"},"review_comments":{"href":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/pulls/637/comments"},"review_comment":{"href":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/pulls/637/commits"},"statuses":{"href":"https://api.github.com/repos/StuPro-TOSCAna/TOSCAna/statuses/6eb5062f1eb223dd19a07ec8a7ddb7f6603f8a4d"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"hnicke"}}