.widget-container.fluid-height.stf-upload(ng-controller='UploadCtrl') .heading i.fa.fa-upload span(translate) App Upload clear-button(ng-click='clear()', ng-disabled='!installation && !upload').btn-xs //label.checkbox-inline.pull-right input(type='checkbox', ng-model='launchEnabled') span Launch //label.checkbox-inline.pull-right input(type='checkbox', ng-model='installEnabled') span(translate) Install .widget-content.padded(style='padding: 0; padding-bottom: 15px;') // TODO: remove padding-bottom when drop file is implemented //.col-md-10.col-md-offset-1 //.input-group.form-inline input(type=text, ng-model='remoteUrl', ng-enter='installUrl(remoteUrl)', placeholder='http://...').form-control span.input-group-btn button.btn.btn-primary-outline(ng-click='installUrl(remoteUrl)', tooltip='{{ "Upload From Link" | translate }}', ng-disabled='!remoteUrl') i.fa.fa-upload .drop-area(ng-file-drop='installFile($files)').file-input.btn-file input(type='file', ng-file-select='installFile($files)') i.fa.fa-2x.fa-download.drop-area-icon .drop-area-text(translate) Drop file to upload //treecontrol.tree-classic(tree-model='treeData', options='treeOptions') span employee: {{node.name}} age {{node.age}} pre(ng-if='upload.error') Error: {{ upload.error }} p(translate) Error div(ng-switch='upload.error') strong(ng-switch-when='fail_invalid_app_file') span(translate) Uploaded file is not valid strong(ng-switch-when='fail_download') span(translate) Failed to download file strong(ng-switch-when='fail_invalid_url') span(translate) Cannot access specified URL strong(ng-switch-when='fail') span(translate) Upload failed //.upload-status(ng-if='upload && !upload.settled') progressbar(max='100', value='upload.progress', ng-if='!upload.settled', ng-class='{"active": !upload.settled}').progress-striped .upload-status(ng-if='upload || installation') accordion(close-others='false').pointer accordion-group(is-open='accordionOpen') accordion-heading.pointer i.fa.fa-file-o span {{installation.manifest.package || "App" }} button.btn.btn-xs.btn-danger-outline.pull-right( ng-click='uninstall(installation.manifest.package)', ng-show='installation.settled') i.fa.fa-trash-o span(translate) Uninstall div span(ng-switch='upload.lastData') strong(ng-switch-when='uploading') span(translate) Uploading... strong(ng-switch-when='processing') span(translate) Processing... strong(ng-switch-when='fail') span(translate) Upload failed strong(ng-switch-when='success') span(ng-show='!installation', translate) Upload complete span(ng-switch='installation.lastData') strong(ng-switch-when='pushing_app') span(translate) Pushing app... strong(ng-switch-when='installing_app') span(translate) Installing app... strong(ng-switch-when='launching_app') span(translate) Launching activity... strong(ng-switch-when='success') div(ng-include='"control-panes/dashboard/upload/activities/activities.jade"') button.btn.btn-sm.btn-primary-outline(btn-checkbox, ng-model='showManifest') i.fa.fa-list span(ng-if='showManifest') Hide Manifest span(ng-if='!showManifest') Show Manifest pre.manifest-text(ng-if='showManifest') {{ installation.manifest | json }} strong(ng-switch-when='fail') span(translate) Installation failed span(ng-hide='taskFinished()') ({{taskProgress()}}%) progressbar(max='100', value='taskProgress()', ng-if='!taskFinished()', ng-class='{"active": !taskFinished()}').progress-striped