Added local installer

This commit is contained in:
Simon Busborg
2016-05-31 16:18:41 +02:00
parent 4545e83534
commit c66de2298b
3 changed files with 213 additions and 10 deletions

View File

@@ -179,12 +179,10 @@
font-size: 14px;
font-weight: bold;
text-transform: capitalize;
height: 38px;
line-height: 38px;
max-width: 100%;
padding: 0 18px;
@@ -200,6 +198,8 @@
border-radius: 3px;
border: 0 none;
cursor: pointer;
transition: background-color 80ms ease, color 80ms ease;
}
@@ -226,18 +226,34 @@
background-color: @blueDark;
}
.umb-era-button.-red-orange {
background-color: #FF3F34;
color: white;
.umb-era-button.-link {
padding: 0;
background: transparent;
}
.umb-era-button.-link:hover {
background-color: transparent;
opacity: .6;
}
.umb-era-button.-inactive {
cursor: not-allowed;
background: whitesmoke;
color: @grayMed;
}
.umb-era-button.-inactive:hover {
background: whitesmoke;
color: @grayMed;
}
.umb-era-button.-full-width {
display: block;
width: 100%;
}
/* CATEGORIES */
.umb-packages-categories {
@@ -499,3 +515,91 @@
display: flex;
justify-content: flex-end;
}
// Install local package
// Accept terms
.umb-accept-terms {
margin-bottom: 40px;
display: flex;
align-items: center;
font-size: 13px;
}
.umb-package-installer-label .label-text {
margin-left: 5px;
}
.umb-package-installer-label input[type="radio"],
.umb-package-installer-label input[type="checkbox"] {
margin-top: 0px;
}
.umb-package-installer-label {
display: flex;
align-items: center;
font-size: 13px;
user-select: none;
}
// Install local package
.umb-center-allthings {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
max-width: 640px;
margin: 0 auto;
text-align: center;
}
// Upload state
.umb-upload-local input[type="file"] {
display: none;
}
.umb-upload-local {
display: flex;
flex-direction: row;
align-items: flex-start;
margin: 40px auto;
}
.umb-upload-local .loaded {
margin-left: 10px;
}
.umb-upload-local .upload i {
font-size: 20px;
line-height: 1;
}
.umb-upload-local .-large {
font-size: 18px;
}
.uploaded-file-name {
margin-left: 10px;
}
// Info state
.umb-info-local {
}
.umb-info-local-item {
margin: 10px 0;

View File

@@ -1,7 +1,31 @@
(function () {
"use strict";
function PackagesInstallLocalController($scope, $route, $location) {
angular.module("umbraco").controller("Umbraco.Editors.Packages.InstallLocalController");
var vm = this;
vm.state = "upload";
vm.localPackage = {
"packageName": "SvgIconPicker Version: 0.1.0",
"packageAuthor": "Søren Kottal",
"packageAuthorLink": "https://github.com/skttl/",
"packageInfo": "https://github.com/skttl/Umbraco.SvgIconPicker",
"packageLicens": "GPLv3",
"packageLicensLink": "http://www.gnu.org/licenses/quick-guide-gplv3.en.html",
"packageLicensAccept": false,
"packageReadme": false,
"filePath": "",
"riskAccept": false
};
vm.loadPackage = loadPackage;
function loadPackage(){
vm.state = "packageDetails";
}
}
angular.module("umbraco").controller("Umbraco.Editors.Packages.InstallLocalController", PackagesInstallLocalController);
})();

View File

@@ -1,7 +1,82 @@
<div ng-controller="Umbraco.Editors.Packages.InstallLocalController as vm" class="clearfix">
<div class="clearfix" ng-controller="Umbraco.Editors.Packages.InstallLocalController as vm">
<umb-load-indicator ng-if="page.loading"></umb-load-indicator>
Install Local
<!-- Upload -->
<div class="umb-upload-local" ng-if="vm.state === 'upload'">
<form novalidate name="localPackageForm" class="umb-center-allthings">
<h3><strong>Install local package</strong></h3>
<p>Browse for local packages, they usally have a ".zip" extension. You can find trusted packages on our.umbraco.com or in the package tab in Umbraco</p>
<div class="umb-upload-local">
<label for="body_file1">
<div class="umb-era-button -blue upload">
<i class="icon-cloud-upload large"></i>
<span class="uploaded-file-name">Choose file</span>
</div>
<input class="input-file" name="ctl00$body$file1" type="file" id="body_file1" onchange="enableButton();">
</label>
</div>
<label for="accept-terms" class="umb-accept-terms umb-package-installer-label">
<input type="checkbox" id="accept-terms" ng-model="vm.localPackage.riskAccept" required>
<strong class="label-text">I understand the security risks associated with installing a local package</strong>
</label>
<button type="button"
class="umb-era-button -blue loaded"
ng-class="{'-inactive' : localPackageForm.$invalid}"
ng-disabled="localPackageForm.$invalid"
ng-click="vm.loadPackage()">Load package and proceed
</button>
</form>
</div>
<!-- Package details -->
<div class="umb-info-local umb-center-allthings" ng-if="vm.state === 'packageDetails'">
<h3 class="umb-info-local-item"><strong>{{ vm.localPackage.packageName }}</strong></h3>
<div class="umb-info-local-item">
<strong>Author</strong>
<a href="{{ vm.localPackage.packageAuthorLink }}" target="_blank">{{ vm.localPackage.packageAuthor }}</a>
</div>
<div class="umb-info-local-item">
<strong>Repository</strong>
<a href="{{ vm.localPackage.packageInfo }}" target="_blank">{{ vm.localPackage.packageInfo }}</a>
</div>
<div class="umb-info-local-item">
<strong>License</strong>
<a href="{{ vm.localPackage.packageLicensLink }}">{{ vm.localPackage.packageLicens }}</a>
</div>
<div class="umb-info-local-item">
<strong>Accept license</strong>
<label for="licens-accept" class="umb-package-installer-label">
<input type="checkbox" id="licens-accept" ng-model="vm.localPackage.packageLicensAccept" required>
<strong class="label-text">I accept License</strong>
</label>
</div>
<div class="umb-info-local-item">
<strong>Read me</strong>
</div>
<button type="button"
class="umb-era-button -blue">
Install package
</button>
</div>
<pre>
{{ vm.localPackage | json }}
</pre>
</div>