mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-11-28 05:37:34 +03:00
Update styles for content screen, buttons, and app frame
* Updates styling on content management screen, replaces button styles, tweaks application frame style
This commit is contained in:
parent
e18457cebe
commit
db74744d2b
@ -123,9 +123,9 @@ export default Controller.extend({
|
||||
|
||||
buttonClass: computed('validationResult', 'usersArray.length', function () {
|
||||
if (this.get('validationResult') === true && this.get('usersArray.length') > 0) {
|
||||
return 'btn-green';
|
||||
return 'gh-btn-green';
|
||||
} else {
|
||||
return 'btn-minor';
|
||||
return 'gh-btn-minor';
|
||||
}
|
||||
}),
|
||||
|
||||
|
@ -92,10 +92,10 @@
|
||||
<section class="settings-content js-settings-content fade-in">
|
||||
|
||||
<header class="settings-view-header">
|
||||
<a class="btn btn-default btn-back active" href="/ghost/settings/">Back</a>
|
||||
<a class="gh-btn gh-btn-default gh-btn-back active" href="/ghost/settings/"><span>Back</span></a>
|
||||
<h2 class="page-title">General</h2>
|
||||
<section class="page-actions">
|
||||
<button type="button" class="btn btn-blue" data-ember-action="1271">Save</button>
|
||||
<button type="button" class="gh-btn gh-btn-blue" data-ember-action="1271"><span>Save</span></button>
|
||||
</section>
|
||||
</header>
|
||||
|
||||
@ -110,7 +110,7 @@
|
||||
|
||||
<div class="form-group">
|
||||
<label for="blog-logo">Blog Logo</label>
|
||||
<button type="button" class="btn btn-green js-modal-logo" data-ember-action="1277">Upload Image</button>
|
||||
<button type="button" class="gh-btn gh-btn-green js-modal-logo" data-ember-action="1277"><span>Upload Image</span></button>
|
||||
<p>Display a sexy logo for your publication</p>
|
||||
</div>
|
||||
|
||||
@ -247,4 +247,4 @@
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
</script>
|
||||
|
@ -29,7 +29,7 @@ export default AuthenticatedRoute.extend(styleBody, CurrentUserSettings, {
|
||||
save() {
|
||||
// since shortcuts are run on the route, we have to signal to the components
|
||||
// on the page that we're about to save.
|
||||
$('.page-actions .btn-blue').focus();
|
||||
$('.page-actions .gh-btn-blue').focus();
|
||||
|
||||
this.get('controller').send('save');
|
||||
},
|
||||
|
@ -7,6 +7,9 @@
|
||||
|
||||
/* explicit modal container so that background and content can be animated individually */
|
||||
.fullscreen-modal-container {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
visibility: hidden;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
@ -26,7 +29,8 @@
|
||||
left: 0;
|
||||
z-index: 50;
|
||||
height: 100vh;
|
||||
background: rgba(0, 0, 0, 0.6);
|
||||
background: #324750;
|
||||
opacity: 0.86;
|
||||
}
|
||||
|
||||
.fullscreen-modal {
|
||||
@ -49,23 +53,12 @@
|
||||
/* ---------------------------------------------------------- */
|
||||
|
||||
.fullscreen-modal-wide {
|
||||
width: 550px;
|
||||
}
|
||||
|
||||
@media (max-width: 900px) {
|
||||
.fullscreen-modal-wide {
|
||||
width: 100%;
|
||||
}
|
||||
width: 100%;
|
||||
max-width: 550px;
|
||||
}
|
||||
|
||||
.fullscreen-modal-action {
|
||||
margin: 60px auto 30px;
|
||||
}
|
||||
|
||||
@media (max-width: 900px) {
|
||||
.fullscreen-modal-action {
|
||||
margin: 30px auto;
|
||||
}
|
||||
margin: 2vh 0 10vh 0;
|
||||
}
|
||||
|
||||
|
||||
@ -78,11 +71,11 @@
|
||||
|
||||
.modal-content {
|
||||
position: relative;
|
||||
padding: 18px;
|
||||
padding: 40px;
|
||||
background-color: #fff;
|
||||
background-clip: padding-box;
|
||||
border-radius: var(--border-radius);
|
||||
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 6px;
|
||||
border-radius: 6px;
|
||||
box-shadow: 0 0 1px rgba(0,0,0,.1), 0 2px 5px rgba(0,0,0,.05);
|
||||
}
|
||||
|
||||
.modal-content * {
|
||||
@ -113,8 +106,10 @@
|
||||
.modal-header h1 {
|
||||
display: inline-block;
|
||||
margin: 0 25px 0 0;
|
||||
font-size: 1.85em;
|
||||
font-weight: 100;
|
||||
font-size: 2.2rem;
|
||||
line-height: 1.15em;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.4px;
|
||||
}
|
||||
|
||||
.modal-body {
|
||||
@ -122,16 +117,8 @@
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.modal-body .red {
|
||||
color: var(--red);
|
||||
}
|
||||
|
||||
.modal-body > *:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.modal-body > *:last-child {
|
||||
margin-bottom: 0;
|
||||
.modal-body p {
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
|
||||
.modal-footer {
|
||||
@ -177,7 +164,7 @@
|
||||
margin: 0 auto 1em;
|
||||
width: 100%;
|
||||
}
|
||||
.modal-body .login-form .btn {
|
||||
.modal-body .login-form .gh-btn {
|
||||
margin: 0;
|
||||
margin-bottom: 1em;
|
||||
width: 100%;
|
||||
|
@ -9,30 +9,30 @@
|
||||
/* Flatten out the left side */
|
||||
}
|
||||
|
||||
.splitbtn .btn {
|
||||
.splitbtn .gh-btn {
|
||||
position: relative;
|
||||
float: left;
|
||||
/* Prevent double border between buttons */
|
||||
/* Make sure the hovered element is always on
|
||||
// top so overlap from .btn + btn. invisible */
|
||||
// top so overlap from .gh-btn + btn. invisible */
|
||||
}
|
||||
|
||||
.splitbtn .btn + .btn {
|
||||
.splitbtn .gh-btn + .gh-btn {
|
||||
margin-left: -1px;
|
||||
}
|
||||
|
||||
.splitbtn .btn:hover,
|
||||
.splitbtn .btn:focus,
|
||||
.splitbtn .btn:active,
|
||||
.splitbtn .btn.active {
|
||||
.splitbtn .gh-btn:hover,
|
||||
.splitbtn .gh-btn:focus,
|
||||
.splitbtn .gh-btn:active,
|
||||
.splitbtn .gh-btn.active {
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.splitbtn .btn:first-child {
|
||||
.splitbtn .gh-btn:first-child {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.splitbtn .btn:first-child:not(:last-child):not(.dropdown-toggle) {
|
||||
.splitbtn .gh-btn:first-child:not(:last-child):not(.dropdown-toggle) {
|
||||
height: 31px;
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
@ -46,13 +46,13 @@
|
||||
/* This is the additional dropdown arrow, to the right of the button. */
|
||||
}
|
||||
|
||||
.splitbtn .dropdown-toggle.btn-sm {
|
||||
.splitbtn .dropdown-toggle.gh-btn-sm {
|
||||
padding-right: 10px;
|
||||
padding-left: 10px;
|
||||
height: 31px;
|
||||
}
|
||||
|
||||
.splitbtn .dropdown-toggle.btn-lg {
|
||||
.splitbtn .dropdown-toggle.gh-btn-lg {
|
||||
padding-right: 16px;
|
||||
padding-left: 16px;
|
||||
}
|
||||
|
@ -113,7 +113,7 @@
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
|
||||
.gh-image-uploader input.url + .btn.btn-blue {
|
||||
.gh-image-uploader input.url + .gh-btn.gh-btn-blue {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
@ -156,7 +156,7 @@
|
||||
}
|
||||
|
||||
/* Try Again button */
|
||||
.gh-image-uploader .btn-green:last-child {
|
||||
.gh-image-uploader .gh-btn-green:last-child {
|
||||
margin-top: 1em;
|
||||
margin-bottom: 3em;
|
||||
}
|
||||
|
@ -28,9 +28,8 @@
|
||||
max-width: 200px;
|
||||
}
|
||||
|
||||
.gh-env-help .btn {
|
||||
display: block;
|
||||
margin: 5px 0;
|
||||
.gh-env-help .gh-btn {
|
||||
margin: 4px 0;
|
||||
}
|
||||
|
||||
@media (max-width: 670px) {
|
||||
@ -42,7 +41,7 @@
|
||||
margin: 1em 0;
|
||||
max-width: none;
|
||||
}
|
||||
.gh-env-help .btn {
|
||||
.gh-env-help .gh-btn {
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
|
@ -67,7 +67,7 @@
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.apps-card-content > .btn {
|
||||
.apps-card-content > .gh-btn {
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
right: 20px;
|
||||
@ -197,15 +197,15 @@
|
||||
color: #666363;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
.app-config-form .btn-grey {
|
||||
.app-config-form .gh-btn-grey {
|
||||
margin-top: 1.6em;
|
||||
background-color: #e8e8e8;
|
||||
box-shadow: none;
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
.app-config-form > .btn-grey:hover,
|
||||
.app-config-form > .btn-grey:focus {
|
||||
.app-config-form > .gh-btn-grey:hover,
|
||||
.app-config-form > .gh-btn-grey:focus {
|
||||
border-color: rgb(223, 225, 227);
|
||||
}
|
||||
/* Media Queries
|
||||
|
@ -17,7 +17,7 @@
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
.gh-signin .btn {
|
||||
.gh-signin .gh-btn {
|
||||
margin: 0;
|
||||
padding: 12px;
|
||||
}
|
||||
|
@ -31,7 +31,7 @@
|
||||
.gh-contentfilter li a {
|
||||
display: block;
|
||||
padding: 13px 1px 0;
|
||||
color: var(--midgrey);
|
||||
color: color(var(--midgrey) l(+8%));
|
||||
font-size: 1.5rem;
|
||||
font-weight: 300;
|
||||
letter-spacing: 0.3px;
|
||||
|
@ -218,7 +218,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
.gh-flow-content .btn {
|
||||
.gh-flow-content .gh-btn {
|
||||
display: block;
|
||||
margin: 20px auto 0;
|
||||
max-width: 400px;
|
||||
|
@ -61,7 +61,7 @@ body > .ember-view:not(.liquid-target-container) {
|
||||
flex-shrink: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 15px;
|
||||
padding: 25px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@ -115,7 +115,7 @@ body > .ember-view:not(.liquid-target-container) {
|
||||
|
||||
.gh-nav-search {
|
||||
position: relative;
|
||||
margin: 0 15px 10px;
|
||||
margin: 0 25px 15px;
|
||||
}
|
||||
|
||||
.gh-nav-search .ember-power-select-trigger {
|
||||
@ -147,7 +147,7 @@ body > .ember-view:not(.liquid-target-container) {
|
||||
|
||||
.gh-nav-list {
|
||||
margin: 0;
|
||||
padding: 0 15px 0 0;
|
||||
padding: 0 25px 0 0;
|
||||
list-style: none;
|
||||
font-size: 1.3rem;
|
||||
line-height: 1.5em;
|
||||
@ -160,7 +160,7 @@ body > .ember-view:not(.liquid-target-container) {
|
||||
.gh-nav-list .gh-nav-list-h {
|
||||
overflow: hidden;
|
||||
margin-top: 15px;
|
||||
padding: 5px 10px 5px 15px;
|
||||
padding: 10px 10px 10px 25px;
|
||||
color: #808284;
|
||||
text-transform: uppercase;
|
||||
text-overflow: ellipsis;
|
||||
@ -173,7 +173,7 @@ body > .ember-view:not(.liquid-target-container) {
|
||||
.gh-nav-list a {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 5px 10px 5px 15px;
|
||||
padding: 7px 10px 7px 25px;
|
||||
border-radius: 0 4px 4px 0;
|
||||
color: var(--darkgrey);
|
||||
opacity: 0.9;
|
||||
@ -461,6 +461,7 @@ body > .ember-view:not(.liquid-target-container) {
|
||||
flex-grow: 1;
|
||||
padding: 2.9vw 4vw 3vw 4vw;
|
||||
margin: 0 auto;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.gh-canvas-header {
|
||||
@ -528,7 +529,7 @@ body > .ember-view:not(.liquid-target-container) {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.view-actions .btn {
|
||||
.view-actions .gh-btn {
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
|
@ -145,7 +145,7 @@
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.package-card-content .btn {
|
||||
.package-card-content .gh-btn {
|
||||
position: absolute;
|
||||
right: 20px;
|
||||
}
|
||||
|
@ -21,11 +21,11 @@
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.subscribers-table table .btn {
|
||||
.subscribers-table table .gh-btn {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.subscribers-table table tr:hover .btn {
|
||||
.subscribers-table table tr:hover .gh-btn {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
@ -66,12 +66,12 @@
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.subscribers-import-buttons .btn {
|
||||
.subscribers-import-buttons .gh-btn {
|
||||
flex-grow: 1;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.subscribers-import-buttons .btn:last-of-type {
|
||||
.subscribers-import-buttons .gh-btn:last-of-type {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
|
@ -72,6 +72,7 @@
|
||||
background: rgba(0, 0, 0, 0.3);
|
||||
border-radius: var(--border-radius);
|
||||
color: rgba(255, 255, 255, 0.8);
|
||||
text-shadow: none;
|
||||
transition: color 0.3s ease, background 0.3s ease;
|
||||
}
|
||||
|
||||
|
@ -196,7 +196,7 @@ a.user-list-item {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.invite-new-user .btn-green {
|
||||
.invite-new-user .gh-btn-green {
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
@ -2,220 +2,380 @@
|
||||
/* ---------------------------------------------------------- */
|
||||
|
||||
/* Base button style */
|
||||
.btn {
|
||||
/* Should only be applied to <a> tags */
|
||||
.gh-btn {
|
||||
display: inline-block;
|
||||
margin-bottom: 0;
|
||||
padding: 9px 15px;
|
||||
border: #dfe1e3 1px solid;
|
||||
background: #fff;
|
||||
background-image: none; /* Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 */
|
||||
border-radius: var(--border-radius);
|
||||
color: #808284;
|
||||
outline: none;
|
||||
border: 1px solid color(var(--lightgrey) l(-4%));
|
||||
color: color(var(--lightgrey) l(-27%) blackness(+15%));
|
||||
text-shadow: 0 1px 0 #fff;
|
||||
text-decoration: none !important;
|
||||
user-select: none;
|
||||
fill: color(var(--lightgrey) l(-27%) blackness(+15%));
|
||||
border-radius: 6px;
|
||||
transition: none;
|
||||
|
||||
-webkit-font-smoothing: subpixel-antialiased;
|
||||
}
|
||||
|
||||
/* ALL buttons must have a span for content */
|
||||
.gh-btn span {
|
||||
display: block;
|
||||
padding: 0 12px;
|
||||
height: 33px;
|
||||
font-size: 1.3rem;
|
||||
line-height: 33px;
|
||||
font-weight: 400;
|
||||
text-align: center;
|
||||
text-transform: uppercase;
|
||||
text-shadow: none;
|
||||
white-space: nowrap;
|
||||
font-size: 1.1rem;
|
||||
line-height: 1.428571429;
|
||||
font-weight: 300;
|
||||
cursor: pointer;
|
||||
transition: color 0.2s ease,
|
||||
background 0.2s ease,
|
||||
border-color 0.2s ease;
|
||||
}
|
||||
|
||||
/* When hovered or clicked */
|
||||
.btn:hover,
|
||||
.btn:focus {
|
||||
border-color: var(--blue);
|
||||
color: color(var(--blue) lightness(-10%));
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* When focused with keyboard */
|
||||
.btn:focus,
|
||||
.btn:active:focus,
|
||||
.btn.active:focus {
|
||||
outline: thin dotted;
|
||||
outline: 0 auto -webkit-focus-ring-color;
|
||||
outline-offset: -2px;
|
||||
}
|
||||
|
||||
/* When clicked */
|
||||
.btn:active,
|
||||
.btn.active {
|
||||
outline: 0;
|
||||
background-image: none;
|
||||
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2);
|
||||
letter-spacing: 0.2px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
/* When disabled */
|
||||
.btn.disabled,
|
||||
.btn[disabled],
|
||||
fieldset[disabled] .btn {
|
||||
.gh-btn.disabled,
|
||||
.gh-btn[disabled],
|
||||
fieldset[disabled] .gh-btn {
|
||||
box-shadow: none;
|
||||
opacity: 0.65;
|
||||
opacity: 0.8;
|
||||
cursor: not-allowed;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.btn.appear-disabled {
|
||||
box-shadow: none;
|
||||
opacity: 0.65;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.btn i {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.btn-hover-green:hover,
|
||||
.btn-hover-green:active,
|
||||
.btn-hover-green:focus {
|
||||
border-color: var(--green);
|
||||
color: color(var(--green) lightness(-10%));
|
||||
}
|
||||
|
||||
|
||||
/* Blue button
|
||||
/* ---------------------------------------------------------- */
|
||||
|
||||
.btn-blue {
|
||||
border-color: color(var(--blue) lightness(-10%));
|
||||
background: var(--blue);
|
||||
/* The background of the button creates 1px gradient border */
|
||||
.gh-btn-blue {
|
||||
padding: 1px;
|
||||
border: 0;
|
||||
color: #fff;
|
||||
text-shadow: 0 -1px 0 rgba(0,0,0,0.1);
|
||||
fill: #fff;
|
||||
background: linear-gradient(
|
||||
color(var(--blue) blackness(+10%)),
|
||||
color(var(--blue) l(-15%) saturation(-15%))
|
||||
);
|
||||
box-shadow: 0 1px 0 rgba(0,0,0,0.12);
|
||||
transition: none !important;
|
||||
}
|
||||
|
||||
.btn-blue:hover,
|
||||
.btn-blue:active,
|
||||
.btn-blue:focus {
|
||||
border-color: color(var(--blue) lightness(-20%));
|
||||
background: color(var(--blue) lightness(-10%));
|
||||
color: #fff;
|
||||
/* The background of the span is the main visual element */
|
||||
.gh-btn-blue span {
|
||||
background: linear-gradient(
|
||||
color(var(--blue) whiteness(+7%)),
|
||||
color(var(--blue) l(-7%) saturation(-10%)) 60%,
|
||||
color(var(--blue) l(-7%) saturation(-10%)) 90%,
|
||||
color(var(--blue) l(-4%) saturation(-10%))
|
||||
);
|
||||
box-shadow: 0 1px 0 inset rgba(255,255,255,0.1);
|
||||
}
|
||||
|
||||
/* When clicked or focused with keyboard */
|
||||
.gh-btn-blue:active,
|
||||
.gh-btn-blue:focus {
|
||||
background: color(var(--blue) l(-20%) saturation(-15%));
|
||||
}
|
||||
.gh-btn-blue:active span,
|
||||
.gh-btn-blue:focus span {
|
||||
background: color(var(--blue) l(-7%) saturation(-10%));
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/* Green button
|
||||
/* ---------------------------------------------------------- */
|
||||
|
||||
.btn-green {
|
||||
border-color: color(var(--green) lightness(-10%));
|
||||
background: var(--green);
|
||||
/* The background of the button creates 1px gradient border */
|
||||
.gh-btn-green {
|
||||
padding: 1px;
|
||||
border: 0;
|
||||
color: #fff;
|
||||
text-shadow: 0 -1px 0 rgba(0,0,0,0.1);
|
||||
fill: #fff;
|
||||
background: linear-gradient(
|
||||
color(var(--green) blackness(+7%)),
|
||||
color(var(--green) l(-10%) saturation(-10%))
|
||||
);
|
||||
box-shadow: 0 1px 0 rgba(0,0,0,0.12);
|
||||
transition: none !important;
|
||||
}
|
||||
|
||||
.btn-green:hover,
|
||||
.btn-green:active,
|
||||
.btn-green:focus {
|
||||
border-color: color(var(--green) lightness(-20%));
|
||||
background: color(var(--green) lightness(-10%));
|
||||
color: #fff;
|
||||
/* The background of the span is the main visual element */
|
||||
.gh-btn-green span {
|
||||
background: linear-gradient(
|
||||
color(var(--green) whiteness(+5%)),
|
||||
color(var(--green) l(-4%) saturation(-8%)) 60%,
|
||||
color(var(--green) l(-4%) saturation(-8%)) 90%,
|
||||
color(var(--green) l(-4%) saturation(-10%))
|
||||
);
|
||||
box-shadow: 0 1px 0 inset rgba(255,255,255,0.1);
|
||||
}
|
||||
|
||||
/* When clicked or focused with keyboard */
|
||||
.gh-btn-green:active,
|
||||
.gh-btn-green:focus {
|
||||
background: color(var(--green) l(-10%) saturation(-10%));
|
||||
}
|
||||
.gh-btn-green:active span,
|
||||
.gh-btn-green:focus span {
|
||||
background: color(var(--green) l(-4%) saturation(-8%));
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
|
||||
/* Red button
|
||||
/* ---------------------------------------------------------- */
|
||||
|
||||
.btn-red {
|
||||
border-color: color(var(--red) lightness(-10%));
|
||||
background: var(--red);
|
||||
/* The background of the button creates 1px gradient border */
|
||||
.gh-btn-red {
|
||||
padding: 1px;
|
||||
border: 0;
|
||||
color: #fff;
|
||||
text-shadow: 0 -1px 0 rgba(0,0,0,0.1);
|
||||
fill: #fff;
|
||||
background: linear-gradient(
|
||||
color(var(--red) blackness(+10%)),
|
||||
color(var(--red) l(-15%) saturation(-15%))
|
||||
);
|
||||
box-shadow: 0 1px 0 rgba(0,0,0,0.12);
|
||||
transition: none !important;
|
||||
}
|
||||
|
||||
.btn-red:hover,
|
||||
.btn-red:active,
|
||||
.btn-red:focus {
|
||||
border-color: color(var(--red) lightness(-20%));
|
||||
background: color(var(--red) lightness(-10%));
|
||||
color: #fff;
|
||||
/* The background of the span is the main visual element */
|
||||
.gh-btn-red span {
|
||||
background: linear-gradient(
|
||||
color(var(--red) whiteness(+7%)),
|
||||
color(var(--red) l(-7%) saturation(-10%)) 60%,
|
||||
color(var(--red) l(-7%) saturation(-10%)) 90%,
|
||||
color(var(--red) l(-4%) saturation(-10%))
|
||||
);
|
||||
box-shadow: 0 1px 0 inset rgba(255,255,255,0.1);
|
||||
}
|
||||
|
||||
|
||||
/* Link button
|
||||
/* ---------------------------------------------------------- */
|
||||
|
||||
/* For styling a button like a link */
|
||||
.btn-link {
|
||||
border-color: transparent;
|
||||
background: transparent;
|
||||
color: var(--blue);
|
||||
/* When clicked or focused with keyboard */
|
||||
.gh-btn-red:active,
|
||||
.gh-btn-red:focus {
|
||||
background: color(var(--red) l(-20%) saturation(-15%));
|
||||
}
|
||||
|
||||
.btn-link:hover,
|
||||
.btn-link:active,
|
||||
.btn-link:focus {
|
||||
border-color: transparent;
|
||||
background: transparent;
|
||||
color: var(--blue);
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.btn-link.disabled,
|
||||
.btn-link[disabled] {
|
||||
.gh-btn-red:active span,
|
||||
.gh-btn-red:focus span {
|
||||
background: color(var(--red) l(-7%) saturation(-10%));
|
||||
box-shadow: none;
|
||||
color: #b2b2b2;
|
||||
opacity: 0.65;
|
||||
cursor: not-allowed;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
|
||||
/* Minor button
|
||||
/* Black button
|
||||
/* ---------------------------------------------------------- */
|
||||
|
||||
/* For buttons with a small/insignificant action for
|
||||
// example a "cancel" button. Style is de-emphasised. */
|
||||
.btn-minor {
|
||||
padding: 8px 15px;
|
||||
text-transform: none;
|
||||
font-size: 1.2rem;
|
||||
/* The background of the button creates 1px gradient border */
|
||||
.gh-btn-black {
|
||||
padding: 1px;
|
||||
border: 0;
|
||||
color: #fff;
|
||||
text-shadow: 0 -1px 0 rgba(0,0,0,0.1);
|
||||
fill: #fff;
|
||||
background: linear-gradient(
|
||||
color(var(--darkgrey) blackness(+10%)),
|
||||
color(var(--darkgrey) l(-15%) saturation(-15%))
|
||||
);
|
||||
box-shadow: 0 1px 0 rgba(0,0,0,0.12);
|
||||
transition: none !important;
|
||||
}
|
||||
|
||||
.btn-minor:hover,
|
||||
.btn-minor:active,
|
||||
.btn-minor:focus {
|
||||
border-color: #c1c1c1;
|
||||
/* The background of the span is the main visual element */
|
||||
.gh-btn-black span {
|
||||
background: linear-gradient(
|
||||
color(var(--darkgrey) whiteness(+7%)),
|
||||
color(var(--darkgrey) l(-7%) saturation(-10%)) 60%,
|
||||
color(var(--darkgrey) l(-7%) saturation(-10%)) 90%,
|
||||
color(var(--darkgrey) l(-4%) saturation(-10%))
|
||||
);
|
||||
box-shadow: 0 1px 0 inset rgba(255,255,255,0.1);
|
||||
}
|
||||
|
||||
/* When clicked or focused with keyboard */
|
||||
.gh-btn-black:active,
|
||||
.gh-btn-black:focus {
|
||||
background: color(var(--darkgrey) l(-20%) saturation(-15%));
|
||||
}
|
||||
.gh-btn-black:active span,
|
||||
.gh-btn-black:focus span {
|
||||
background: color(var(--darkgrey) l(-7%) saturation(-10%));
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/* Grey button
|
||||
/* ---------------------------------------------------------- */
|
||||
|
||||
/* The background of the button creates 1px gradient border */
|
||||
.gh-btn-grey {
|
||||
padding: 1px;
|
||||
border: 0;
|
||||
color: color(var(--darkgrey) l(+15%));
|
||||
text-shadow: 0 1px 0 #fff;
|
||||
fill: var(--darkgrey);
|
||||
background: linear-gradient(
|
||||
color(var(--lightgrey) l(-3%)),
|
||||
color(var(--lightgrey) l(-8%))
|
||||
);
|
||||
box-shadow: 0 1px 0 rgba(0,0,0,0.05);
|
||||
transition: none !important;
|
||||
}
|
||||
|
||||
/* The background of the span is the main visual element */
|
||||
.gh-btn-grey span {
|
||||
background: linear-gradient(
|
||||
color(var(--lightgrey) l(+10%)),
|
||||
color(var(--lightgrey) l(+4%))
|
||||
);
|
||||
box-shadow: inset 0 1px 0 #fff;
|
||||
}
|
||||
|
||||
/* When clicked or focused with keyboard */
|
||||
.gh-btn-grey:active,
|
||||
.gh-btn-grey:focus {
|
||||
background: color(var(--midgrey) l(+25%));
|
||||
}
|
||||
.gh-btn-grey:active span,
|
||||
.gh-btn-grey:focus span {
|
||||
background: color(var(--lightgrey) l(+15%));
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/* Special Buttons
|
||||
/* ---------------------------------------------------------- */
|
||||
|
||||
.gh-btn-white {
|
||||
background: #fff;
|
||||
box-shadow: none;
|
||||
color: #808284;
|
||||
}
|
||||
.gh-btn-white span {
|
||||
height: 38px;
|
||||
}
|
||||
|
||||
.gh-btn-block {
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.gh-btn-icon span {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.gh-btn-icon svg {
|
||||
margin-right: 10px;
|
||||
height: 15px;
|
||||
}
|
||||
|
||||
|
||||
/* Button size variations
|
||||
/*
|
||||
/* Loading Button Spinner
|
||||
/* ---------------------------------------------------------- */
|
||||
/*
|
||||
|
||||
Usage: Swap out button>span text with HTML
|
||||
|
||||
<a class="gh-btn gh-btn-blue">
|
||||
<span>
|
||||
<div class="gh-spinner"></div>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
*/
|
||||
|
||||
.gh-spinner {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
border: rgba(0,0,0,0.2) solid 4px;
|
||||
border-radius: 100%;
|
||||
animation: spin 1s linear infinite;
|
||||
}
|
||||
|
||||
.gh-spinner:before {
|
||||
content: "";
|
||||
display: block;
|
||||
margin-top: 9px;
|
||||
width: 4px;
|
||||
height: 4px;
|
||||
background: rgba(0,0,0,0.6);
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
@keyframes spin {
|
||||
0% {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
50% {
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
/* Button Variations
|
||||
/* ---------------------------------------------------------- */
|
||||
|
||||
.btn-lg {
|
||||
.gh-btn-block {
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* Vertically space out multiple block buttons */
|
||||
.gh-btn-block + .gh-btn-block {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
/* Specificity overrides */
|
||||
input[type="submit"].gh-btn-block,
|
||||
input[type="reset"].gh-btn-block,
|
||||
input[type="button"].gh-btn-block {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
/* Button Groups
|
||||
/* ---------------------------------------------------------- */
|
||||
/*
|
||||
|
||||
Usage: CTA buttons grouped together horizontally.
|
||||
|
||||
<div class="gh-btn-group">
|
||||
<a class="gh-btn gh-btn-green" href="#"><span>Button 1</span></a>
|
||||
<a class="gh-btn gh-btn-white" href="#"><span>Button 2</span></a>
|
||||
</div>
|
||||
|
||||
*/
|
||||
|
||||
.gh-btn-group .gh-btn {
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
.gh-btn-group .gh-btn:first-of-type {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.gh-btn-block + .gh-btn-block {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.gh-btn-lg {
|
||||
padding: 12px 18px;
|
||||
border-radius: 4px;
|
||||
font-size: 1.4rem;
|
||||
line-height: 1.33;
|
||||
}
|
||||
|
||||
.btn-sm {
|
||||
.gh-btn-sm {
|
||||
padding: 7px 10px;
|
||||
border-radius: 2px;
|
||||
font-size: 1rem;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.btn-block {
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* Vertically space out multiple block buttons */
|
||||
.btn-block + .btn-block {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
/* Specificity overrides */
|
||||
input[type="submit"].btn-block,
|
||||
input[type="reset"].btn-block,
|
||||
input[type="button"].btn-block {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* Spin Buttons!
|
||||
/* ---------------------------------------------------------- */
|
||||
.spinner {
|
||||
|
@ -18,7 +18,7 @@
|
||||
display: none;
|
||||
}
|
||||
|
||||
.btn .label {
|
||||
.gh-btn .label {
|
||||
position: relative;
|
||||
top: -1px;
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
<header class="gh-canvas-header">
|
||||
<h2 class="gh-canvas-title">Your stories</h2>
|
||||
<section class="view-actions">
|
||||
{{link-to "New Story" "editor.new" class="btn btn-green" title="New Story" data-test-new-post-button=true}}
|
||||
{{#link-to "editor.new" class="gh-btn gh-btn-green" data-test-new-post-button=true}}<span>New story</span>{{/link-to}}
|
||||
</section>
|
||||
</header>
|
||||
|
||||
|
@ -17,8 +17,8 @@
|
||||
<li><strong>Mail</strong> {{#if model.mail}}{{model.mail}}{{else}}Native{{/if}}</li>
|
||||
</ul>
|
||||
<div class="gh-env-help">
|
||||
<a href="http://support.ghost.org" class="btn btn-minor" target="_blank">User Documentation</a>
|
||||
<a href="https://ghost.org/slack/" class="btn btn-minor" target="_blank">Get Help With Ghost</a>
|
||||
<a class="gh-btn" href="http://support.ghost.org" target="_blank"><span>User Documentation</span></a>
|
||||
<a class="gh-btn" href="https://ghost.org/slack/" target="_blank"><span>Get Help With Ghost</span></a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@ -31,14 +31,14 @@
|
||||
|
||||
<p>Ghost is built by an incredible group of contributors from all over the world. Here are just a few of the people who helped create the version you’re using right now.</p>
|
||||
|
||||
<a href="https://ghost.org/about/contribute/" class="btn btn-blue btn-lg">Find out how you can get involved</a>
|
||||
<a class="gh-btn gh-btn-blue" href="https://ghost.org/about/contribute/" target="_blank"><span>Find out how you can get involved</span></a>
|
||||
|
||||
</section>
|
||||
|
||||
<footer class="gh-copyright-info">
|
||||
Copyright 2013 – {{copyrightYear}} Ghost Foundation Ltd, released under the <a href="https://github.com/TryGhost/Ghost/blob/master/LICENSE">MIT license</a>.
|
||||
Copyright 2013 – {{copyrightYear}} Ghost Foundation Ltd, released under the <a href="https://github.com/TryGhost/Ghost/blob/master/LICENSE" target="_blank">MIT license</a>.
|
||||
<br>
|
||||
<a href="https://ghost.org/">Ghost</a> is a registered trademark of <a href="https://ghost.org/about/trademark/">Ghost Foundation Ltd</a>.
|
||||
<a href="https://ghost.org/" target="_blank">Ghost</a> is a registered trademark of <a href="https://ghost.org/trademark/" target="_blank">Ghost Foundation Ltd</a>.
|
||||
</footer>
|
||||
</section>
|
||||
</section>
|
||||
|
@ -1,21 +1,23 @@
|
||||
{{#if statusFreeze}}
|
||||
{{#gh-spin-button type="button" classNameBindings=":btn :btn-sm :js-publish-button isDangerous:btn-red:btn-blue" action="save" submitting=submitting}}
|
||||
Unschedule
|
||||
{{#gh-spin-button type="button" classNameBindings=":gh-btn :gh-btn-sm :js-publish-button isDangerous:gh-btn-red:gh-btn-blue" action="save" submitting=submitting}}
|
||||
<span>Unschedule</span>
|
||||
{{/gh-spin-button}}
|
||||
{{else}}
|
||||
{{#gh-spin-button type="button" classNameBindings=":btn :btn-sm :js-publish-button isDangerous:btn-red:btn-blue" action="save" submitting=submitting}}
|
||||
{{#gh-spin-button type="button" classNameBindings=":gh-btn :gh-btn-sm :js-publish-button isDangerous:gh-btn-red:gh-btn-blue" action="save" submitting=submitting}}
|
||||
{{#if timeScheduled}}
|
||||
{{saveScheduleText}}
|
||||
<span>{{saveScheduleText}}</span>
|
||||
{{else}}
|
||||
{{savePostText}}
|
||||
<span>{{savePostText}}</span>
|
||||
{{/if}}
|
||||
{{/gh-spin-button}}
|
||||
{{/if}}
|
||||
|
||||
{{#unless statusFreeze}}
|
||||
{{#gh-dropdown-button dropdownName="post-save-menu" classNameBindings=":btn :btn-sm isDangerous:btn-red:btn-blue btnopen:active :dropdown-toggle :up"}}
|
||||
<i class="options icon-arrow2"></i>
|
||||
<span class="sr-only">Toggle Settings Menu</span>
|
||||
{{#gh-dropdown-button dropdownName="post-save-menu" classNameBindings=":gh-btn :gh-btn-sm isDangerous:gh-btn-red:gh-btn-blue gh-btnopen:active :dropdown-toggle :up"}}
|
||||
<span>
|
||||
<i class="options icon-arrow2"></i>
|
||||
<span class="sr-only">Toggle Settings Menu</span>
|
||||
</span>
|
||||
{{/gh-dropdown-button}}
|
||||
{{#gh-dropdown name="post-save-menu" closeOnClick="true" classNames="editor-options"}}
|
||||
<ul class="dropdown-menu dropdown-triangle-bottom-right">
|
||||
|
@ -1,4 +1,4 @@
|
||||
<input data-url="upload" class="gh-input btn-block" type="file" name="importfile" accept="{{acceptEncoding}}">
|
||||
<button type="submit" class="btn btn-green btn-block" id="startupload" disabled={{uploadButtonDisabled}} {{action "upload"}}>
|
||||
{{uploadButtonText}}
|
||||
<input data-url="upload" class="gh-input gh-btn-block" type="file" name="importfile" accept="{{acceptEncoding}}">
|
||||
<button type="submit" class="gh-btn gh-btn-green gh-btn-block" id="startupload" disabled={{uploadButtonDisabled}} {{action "upload"}}>
|
||||
<span>{{uploadButtonText}}</span>
|
||||
</button>
|
||||
|
@ -9,7 +9,7 @@
|
||||
</div>
|
||||
</div>
|
||||
{{#if failureMessage}}
|
||||
<button class="btn btn-green" {{action "reset"}}>Try Again</button>
|
||||
<button class="gh-btn gh-btn-green" {{action "reset"}}><span>Try Again</span></button>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
<div class="upload-form">
|
||||
|
@ -9,7 +9,7 @@
|
||||
</div>
|
||||
</div>
|
||||
{{#if failureMessage}}
|
||||
<button class="btn btn-green" {{action "reset"}}>Try Again</button>
|
||||
<button class="gh-btn gh-btn-green" {{action "reset"}}><span>Try Again</span></button>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
{{#if showUploadForm}}
|
||||
@ -29,7 +29,7 @@
|
||||
<form class="url-form">
|
||||
{{gh-input url class="url" placeholder="http://" update=(action "onInput") onenter=(action "saveUrl")}}
|
||||
{{#if saveButton}}
|
||||
<button class="btn btn-blue gh-input" {{action "saveUrl"}}>Save</button>
|
||||
<button class="gh-btn gh-btn-blue gh-input" {{action "saveUrl"}}><span>Save</span></button>
|
||||
{{else}}
|
||||
<div class="description">{{description}}</div>
|
||||
{{/if}}
|
||||
|
@ -1 +1 @@
|
||||
<button class="btn btn-minor btn-sm" {{action tableActions.delete row.content}}><i class="icon-trash"></i></button>
|
||||
<button class="gh-btn gh-btn-sm" {{action tableActions.delete row.content}}><span><i class="icon-trash"></i></span></button>
|
||||
|
@ -46,7 +46,7 @@
|
||||
</ul>
|
||||
|
||||
{{#unless tag.isNew}}
|
||||
<button type="button" class="btn btn-link btn-sm tag-delete-button" {{action "deleteTag"}}><i class="icon-trash"></i> Delete Tag</button>
|
||||
<button type="button" class="gh-btn gh-btn-link gh-btn-sm tag-delete-button" {{action "deleteTag"}}><span><i class="icon-trash"></i> Delete Tag</span></button>
|
||||
{{/unless}}
|
||||
</form>
|
||||
</div>
|
||||
|
@ -4,10 +4,10 @@
|
||||
<a class="close icon-x" href="" title="Close" {{action "closeModal"}}><span class="hidden">Close</span></a>
|
||||
|
||||
<div class="modal-body">
|
||||
<p>This is permanent! No backups, no restores, no magic undo button. <br /> We warned you, ok?</p>
|
||||
<p>This is permanent! No backups, no restores, no magic undo button. We warned you, k?</p>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="btn btn-default btn-minor">Cancel</button>
|
||||
{{#gh-task-button task=deleteAll class="btn btn-red"}}Delete{{/gh-task-button}}
|
||||
</div>
|
||||
<button {{action "closeModal"}} class="gh-btn"><span>Cancel</span></button>
|
||||
{{#gh-task-button task=deleteAll class="gh-btn gh-btn-red"}}<span>Delete</span>{{/gh-task-button}}
|
||||
</div>
|
||||
|
@ -5,13 +5,11 @@
|
||||
|
||||
<div class="modal-body">
|
||||
<p>
|
||||
You're about to delete "<strong>{{post.title}}</strong>".<br />
|
||||
This is permanent! No backups, no restores, no magic undo button.<br />
|
||||
We warned you, ok?
|
||||
You're about to delete "<strong>{{post.title}}</strong>". This is permanent! We warned you, k?
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="btn btn-default btn-minor">Cancel</button>
|
||||
{{#gh-task-button task=deletePost class="btn btn-red"}}Delete{{/gh-task-button}}
|
||||
</div>
|
||||
<button {{action "closeModal"}} class="gh-btn"><span>Cancel</span></button>
|
||||
{{#gh-task-button task=deletePost class="gh-btn gh-btn-red"}}<span>Delete</span>{{/gh-task-button}}
|
||||
</div>
|
||||
|
@ -8,6 +8,6 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="btn btn-default btn-minor">Cancel</button>
|
||||
{{#gh-task-button task=deleteSubscriber class="btn btn-red"}}Delete{{/gh-task-button}}
|
||||
</div>
|
||||
<button {{action "closeModal"}} class="gh-btn"><span>Cancel</span></button>
|
||||
{{#gh-task-button task=deleteSubscriber class="gh-btn gh-btn-red"}}<span>Delete</span>{{/gh-task-button}}
|
||||
</div>
|
||||
|
@ -4,14 +4,13 @@
|
||||
<a class="close icon-x" href="" title="Close" {{action "closeModal"}}><span class="hidden">Close</span></a>
|
||||
|
||||
<div class="modal-body">
|
||||
<strong>WARNING:</strong>
|
||||
{{#if tag.post_count}}
|
||||
<span class="red">This tag is attached to {{tag.count.posts}} {{postInflection}}.</span>
|
||||
{{/if}}
|
||||
You're about to delete "<strong>{{tag.name}}</strong>". This is permanent! No backups, no restores, no magic undo button. We warned you, ok?
|
||||
You're about to delete "<strong>{{tag.name}}</strong>". This is permanent! We warned you, k?
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="btn btn-default btn-minor">Cancel</button>
|
||||
{{#gh-task-button task=deleteTag class="btn btn-red"}}Delete{{/gh-task-button}}
|
||||
</div>
|
||||
<button {{action "closeModal"}} class="gh-btn"><span>Cancel</span></button>
|
||||
{{#gh-task-button task=deleteTag class="gh-btn gh-btn-red"}}<span>Delete</span>{{/gh-task-button}}
|
||||
</div>
|
||||
|
@ -1,20 +1,13 @@
|
||||
<header class="modal-header">
|
||||
<h1>Are you sure you want to delete this theme?</h1>
|
||||
<header class="modal-header" data-test-delete-theme-modal>
|
||||
<h1>Are you sure you want to delete this</h1>
|
||||
</header>
|
||||
<a class="close icon-x" href="" title="Close" {{action "closeModal"}}><span class="hidden">Close</span></a>
|
||||
|
||||
<div class="modal-body">
|
||||
<strong>WARNING:</strong>
|
||||
You're about to delete "<strong>{{theme.label}}</strong>".
|
||||
This is permanent!
|
||||
No backups, no restores, no magic undo button. We warned you, ok?
|
||||
<br>
|
||||
<br>
|
||||
<strong>RECOMMENDED:</strong>
|
||||
<a href="#" {{action download}}>Download your theme before continuing</a>
|
||||
<p>You're about to delete "<strong>{{theme.label}}</strong>". This is permanent! We warned you, k? Maybe <a href="#" {{action download}}>Download your theme before continuing</a></p>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="btn btn-default btn-minor">Cancel</button>
|
||||
{{#gh-task-button task=deleteTheme class="btn btn-red"}}Delete{{/gh-task-button}}
|
||||
</div>
|
||||
<button {{action "closeModal"}} class="gh-btn"><span>Cancel</span></button>
|
||||
{{#gh-task-button task=deleteTheme class="gh-btn gh-btn-red"}}<span>Delete</span>{{/gh-task-button}}
|
||||
</div>
|
||||
|
@ -12,6 +12,6 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="btn btn-default btn-minor">Cancel</button>
|
||||
{{#gh-task-button task=deleteUser class="btn btn-red"}}Delete{{/gh-task-button}}
|
||||
</div>
|
||||
<button {{action "closeModal"}} class="gh-btn"><span>Cancel</span></button>
|
||||
{{#gh-task-button task=deleteUser class="gh-btn gh-btn-red"}}<span>Delete</span>{{/gh-task-button}}
|
||||
</div>
|
||||
|
@ -41,7 +41,7 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} disabled={{closeDisabled}} class="btn btn-default btn-minor">
|
||||
{{#if response}}Close{{else}}Cancel{{/if}}
|
||||
<button {{action "closeModal"}} disabled={{closeDisabled}} class="gh-btn">
|
||||
<span>{{#if response}}Close{{else}}Cancel{{/if}}</span>
|
||||
</button>
|
||||
</div>
|
||||
|
@ -42,5 +42,5 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
{{#gh-task-button task=sendInvitation class="btn btn-green"}}Send invitation now{{/gh-task-button}}
|
||||
</div>
|
||||
{{#gh-task-button task=sendInvitation class="gh-btn gh-btn-green"}}<span>Send invitation now</span>{{/gh-task-button}}
|
||||
</div>
|
||||
|
@ -13,6 +13,6 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="btn btn-default btn-minor">Stay</button>
|
||||
<button {{action "confirm"}} class="btn btn-red">Leave</button>
|
||||
<button {{action "closeModal"}} class="gh-btn"><span>Stay</span></button>
|
||||
<button {{action "confirm"}} class="gh-btn gh-btn-red"><span>Leave</span></button>
|
||||
</div>
|
||||
|
@ -24,6 +24,6 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="btn btn-default btn-minor">Cancel</button>
|
||||
{{#gh-task-button task=addSubscriber class="btn btn-green"}}Add{{/gh-task-button}}
|
||||
</div>
|
||||
<button {{action "closeModal"}} class="gh-btn"><span>Cancel</span></button>
|
||||
{{#gh-task-button task=addSubscriber class="gh-btn gh-btn-green"}}<span>Add</span>{{/gh-task-button}}
|
||||
</div>
|
||||
|
@ -6,17 +6,17 @@
|
||||
<div class="modal-body {{if authenticationError 'error'}}">
|
||||
|
||||
{{#if config.ghostOAuth}}
|
||||
{{#gh-task-button task=reauthenticate class="login btn btn-blue btn-block" tabindex="3" autoWidth="false"}}Sign in with Ghost{{/gh-task-button}}
|
||||
{{#gh-task-button task=reauthenticate class="login gh-btn gh-btn-blue gh-btn-block" tabindex="3" autoWidth="false"}}<span>Sign in with Ghost</span>{{/gh-task-button}}
|
||||
{{else}}
|
||||
<form id="login" class="login-form" method="post" novalidate="novalidate" {{action "confirm" on="submit"}}>
|
||||
{{#gh-validation-status-container class="password-wrap" errors=errors property="password" hasValidated=hasValidated}}
|
||||
{{gh-input password class="password" type="password" placeholder="Password" name="password" update=(action (mut password))}}
|
||||
{{/gh-validation-status-container}}
|
||||
{{#gh-task-button task=reauthenticate class="btn btn-blue" type="submit"}}Log in{{/gh-task-button}}
|
||||
{{#gh-task-button task=reauthenticate class="gh-btn gh-btn-blue" type="submit"}}<span>Log in</span>{{/gh-task-button}}
|
||||
</form>
|
||||
{{/if}}
|
||||
|
||||
{{#if authenticationError}}
|
||||
<p class="response">{{authenticationError}}</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -11,6 +11,6 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="btn btn-default btn-minor">Cancel</button>
|
||||
{{#gh-task-button task=transferOwnership class="btn btn-red"}}Yep - I'm sure{{/gh-task-button}}
|
||||
</div>
|
||||
<button {{action "closeModal"}} class="gh-btn"><span>Cancel</span></button>
|
||||
{{#gh-task-button task=transferOwnership class="gh-btn gh-btn-red"}}<span>Yep - I'm sure</span>{{/gh-task-button}}
|
||||
</div>
|
||||
|
@ -21,6 +21,6 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} class="btn btn-default btn-minor">Cancel</button>
|
||||
{{#gh-task-button task=uploadImage class="btn btn-blue right js-button-accept"}}Save{{/gh-task-button}}
|
||||
<button {{action "closeModal"}} class="gh-btn"><span>Cancel</span></button>
|
||||
{{#gh-task-button task=uploadImage class="gh-btn gh-btn-blue right js-button-accept"}}<span>Save</span>{{/gh-task-button}}
|
||||
</div>
|
||||
|
@ -84,22 +84,22 @@
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button {{action "closeModal"}} disabled={{closeDisabled}} class="btn btn-default btn-minor">
|
||||
{{#if theme}}Close{{else}}Cancel{{/if}}
|
||||
<button {{action "closeModal"}} disabled={{closeDisabled}} class="gh-btn">
|
||||
<span>{{#if theme}}Close{{else}}Cancel{{/if}}</span>
|
||||
</button>
|
||||
{{#if displayOverwriteWarning}}
|
||||
<button {{action "confirmOverwrite"}} class="btn btn-red">
|
||||
Overwrite
|
||||
<button {{action "confirmOverwrite"}} class="gh-btn gh-btn-red">
|
||||
<span>Overwrite</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
{{#if validationErrors}}
|
||||
<button {{action "reset"}} class="btn btn-green">
|
||||
Try Again
|
||||
<button {{action "reset"}} class="gh-btn gh-btn-green">
|
||||
<span>Try Again</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
{{#if canActivateTheme}}
|
||||
<button {{action "activate"}} class="btn btn-green">
|
||||
Activate Now
|
||||
<button {{action "activate"}} class="gh-btn gh-btn-green">
|
||||
<span>Activate Now</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
@ -11,10 +11,10 @@
|
||||
<div class="no-posts">
|
||||
{{#if showingAll}}
|
||||
<h3>You Haven't Written Any Posts Yet!</h3>
|
||||
{{#link-to "editor.new"}}<button type="button" class="btn btn-green btn-lg" title="New Post">Write a new Post</button>{{/link-to}}
|
||||
{{#link-to "editor.new"}}<button type="button" class="gh-btn gh-btn-green gh-btn-lg"><span>Write a new Post</span></button>{{/link-to}}
|
||||
{{else}}
|
||||
<h3>No posts that match the current filter</h3>
|
||||
{{#link-to "posts.index" (query-params type=null)}}<button type="button" class="btn btn-lg">Show all posts</button>{{/link-to}}
|
||||
{{#link-to "posts.index" (query-params type=null)}}<button type="button" class="gh-btn gh-btn-lg"><span>Show all posts</span></button>{{/link-to}}
|
||||
{{/if}}
|
||||
</div>
|
||||
</li>
|
||||
|
@ -9,7 +9,7 @@
|
||||
{{gh-input ne2Password type="password" name="ne2password" placeholder="Confirm Password" class="password" autocorrect="off" autofocus="autofocus" update=(action (mut ne2Password))}}
|
||||
{{/gh-form-group}}
|
||||
|
||||
{{#gh-task-button task=resetPassword class="btn btn-blue btn-block" type="submit" autoWidth="false"}}Reset Password{{/gh-task-button}}
|
||||
{{#gh-task-button task=resetPassword class="gh-btn gh-btn-blue gh-btn-block" type="submit" autoWidth="false"}}<span>Reset Password</span>{{/gh-task-button}}
|
||||
</form>
|
||||
|
||||
<p class="main-error">{{{flowErrors}}}</p>
|
||||
|
@ -1,8 +1,8 @@
|
||||
<header class="view-header">
|
||||
{{#gh-view-title openMobileMenu="openMobileMenu"}}<span style="padding-left:1px">{{#link-to "settings.apps.index"}}Apps{{/link-to}} <i class="icon-arrow-right" style="display:inline"></i> AMP</span>{{/gh-view-title}}
|
||||
<section class="view-actions">
|
||||
{{#gh-spin-button id="saveSlackIntegration" class="btn btn-green" action=(action "save") submitting=isSaving}}
|
||||
Save
|
||||
{{#gh-spin-button id="saveSlackIntegration" class="gh-btn gh-btn-green" action=(action "save") submitting=isSaving}}
|
||||
<span>Save</span>
|
||||
{{/gh-spin-button}}
|
||||
</section>
|
||||
</header>
|
||||
|
@ -1,8 +1,8 @@
|
||||
<header class="view-header">
|
||||
{{#gh-view-title openMobileMenu="openMobileMenu"}}<span style="padding-left:1px">{{#link-to "settings.apps.index"}}Apps{{/link-to}} <i class="icon-arrow-right" style="display:inline"></i> Slack</span>{{/gh-view-title}}
|
||||
<section class="view-actions">
|
||||
{{#gh-spin-button id="saveSlackIntegration" class="btn btn-green" action=(action "save") submitting=isSaving}}
|
||||
Save
|
||||
{{#gh-spin-button id="saveSlackIntegration" class="gh-btn gh-btn-green" action=(action "save") submitting=isSaving}}
|
||||
<span>Save</span>
|
||||
{{/gh-spin-button}}
|
||||
</section>
|
||||
</header>
|
||||
@ -34,8 +34,8 @@
|
||||
</form>
|
||||
|
||||
<form class="app-config-form">
|
||||
{{#gh-spin-button id="sendTestNotification" class="btn btn-grey" disabled=testNotificationDisabled action=(action "sendTestNotification") submitting=isSendingTest}}
|
||||
Send Test Notification
|
||||
{{#gh-spin-button id="sendTestNotification" class="gh-btn gh-btn-grey" disabled=testNotificationDisabled action=(action "sendTestNotification") submitting=isSendingTest}}
|
||||
<span>Send Test Notification</span>
|
||||
{{/gh-spin-button}}
|
||||
</form>
|
||||
</section>
|
||||
|
@ -2,11 +2,11 @@
|
||||
<header class="view-header">
|
||||
{{#gh-view-title openMobileMenu="openMobileMenu"}}<span>Code Injection</span>{{/gh-view-title}}
|
||||
<section class="view-actions">
|
||||
{{#gh-spin-button class="btn btn-blue" action="save" submitting=submitting}}Save{{/gh-spin-button}}
|
||||
{{#gh-spin-button class="gh-btn gh-btn-blue" action="save" submitting=submitting}}<span>Save</span>{{/gh-spin-button}}
|
||||
</section>
|
||||
</header>
|
||||
|
||||
<section class="view-content">
|
||||
{{gh-loading-spinner}}
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
|
@ -2,7 +2,7 @@
|
||||
<header class="view-header">
|
||||
{{#gh-view-title openMobileMenu="openMobileMenu"}}<span>Code Injection</span>{{/gh-view-title}}
|
||||
<section class="view-actions">
|
||||
{{#gh-spin-button class="btn btn-blue" action="save" submitting=submitting}}Save{{/gh-spin-button}}
|
||||
{{#gh-spin-button class="gh-btn gh-btn-blue" action="save" submitting=submitting}}<span>Save</span>{{/gh-spin-button}}
|
||||
</section>
|
||||
</header>
|
||||
|
||||
|
@ -2,11 +2,11 @@
|
||||
<header class="view-header">
|
||||
{{#gh-view-title openMobileMenu="openMobileMenu"}}<span>General</span>{{/gh-view-title}}
|
||||
<section class="view-actions">
|
||||
{{#gh-spin-button class="btn btn-blue" action="save" submitting=submitting}}Save{{/gh-spin-button}}
|
||||
{{#gh-spin-button class="gh-btn gh-btn-blue" action="save" submitting=submitting}}<span>Save</span>{{/gh-spin-button}}
|
||||
</section>
|
||||
</header>
|
||||
|
||||
<section class="view-content">
|
||||
{{gh-loading-spinner}}
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
|
@ -2,7 +2,7 @@
|
||||
<header class="view-header">
|
||||
{{#gh-view-title openMobileMenu="openMobileMenu"}}<span>General</span>{{/gh-view-title}}
|
||||
<section class="view-actions">
|
||||
{{#gh-spin-button class="btn btn-blue" action="save" submitting=submitting}}Save{{/gh-spin-button}}
|
||||
{{#gh-spin-button class="gh-btn gh-btn-blue" action="save" submitting=submitting}}<span>Save</span>{{/gh-spin-button}}
|
||||
</section>
|
||||
</header>
|
||||
|
||||
@ -33,7 +33,7 @@
|
||||
{{#if model.logo}}
|
||||
<img class="blog-logo" src="{{model.logo}}" alt="logo" role="button" {{action "toggleUploadLogoModal"}}>
|
||||
{{else}}
|
||||
<button type="button" class="btn btn-green js-modal-logo" {{action "toggleUploadLogoModal"}}>Upload Image</button>
|
||||
<button type="button" class="gh-btn gh-btn-green js-modal-logo" {{action "toggleUploadLogoModal"}}><span>Upload Image</span></button>
|
||||
{{/if}}
|
||||
<p>Display a logo for your publication</p>
|
||||
|
||||
@ -51,7 +51,7 @@
|
||||
{{#if model.icon}}
|
||||
<img class="blog-icon" src="{{model.icon}}" alt="icon" role="button" {{action "toggleUploadIconModal"}}>
|
||||
{{else}}
|
||||
<button type="button" class="btn btn-green js-modal-logo" {{action "toggleUploadIconModal"}}>Upload Image</button>
|
||||
<button type="button" class="gh-btn gh-btn-green js-modal-logo" {{action "toggleUploadIconModal"}}><span>Upload Image</span></button>
|
||||
{{/if}}
|
||||
<p>Upload a square blog icon ('.ico' or '.png', max. 100kb, 32px * 32px up to 1,000px * 1,000px) for your publication</p>
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
{{#if model.cover}}
|
||||
<img class="blog-cover" src="{{model.cover}}" alt="cover photo" role="button" {{action "toggleUploadCoverModal"}}>
|
||||
{{else}}
|
||||
<button type="button" class="btn btn-green js-modal-cover" {{action "toggleUploadCoverModal"}}>Upload Image</button>
|
||||
<button type="button" class="gh-btn gh-btn-green js-modal-cover" {{action "toggleUploadCoverModal"}}><span>Upload Image</span></button>
|
||||
{{/if}}
|
||||
<p>Display a cover image on your site</p>
|
||||
|
||||
@ -152,8 +152,8 @@
|
||||
deleteTheme=(action "deleteTheme")}}
|
||||
|
||||
<div class="form-group">
|
||||
{{#link-to "settings.general.uploadtheme" class="btn btn-green"}}
|
||||
Upload a theme
|
||||
{{#link-to "settings.general.uploadtheme" class="gh-btn gh-btn-green"}}
|
||||
<span>Upload a theme</span>
|
||||
{{/link-to}}
|
||||
</div>
|
||||
|
||||
|
@ -9,7 +9,7 @@
|
||||
<fieldset>
|
||||
<div class="form-group">
|
||||
<label>Export</label>
|
||||
<button type="button" class="btn btn-blue" {{action "exportData"}}>Export</button>
|
||||
<button type="button" class="gh-btn gh-btn-blue" {{action "exportData"}}><span>Export</span></button>
|
||||
<p>Export the blog settings and data.</p>
|
||||
</div>
|
||||
</fieldset>
|
||||
@ -20,7 +20,7 @@
|
||||
<label>Import</label>
|
||||
{{partial "import-errors"}}
|
||||
{{gh-file-upload id="importfile" classNames="flex" uploadButtonText=uploadButtonText onUpload="onUpload" acceptEncoding=importMimeType}}
|
||||
<p>Import from another Ghost installation. If you import a user, this will replace the current user & log you out.</p>
|
||||
<p>Import from another Ghost installation. If you import a user, this will replace the current user & log you out.</p>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
@ -28,7 +28,7 @@
|
||||
<fieldset>
|
||||
<div class="form-group">
|
||||
<label>Delete all Content</label>
|
||||
<button type="button" class="btn btn-red js-delete" {{action "toggleDeleteAllModal"}}>Delete</button>
|
||||
<button type="button" class="gh-btn gh-btn-red js-delete" {{action "toggleDeleteAllModal"}}><span>Delete</span></button>
|
||||
<p>Delete all posts and tags from the database.</p>
|
||||
</div>
|
||||
</fieldset>
|
||||
@ -37,7 +37,7 @@
|
||||
<fieldset>
|
||||
<div class="form-group">
|
||||
<label>Send a test email</label>
|
||||
{{#gh-spin-button id="sendtestemail" class="btn btn-blue" action="sendTestEmail" submitting=submitting}}Send{{/gh-spin-button}}
|
||||
{{#gh-spin-button id="sendtestemail" class="gh-btn gh-btn-blue" action="sendTestEmail" submitting=submitting}}<span>Send</span>{{/gh-spin-button}}
|
||||
<p>Sends a test email to your address.</p>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
@ -2,11 +2,11 @@
|
||||
<header class="view-header">
|
||||
{{#gh-view-title openMobileMenu="openMobileMenu"}}<span>Navigation</span>{{/gh-view-title}}
|
||||
<section class="view-actions">
|
||||
{{#gh-spin-button class="btn btn-blue" action="save" submitting=submitting}}Save{{/gh-spin-button}}
|
||||
{{#gh-spin-button class="gh-btn gh-btn-blue" action="save" submitting=submitting}}<span>Save</span>{{/gh-spin-button}}
|
||||
</section>
|
||||
</header>
|
||||
|
||||
<section class="view-content">
|
||||
{{gh-loading-spinner}}
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
|
@ -2,7 +2,7 @@
|
||||
<header class="view-header">
|
||||
{{#gh-view-title openMobileMenu="openMobileMenu"}}<span>Navigation</span>{{/gh-view-title}}
|
||||
<section class="view-actions">
|
||||
{{#gh-spin-button class="btn btn-blue" action="save" submitting=submitting}}Save{{/gh-spin-button}}
|
||||
{{#gh-spin-button class="gh-btn gh-btn-blue" action="save" submitting=submitting}}<span>Save</span>{{/gh-spin-button}}
|
||||
</section>
|
||||
</header>
|
||||
|
||||
|
@ -2,11 +2,11 @@
|
||||
<header class="view-header">
|
||||
{{#gh-view-title openMobileMenu="openMobileMenu"}}<span>Tags</span>{{/gh-view-title}}
|
||||
<section class="view-actions">
|
||||
{{#link-to "settings.tags.new" class="btn btn-green" title="New Tag"}}New Tag{{/link-to}}
|
||||
{{#link-to "settings.tags.new" class="gh-btn gh-btn-green"}}<span>New Tag</span>{{/link-to}}
|
||||
</section>
|
||||
</header>
|
||||
|
||||
<div class="view-content">
|
||||
{{gh-loading-spinner}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
@ -2,7 +2,7 @@
|
||||
<header class="view-header">
|
||||
{{#gh-view-title openMobileMenu="openMobileMenu"}}<span>Tags</span>{{/gh-view-title}}
|
||||
<section class="view-actions">
|
||||
{{#link-to "settings.tags.new" class="btn btn-green" title="New Tag"}}New Tag{{/link-to}}
|
||||
{{#link-to "settings.tags.new" class="gh-btn gh-btn-green"}}<span>New Tag</span>{{/link-to}}
|
||||
</section>
|
||||
</header>
|
||||
|
||||
@ -23,4 +23,4 @@
|
||||
{{outlet}}
|
||||
</section>
|
||||
{{/gh-tags-management-container}}
|
||||
</section>
|
||||
</section>
|
||||
|
@ -1,6 +1,6 @@
|
||||
<div class="no-posts-box">
|
||||
<div class="no-posts">
|
||||
<h3>You haven't added any Tags yet!</h3>
|
||||
{{#link-to "settings.tags.new"}}<button type="button" class="btn btn-green btn-lg" title="New Tag">Add a Tag</button>{{/link-to}}
|
||||
<h3>You haven't added any tags yet!</h3>
|
||||
{{#link-to "settings.tags.new"}}<button type="button" class="gh-btn gh-btn-green btn-lg" title="New Tag"><span>Add a tag</span></button>{{/link-to}}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -7,6 +7,6 @@
|
||||
<img src="{{gh-path 'asset' 'img/install-welcome.png'}}" alt="Ghost screenshot" />
|
||||
</figure>
|
||||
|
||||
{{#link-to "setup.two" classNames="btn btn-green btn-lg"}}
|
||||
{{#link-to "setup.two" classNames="gh-btn gh-btn-green gh-btn-lg"}}
|
||||
Create your account <i class="icon-chevron"></i>
|
||||
{{/link-to}}
|
||||
|
@ -11,7 +11,7 @@
|
||||
{{gh-textarea users name="users" required="required" focusOut=(action "validate") update=(action (mut users))}}
|
||||
{{/gh-form-group}}
|
||||
|
||||
{{#gh-spin-button type="submit" action="invite" classNameBindings=":btn :btn-default :btn-lg :btn-block buttonClass" submitting=submitting autoWidth="false"}}{{buttonText}}{{/gh-spin-button}}
|
||||
{{#gh-spin-button type="submit" action="invite" classNameBindings=":gh-btn :gh-btn-default :gh-btn-lg :gh-btn-block buttonClass" submitting=submitting autoWidth="false"}}<span>{{buttonText}}</span>{{/gh-spin-button}}
|
||||
</form>
|
||||
|
||||
<button class="gh-flow-skip" {{action "skipInvite"}}>
|
||||
|
@ -5,11 +5,11 @@
|
||||
|
||||
<form id="setup" class="gh-flow-create" {{action "setup" on="submit"}}>
|
||||
{{#gh-form-group errors=errors hasValidated=hasValidated property="session"}}
|
||||
{{#gh-spin-button class="login btn btn-blue btn-block" type="button" action="authenticateWithGhostOrg" tabindex="3" submitting=loggingIn autoWidth="false"}}
|
||||
{{#gh-spin-button class="login gh-btn gh-btn-blue gh-btn-block" type="button" action="authenticateWithGhostOrg" tabindex="3" submitting=loggingIn autoWidth="false"}}
|
||||
{{#if session.isAuthenticated}}
|
||||
Connected: {{session.user.email}}
|
||||
<span>Connected: {{session.user.email}}</span>
|
||||
{{else}}
|
||||
Sign in with Ghost
|
||||
<span>Sign in with Ghost</span>
|
||||
{{/if}}
|
||||
{{/gh-spin-button}}
|
||||
{{gh-error-message errors=errors property="session"}}
|
||||
@ -24,8 +24,8 @@
|
||||
{{/gh-form-group}}
|
||||
</form>
|
||||
|
||||
{{#gh-spin-button type="submit" tabindex="5" class="btn btn-green btn-lg btn-block" action=(action 'setup') disabled=submitDisabled submitting=submitting autoWidth="false"}}
|
||||
Last step: Invite your team <i class="icon-chevron"></i>
|
||||
{{#gh-spin-button type="submit" tabindex="5" class="gh-btn gh-btn-green gh-btn-lg gh-btn-block" action=(action 'setup') disabled=submitDisabled submitting=submitting autoWidth="false"}}
|
||||
<span>Last step: Invite your team <i class="icon-chevron"></i></span>
|
||||
{{/gh-spin-button}}
|
||||
{{else}}
|
||||
|
||||
@ -67,8 +67,8 @@
|
||||
</span>
|
||||
{{gh-error-message errors=errors property="blogTitle"}}
|
||||
{{/gh-form-group}}
|
||||
{{#gh-spin-button type="submit" tabindex="5" class="btn btn-green btn-lg btn-block" action="setup" submitting=submitting autoWidth="false"}}
|
||||
Last step: Invite your team <i class="icon-chevron"></i>
|
||||
{{#gh-spin-button type="submit" tabindex="5" class="gh-btn gh-btn-green gh-btn-lg gh-btn-block" action="setup" submitting=submitting autoWidth="false"}}
|
||||
<span>Last step: Invite your team <i class="icon-chevron"></i></span>
|
||||
{{/gh-spin-button}}
|
||||
</form>
|
||||
{{/if}}
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
<form id="login" class="gh-signin" method="post" novalidate="novalidate">
|
||||
{{#if config.ghostOAuth}}
|
||||
{{#gh-spin-button class="login btn btn-blue btn-block" type="submit" action="authenticateWithGhostOrg" tabindex="3" submitting=loggingIn autoWidth="false"}}Sign in with Ghost{{/gh-spin-button}}
|
||||
{{#gh-spin-button class="login gh-btn gh-btn-blue gh-btn-block" type="submit" action="authenticateWithGhostOrg" tabindex="3" submitting=loggingIn autoWidth="false"}}<span>Sign in with Ghost</span>{{/gh-spin-button}}
|
||||
{{else}}
|
||||
{{#gh-form-group errors=model.errors hasValidated=hasValidated property="identification"}}
|
||||
<span class="input-icon icon-mail">
|
||||
@ -19,10 +19,10 @@
|
||||
{{#gh-form-group errors=model.errors hasValidated=hasValidated property="password"}}
|
||||
<span class="input-icon icon-lock forgotten-wrap">
|
||||
{{gh-input model.password class="password" type="password" placeholder="Password" name="password" tabindex="2" autocorrect="off" update=(action (mut model.password))}}
|
||||
{{#gh-spin-button class="forgotten-link btn btn-link" type="button" action="forgotten" tabindex="4" submitting=submitting autoWidth="true"}}Forgot?{{/gh-spin-button}}
|
||||
{{#gh-spin-button class="forgotten-link gh-btn gh-btn-link" type="button" action="forgotten" tabindex="4" submitting=submitting autoWidth="true"}}<span>Forgot?</span>{{/gh-spin-button}}
|
||||
</span>
|
||||
{{/gh-form-group}}
|
||||
{{#gh-spin-button class="login btn btn-blue btn-block" type="submit" action="validateAndAuthenticate" tabindex="3" submitting=loggingIn autoWidth="false"}}Sign in{{/gh-spin-button}}
|
||||
{{#gh-spin-button class="login gh-btn gh-btn-blue gh-btn-block" type="submit" action="validateAndAuthenticate" tabindex="3" submitting=loggingIn autoWidth="false"}}<span>Sign in</span>{{/gh-spin-button}}
|
||||
{{/if}}
|
||||
</form>
|
||||
|
||||
|
@ -12,8 +12,8 @@
|
||||
</header>
|
||||
|
||||
<form id="signup" class="gh-signin" method="post" novalidate="novalidate">
|
||||
{{#gh-spin-button class="login btn btn-blue btn-block" type="submit" action="authenticateWithGhostOrg" tabindex="3" submitting=loggingIn autoWidth="false"}}
|
||||
Sign in with Ghost to accept
|
||||
{{#gh-spin-button class="login gh-btn gh-btn-blue gh-btn-block" type="submit" action="authenticateWithGhostOrg" tabindex="3" submitting=loggingIn autoWidth="false"}}
|
||||
<span>Sign in with Ghost to accept</span>
|
||||
{{/gh-spin-button}}
|
||||
</form>
|
||||
{{else}}
|
||||
@ -52,7 +52,7 @@
|
||||
{{/gh-form-group}}
|
||||
</form>
|
||||
|
||||
{{#gh-spin-button tabindex="3" type="submit" class="btn btn-green btn-lg btn-block" action="signup" submitting=submitting autoWidth="false"}}Create Account{{/gh-spin-button}}
|
||||
{{#gh-spin-button tabindex="3" type="submit" class="gh-btn gh-btn-green gh-btn-lg gh-btn-block" action="signup" submitting=submitting autoWidth="false"}}<span>Create Account</span>{{/gh-spin-button}}
|
||||
{{/if}}
|
||||
|
||||
<p class="main-error">{{{flowErrors}}}</p>
|
||||
|
@ -2,7 +2,7 @@
|
||||
<header class="view-header">
|
||||
{{#gh-view-title openMobileMenu="openMobileMenu"}}<span>Subscribers</span>{{/gh-view-title}}
|
||||
<div class="view-actions">
|
||||
{{#link-to "subscribers.new" class="btn btn-green"}}Add Subscriber{{/link-to}}
|
||||
{{#link-to "subscribers.new" class="gh-btn gh-btn-green"}}<span>Add Subscriber</span>{{/link-to}}
|
||||
</div>
|
||||
</header>
|
||||
|
||||
@ -19,8 +19,8 @@
|
||||
<h4>Import Subscribers</h4>
|
||||
</div>
|
||||
<div class="settings-menu-content subscribers-import-buttons">
|
||||
{{#link-to "subscribers.import" class="btn btn-hover-green"}}Import CSV{{/link-to}}
|
||||
<a {{action 'exportData'}} class="btn">Export CSV</a>
|
||||
{{#link-to "subscribers.import" class="gh-btn gh-btn-hover-green"}}<span>Import CSV</span>{{/link-to}}
|
||||
<a {{action 'exportData'}} class="gh-btn"><span>Export CSV</span></a>
|
||||
</div>
|
||||
|
||||
<div class="settings-menu-header">
|
||||
|
@ -4,7 +4,7 @@
|
||||
{{!-- Do not show Invite user button to authors --}}
|
||||
{{#unless session.user.isAuthor}}
|
||||
<section class="view-actions">
|
||||
<button class="btn btn-green">Invite People</button>
|
||||
<button class="gh-btn gh-btn-green"><span>Invite People</span></button>
|
||||
</section>
|
||||
{{/unless}}
|
||||
</header>
|
||||
@ -12,4 +12,4 @@
|
||||
<div class="view-container">
|
||||
{{gh-loading-spinner}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
@ -4,7 +4,7 @@
|
||||
{{!-- Do not show Invite user button to authors --}}
|
||||
{{#unless session.user.isAuthor}}
|
||||
<section class="view-actions">
|
||||
<button class="btn btn-green" {{action "toggleInviteUserModal"}} >Invite People</button>
|
||||
<button class="gh-btn gh-btn-green" {{action "toggleInviteUserModal"}} ><span>Invite People</span></button>
|
||||
</section>
|
||||
{{/unless}}
|
||||
</header>
|
||||
|
@ -6,11 +6,11 @@
|
||||
{{/gh-view-title}}
|
||||
|
||||
<section class="view-actions">
|
||||
<div class="btn btn-blue">Save</div>
|
||||
<div class="gh-btn gh-btn-blue"><span>Save</span></div>
|
||||
</section>
|
||||
</header>
|
||||
|
||||
<div class="view-container">
|
||||
{{gh-loading-spinner}}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
@ -7,9 +7,11 @@
|
||||
<section class="view-actions">
|
||||
{{#if userActionsAreVisible}}
|
||||
<span class="dropdown">
|
||||
{{#gh-dropdown-button dropdownName="user-actions-menu" classNames="btn btn-default only-has-icon user-actions-cog" title="User Actions"}}
|
||||
<i class="icon-settings"></i>
|
||||
<span class="hidden">User Settings</span>
|
||||
{{#gh-dropdown-button dropdownName="user-actions-menu" classNames="gh-btn gh-btn-default only-has-icon user-actions-cog" title="User Actions"}}
|
||||
<span>
|
||||
<i class="icon-settings"></i>
|
||||
<span class="hidden">User Settings</span>
|
||||
</span>
|
||||
{{/gh-dropdown-button}}
|
||||
{{#gh-dropdown name="user-actions-menu" tagName="ul" classNames="user-actions-menu dropdown-menu dropdown-triangle-top-right"}}
|
||||
{{#if canMakeOwner}}
|
||||
@ -43,14 +45,14 @@
|
||||
</span>
|
||||
{{/if}}
|
||||
|
||||
{{#gh-task-button class="btn btn-blue" task=save}}Save{{/gh-task-button}}
|
||||
{{#gh-task-button class="gh-btn gh-btn-blue" task=save}}<span>Save</span>{{/gh-task-button}}
|
||||
</section>
|
||||
</header>
|
||||
|
||||
<div class="view-container settings-user">
|
||||
|
||||
<figure class="user-cover" style={{coverImageBackground}}>
|
||||
<button class="btn btn-default user-cover-edit" {{action "toggleUploadCoverModal"}}>Change Cover</button>
|
||||
<button class="gh-btn gh-btn-default user-cover-edit" {{action "toggleUploadCoverModal"}}><span>Change Cover</span></button>
|
||||
{{#if showUploadCoverModal}}
|
||||
{{gh-fullscreen-modal "upload-image"
|
||||
model=(hash model=user imageProperty="cover" allowUrlInput=true)
|
||||
@ -197,7 +199,7 @@
|
||||
{{/gh-form-group}}
|
||||
|
||||
<div class="form-group">
|
||||
{{#gh-task-button class="btn btn-red button-change-password" task=user.saveNewPassword}}Change Password{{/gh-task-button}}
|
||||
{{#gh-task-button class="gh-btn gh-btn-red button-change-password" task=user.saveNewPassword}}<span>Change Password</span>{{/gh-task-button}}
|
||||
</div>
|
||||
</fieldset>
|
||||
</form> {{! change password form }}
|
||||
|
@ -108,7 +108,7 @@ describe('Acceptance: Editor', function() {
|
||||
fillIn('input[name="post-setting-date"]', '10 May 16 @ 10:00');
|
||||
triggerEvent('input[name="post-setting-date"]', 'blur');
|
||||
// saving
|
||||
click('.btn.btn-sm.js-publish-button');
|
||||
click('.gh-btn.gh-btn-sm.js-publish-button');
|
||||
|
||||
andThen(() => {
|
||||
expect(find('input[name="post-setting-date"]').val(), 'date after saving')
|
||||
@ -126,9 +126,9 @@ describe('Acceptance: Editor', function() {
|
||||
|
||||
// checking the flow of the saving button for a draft
|
||||
andThen(() => {
|
||||
expect(find('.btn.btn-sm.js-publish-button').hasClass('btn-red'), 'no red button expected')
|
||||
expect(find('.gh-btn.gh-btn-sm.js-publish-button').hasClass('gh-btn-red'), 'no red button expected')
|
||||
.to.be.false;
|
||||
expect(find('.btn.btn-sm.js-publish-button').text().trim(), 'text in save button')
|
||||
expect(find('.gh-btn.gh-btn-sm.js-publish-button').text().trim(), 'text in save button')
|
||||
.to.equal('Save Draft');
|
||||
expect(find('.post-save-draft').hasClass('active'), 'highlights the default active button state for a draft')
|
||||
.to.be.true;
|
||||
@ -140,21 +140,21 @@ describe('Acceptance: Editor', function() {
|
||||
andThen(() => {
|
||||
expect(find('.post-save-publish').hasClass('active'), 'highlights the selected active button state')
|
||||
.to.be.true;
|
||||
expect(find('.btn.btn-sm.js-publish-button').hasClass('btn-red'), 'red button to change from draft to published')
|
||||
expect(find('.gh-btn.gh-btn-sm.js-publish-button').hasClass('gh-btn-red'), 'red button to change from draft to published')
|
||||
.to.be.true;
|
||||
expect(find('.btn.btn-sm.js-publish-button').text().trim(), 'text in save button after click on \'publish now\'')
|
||||
expect(find('.gh-btn.gh-btn-sm.js-publish-button').text().trim(), 'text in save button after click on \'publish now\'')
|
||||
.to.equal('Publish Now');
|
||||
});
|
||||
|
||||
// Publish the post
|
||||
click('.btn.btn-sm.js-publish-button');
|
||||
click('.gh-btn.gh-btn-sm.js-publish-button');
|
||||
|
||||
andThen(() => {
|
||||
expect(find('.btn.btn-sm.js-publish-button').text().trim(), 'text in save button after publishing')
|
||||
expect(find('.gh-btn.gh-btn-sm.js-publish-button').text().trim(), 'text in save button after publishing')
|
||||
.to.equal('Update Post');
|
||||
expect(find('.post-save-publish').hasClass('active'), 'highlights the default active button state for a published post')
|
||||
.to.be.true;
|
||||
expect(find('.btn.btn-sm.js-publish-button').hasClass('btn-red'), 'no red button expected')
|
||||
expect(find('.gh-btn.gh-btn-sm.js-publish-button').hasClass('gh-btn-red'), 'no red button expected')
|
||||
.to.be.false;
|
||||
});
|
||||
|
||||
@ -176,7 +176,7 @@ describe('Acceptance: Editor', function() {
|
||||
});
|
||||
|
||||
// saving
|
||||
click('.btn.btn-sm.js-publish-button');
|
||||
click('.gh-btn.gh-btn-sm.js-publish-button');
|
||||
|
||||
andThen(() => {
|
||||
expect(find('input[name="post-setting-date"]').val(), 'date value restored')
|
||||
@ -187,7 +187,7 @@ describe('Acceptance: Editor', function() {
|
||||
fillIn('input[name="post-setting-date"]', '10 May 16 @ 10:00');
|
||||
triggerEvent('input[name="post-setting-date"]', 'blur');
|
||||
// saving
|
||||
click('.btn.btn-sm.js-publish-button');
|
||||
click('.gh-btn.gh-btn-sm.js-publish-button');
|
||||
|
||||
andThen(() => {
|
||||
expect(find('input[name="post-setting-date"]').val(), 'new date after saving')
|
||||
@ -208,7 +208,7 @@ describe('Acceptance: Editor', function() {
|
||||
|
||||
triggerEvent('#activeTimezone', 'change');
|
||||
// save the settings
|
||||
click('.btn.btn-blue');
|
||||
click('.gh-btn.gh-btn-blue');
|
||||
|
||||
andThen(() => {
|
||||
expect(find('#activeTimezone option:selected').text().trim(), 'new timezone after saving')
|
||||
@ -240,21 +240,21 @@ describe('Acceptance: Editor', function() {
|
||||
andThen(() => {
|
||||
expect(find('.post-save-draft').hasClass('active'), 'highlights the active button state for a draft')
|
||||
.to.be.true;
|
||||
expect(find('.btn.btn-sm.js-publish-button').hasClass('btn-red'), 'red button to change from published to draft')
|
||||
expect(find('.gh-btn.gh-btn-sm.js-publish-button').hasClass('gh-btn-red'), 'red button to change from published to draft')
|
||||
.to.be.true;
|
||||
expect(find('.btn.btn-sm.js-publish-button').text().trim(), 'text in save button for post to unpublish')
|
||||
expect(find('.gh-btn.gh-btn-sm.js-publish-button').text().trim(), 'text in save button for post to unpublish')
|
||||
.to.equal('Unpublish');
|
||||
});
|
||||
|
||||
// Unpublish the post
|
||||
click('.btn.btn-sm.js-publish-button');
|
||||
click('.gh-btn.gh-btn-sm.js-publish-button');
|
||||
|
||||
andThen(() => {
|
||||
expect(find('.btn.btn-sm.js-publish-button').text().trim(), 'text in save button for draft')
|
||||
expect(find('.gh-btn.gh-btn-sm.js-publish-button').text().trim(), 'text in save button for draft')
|
||||
.to.equal('Save Draft');
|
||||
expect(find('.post-save-draft').hasClass('active'), 'highlights the default active button state for a draft')
|
||||
.to.be.true;
|
||||
expect(find('.btn.btn-sm.js-publish-button').hasClass('btn-red'), 'no red button expected')
|
||||
expect(find('.gh-btn.gh-btn-sm.js-publish-button').hasClass('gh-btn-red'), 'no red button expected')
|
||||
.to.be.false;
|
||||
});
|
||||
|
||||
@ -285,24 +285,24 @@ describe('Acceptance: Editor', function() {
|
||||
andThen(() => {
|
||||
expect(find('.post-save-schedule').hasClass('active'), 'highlights the active button state for a draft')
|
||||
.to.be.true;
|
||||
expect(find('.btn.btn-sm.js-publish-button').hasClass('btn-red'), 'red button to change from published to draft')
|
||||
expect(find('.gh-btn.gh-btn-sm.js-publish-button').hasClass('gh-btn-red'), 'red button to change from published to draft')
|
||||
.to.be.true;
|
||||
expect(find('.btn.btn-sm.js-publish-button').text().trim(), 'text in save button for post to schedule')
|
||||
expect(find('.gh-btn.gh-btn-sm.js-publish-button').text().trim(), 'text in save button for post to schedule')
|
||||
.to.equal('Schedule Post');
|
||||
});
|
||||
|
||||
// click on schedule post and save
|
||||
click('.btn.btn-sm.js-publish-button');
|
||||
click('.gh-btn.gh-btn-sm.js-publish-button');
|
||||
|
||||
andThen(() => {
|
||||
// Dropdown menu should be 'Update Post' and 'Unschedule'
|
||||
expect(find('.btn.btn-sm.js-publish-button').text().trim(), 'text in save button for scheduled post')
|
||||
expect(find('.gh-btn.gh-btn-sm.js-publish-button').text().trim(), 'text in save button for scheduled post')
|
||||
.to.equal('Update Post');
|
||||
expect(find('.post-save-schedule').hasClass('active'), 'highlights the default active button state for a scheduled post')
|
||||
.to.be.true;
|
||||
expect(find('.post-save-draft').text().trim(), 'not active option should say \'Unschedule\'')
|
||||
.to.equal('Unschedule');
|
||||
expect(find('.btn.btn-sm.js-publish-button').hasClass('btn-red'), 'no red button expected')
|
||||
expect(find('.gh-btn.gh-btn-sm.js-publish-button').hasClass('gh-btn-red'), 'no red button expected')
|
||||
.to.be.false;
|
||||
// expect countdown to show warning, that post will be published in x minutes
|
||||
expect(find('.gh-notification.gh-notification-schedule').text().trim(), 'notification countdown')
|
||||
@ -313,23 +313,23 @@ describe('Acceptance: Editor', function() {
|
||||
click('.post-save-draft a');
|
||||
|
||||
andThen(() => {
|
||||
expect(find('.btn.btn-sm.js-publish-button').text().trim(), 'text in save button to unscheduled post')
|
||||
expect(find('.gh-btn.gh-btn-sm.js-publish-button').text().trim(), 'text in save button to unscheduled post')
|
||||
.to.equal('Unschedule');
|
||||
expect(find('.post-save-draft').hasClass('active'), 'highlights the default active button state for a scheduled post')
|
||||
.to.be.true;
|
||||
expect(find('.btn.btn-sm.js-publish-button').hasClass('btn-red'), 'red button expected due to status change')
|
||||
expect(find('.gh-btn.gh-btn-sm.js-publish-button').hasClass('gh-btn-red'), 'red button expected due to status change')
|
||||
.to.be.true;
|
||||
});
|
||||
|
||||
// click on unschedule post and save
|
||||
click('.btn.btn-sm.js-publish-button');
|
||||
click('.gh-btn.gh-btn-sm.js-publish-button');
|
||||
|
||||
andThen(() => {
|
||||
expect(find('.btn.btn-sm.js-publish-button').text().trim(), 'text in save button for a draft')
|
||||
expect(find('.gh-btn.gh-btn-sm.js-publish-button').text().trim(), 'text in save button for a draft')
|
||||
.to.equal('Save Draft');
|
||||
expect(find('.post-save-draft').hasClass('active'), 'highlights the default active button state for a draft post')
|
||||
.to.be.true;
|
||||
expect(find('.btn.btn-sm.js-publish-button').hasClass('btn-red'), 'red button expected due to status change')
|
||||
expect(find('.gh-btn.gh-btn-sm.js-publish-button').hasClass('gh-btn-red'), 'red button expected due to status change')
|
||||
.to.be.false;
|
||||
// expect no countdown notification after unscheduling
|
||||
expect(find('.gh-notification.gh-notification-schedule').text().trim(), 'notification countdown')
|
||||
@ -368,7 +368,7 @@ describe('Acceptance: Editor', function() {
|
||||
fillIn('input[name="post-setting-date"]', plusTenMin);
|
||||
triggerEvent('input[name="post-setting-date"]', 'blur');
|
||||
click('.post-save-schedule a');
|
||||
click('.btn.btn-sm.js-publish-button');
|
||||
click('.gh-btn.gh-btn-sm.js-publish-button');
|
||||
|
||||
andThen(() => {
|
||||
expect(
|
||||
@ -397,7 +397,7 @@ describe('Acceptance: Editor', function() {
|
||||
// Test title validation
|
||||
fillIn('input[id="entry-title"]', Array(160).join('a'));
|
||||
triggerEvent('input[id="entry-title"]', 'blur');
|
||||
click('.btn.btn-sm.js-publish-button');
|
||||
click('.gh-btn.gh-btn-sm.js-publish-button');
|
||||
|
||||
andThen(() => {
|
||||
expect(
|
||||
@ -427,13 +427,13 @@ describe('Acceptance: Editor', function() {
|
||||
expect(find('input[name="post-setting-date"]').val(), 'scheduled date')
|
||||
.to.equal(compareDate);
|
||||
// Dropdown menu should be 'Update Post' and 'Unschedule'
|
||||
expect(find('.btn.btn-sm.js-publish-button').text().trim(), 'text in save button for scheduled post')
|
||||
expect(find('.gh-btn.gh-btn-sm.js-publish-button').text().trim(), 'text in save button for scheduled post')
|
||||
.to.equal('Update Post');
|
||||
expect(find('.post-save-schedule').hasClass('active'), 'highlights the default active button state for a scheduled post')
|
||||
.to.be.true;
|
||||
expect(find('.post-save-draft').text().trim(), 'not active option should say \'Unschedule\'')
|
||||
.to.equal('Unschedule');
|
||||
expect(find('.btn.btn-sm.js-publish-button').hasClass('btn-red'), 'no red button expected')
|
||||
expect(find('.gh-btn.gh-btn-sm.js-publish-button').hasClass('gh-btn-red'), 'no red button expected')
|
||||
.to.be.false;
|
||||
// expect countdown to show warning, that post will be published in x minutes
|
||||
expect(find('.gh-notification.gh-notification-schedule').text().trim(), 'notification countdown')
|
||||
@ -451,13 +451,13 @@ describe('Acceptance: Editor', function() {
|
||||
|
||||
andThen(() => {
|
||||
// Save button should say 'Unschedule'
|
||||
expect(find('.btn.btn-sm.js-publish-button').text().trim(), 'text in save button for scheduled post in status freeze mode')
|
||||
expect(find('.gh-btn.gh-btn-sm.js-publish-button').text().trim(), 'text in save button for scheduled post in status freeze mode')
|
||||
.to.equal('Unschedule');
|
||||
// expect countdown to show warning, that post will be published in x minutes
|
||||
expect(find('.gh-notification.gh-notification-schedule').text().trim(), 'notification countdown')
|
||||
.to.contain('Post will be published in');
|
||||
// no dropdown menu
|
||||
expect(find('.btn.btn-sm.dropdown-toggle').hasClass('active'), 'no dropdown menu')
|
||||
expect(find('.gh-btn.gh-btn-sm.dropdown-toggle').hasClass('active'), 'no dropdown menu')
|
||||
.to.be.false;
|
||||
});
|
||||
});
|
||||
@ -475,27 +475,27 @@ describe('Acceptance: Editor', function() {
|
||||
|
||||
andThen(() => {
|
||||
// Save button should say 'Unschedule'
|
||||
expect(find('.btn.btn-sm.js-publish-button').text().trim(), 'text in save button for scheduled post in status freeze mode')
|
||||
expect(find('.gh-btn.gh-btn-sm.js-publish-button').text().trim(), 'text in save button for scheduled post in status freeze mode')
|
||||
.to.equal('Unschedule');
|
||||
// expect countdown to show warning, that post will be published in x minutes
|
||||
expect(find('.gh-notification.gh-notification-schedule').text().trim(), 'notification countdown')
|
||||
.to.contain('Post will be published in');
|
||||
// no dropdown menu
|
||||
expect(find('.btn.btn-sm.dropdown-toggle').hasClass('active'), 'no dropdown menu')
|
||||
expect(find('.gh-btn.gh-btn-sm.dropdown-toggle').hasClass('active'), 'no dropdown menu')
|
||||
.to.be.false;
|
||||
});
|
||||
|
||||
// click on Unschedule
|
||||
click('.btn.btn-sm.js-publish-button');
|
||||
click('.gh-btn.gh-btn-sm.js-publish-button');
|
||||
|
||||
andThen(() => {
|
||||
expect(find('.markdown-editor').val(), 'changed text in markdown editor')
|
||||
.to.equal('Let\'s make some markdown changes');
|
||||
expect(find('.btn.btn-sm.js-publish-button').text().trim(), 'text in save button for a draft')
|
||||
expect(find('.gh-btn.gh-btn-sm.js-publish-button').text().trim(), 'text in save button for a draft')
|
||||
.to.equal('Save Draft');
|
||||
expect(find('.post-save-draft').hasClass('active'), 'highlights the default active button state for a draft post')
|
||||
.to.be.true;
|
||||
expect(find('.btn.btn-sm.js-publish-button').hasClass('btn-red'), 'red button expected due to status change')
|
||||
expect(find('.gh-btn.gh-btn-sm.js-publish-button').hasClass('gh-btn-red'), 'red button expected due to status change')
|
||||
.to.be.false;
|
||||
// expect no countdown notification after unscheduling
|
||||
expect(find('.gh-notification.gh-notification-schedule').text().trim(), 'notification countdown')
|
||||
|
@ -77,7 +77,7 @@ describe('Acceptance: Settings - Code-Injection', function() {
|
||||
expect($('.gh-nav-settings-code-injection').hasClass('active'), 'highlights nav menu item')
|
||||
.to.be.true;
|
||||
|
||||
expect(find('.view-header .view-actions .btn-blue').text().trim(), 'save button text').to.equal('Save');
|
||||
expect(find('.view-header .view-actions .gh-btn-blue').text().trim(), 'save button text').to.equal('Save');
|
||||
|
||||
expect(find('#ghost-head .CodeMirror').length, 'ghost head codemirror element').to.equal(1);
|
||||
expect($('#ghost-head .CodeMirror').hasClass('cm-s-xq-light'), 'ghost head editor theme').to.be.true;
|
||||
|
@ -6,6 +6,7 @@ import {
|
||||
afterEach
|
||||
} from 'mocha';
|
||||
import {expect} from 'chai';
|
||||
import testSelector from 'ember-test-selectors';
|
||||
import $ from 'jquery';
|
||||
import startApp from '../../helpers/start-app';
|
||||
import destroyApp from '../../helpers/destroy-app';
|
||||
@ -79,7 +80,7 @@ describe('Acceptance: Settings - General', function () {
|
||||
expect($('.gh-nav-settings-general').hasClass('active'), 'highlights nav menu item')
|
||||
.to.be.true;
|
||||
|
||||
expect(find('.view-header .view-actions .btn-blue').text().trim(), 'save button text').to.equal('Save');
|
||||
expect(find('.view-header .view-actions .gh-btn-blue').text().trim(), 'save button text').to.equal('Save');
|
||||
|
||||
// initial postsPerPage should be 5
|
||||
expect(find('input#postsPerPage').val(), 'post per page value').to.equal('5');
|
||||
@ -88,7 +89,7 @@ describe('Acceptance: Settings - General', function () {
|
||||
});
|
||||
|
||||
fillIn('#settings-general input[name="general[title]"]', 'New Blog Title');
|
||||
click('.view-header .btn.btn-blue');
|
||||
click('.view-header .gh-btn.gh-btn-blue');
|
||||
|
||||
andThen(() => {
|
||||
expect(document.title, 'page title').to.equal('Settings - General - New Blog Title');
|
||||
@ -108,7 +109,7 @@ describe('Acceptance: Settings - General', function () {
|
||||
});
|
||||
|
||||
// click cancel button
|
||||
click('.fullscreen-modal .modal-footer .btn.btn-minor');
|
||||
click('.fullscreen-modal .modal-footer .gh-btn');
|
||||
|
||||
andThen(() => {
|
||||
expect(find('.fullscreen-modal').length).to.equal(0);
|
||||
@ -128,7 +129,7 @@ describe('Acceptance: Settings - General', function () {
|
||||
});
|
||||
|
||||
// click cancel button
|
||||
click('.fullscreen-modal .modal-footer .btn.btn-minor');
|
||||
click('.fullscreen-modal .modal-footer .gh-btn');
|
||||
|
||||
andThen(() => {
|
||||
expect(find('.fullscreen-modal').length).to.equal(0);
|
||||
@ -159,7 +160,7 @@ describe('Acceptance: Settings - General', function () {
|
||||
});
|
||||
|
||||
triggerEvent('#activeTimezone', 'change');
|
||||
click('.view-header .btn.btn-blue');
|
||||
click('.view-header .gh-btn.gh-btn-blue');
|
||||
|
||||
andThen(() => {
|
||||
expect(find('#activeTimezone option:selected').text().trim()).to.equal('(GMT +2:00) Cairo, Egypt');
|
||||
@ -654,7 +655,7 @@ describe('Acceptance: Settings - General', function () {
|
||||
click('.theme-list-item:contains("Test 1") a:contains("Delete")');
|
||||
andThen(() => {
|
||||
expect(
|
||||
find('.fullscreen-modal .modal-content:contains("delete this theme")').length,
|
||||
find(testSelector('delete-theme-modal')).length,
|
||||
'theme deletion modal displayed after button click'
|
||||
).to.equal(1);
|
||||
});
|
||||
|
@ -84,7 +84,7 @@ describe('Acceptance: Settings - Labs', function() {
|
||||
expect(find('.fullscreen-modal .modal-content').length, 'modal element').to.equal(1);
|
||||
});
|
||||
|
||||
click('.fullscreen-modal .modal-footer .btn.btn-minor');
|
||||
click('.fullscreen-modal .modal-footer .gh-btn');
|
||||
|
||||
andThen(() => {
|
||||
expect(find('.fullscreen-modal').length, 'modal element').to.equal(0);
|
||||
|
@ -72,7 +72,7 @@ describe('Acceptance: Settings - Navigation', function () {
|
||||
fillIn('.gh-blognav-url:first input', '/test');
|
||||
triggerEvent('.gh-blognav-url:first input', 'blur');
|
||||
|
||||
click('.btn-blue');
|
||||
click('.gh-btn-blue');
|
||||
|
||||
andThen(function () {
|
||||
let [navSetting] = server.db.settings.where({key: 'navigation'});
|
||||
@ -91,7 +91,7 @@ describe('Acceptance: Settings - Navigation', function () {
|
||||
it('validates new item correctly on save', function () {
|
||||
visit('/settings/navigation');
|
||||
|
||||
click('.btn-blue');
|
||||
click('.gh-btn-blue');
|
||||
|
||||
andThen(function () {
|
||||
expect(
|
||||
@ -104,7 +104,7 @@ describe('Acceptance: Settings - Navigation', function () {
|
||||
fillIn('.gh-blognav-url:last input', 'http://invalid domain/');
|
||||
triggerEvent('.gh-blognav-url:last input', 'blur');
|
||||
|
||||
click('.btn-blue');
|
||||
click('.gh-btn-blue');
|
||||
|
||||
andThen(function () {
|
||||
expect(
|
||||
@ -206,7 +206,7 @@ describe('Acceptance: Settings - Navigation', function () {
|
||||
).to.equal(3);
|
||||
});
|
||||
|
||||
click('.btn-blue');
|
||||
click('.gh-btn-blue');
|
||||
|
||||
andThen(function () {
|
||||
let [navSetting] = server.db.settings.where({key: 'navigation'});
|
||||
|
@ -178,7 +178,7 @@ describe('Acceptance: Settings - Tags', function () {
|
||||
});
|
||||
|
||||
// start new tag
|
||||
click('.view-actions .btn-green');
|
||||
click('.view-actions .gh-btn-green');
|
||||
|
||||
andThen(() => {
|
||||
// it navigates to the new tag route
|
||||
@ -214,7 +214,7 @@ describe('Acceptance: Settings - Tags', function () {
|
||||
|
||||
// delete tag
|
||||
click('.tag-delete-button');
|
||||
click('.fullscreen-modal .btn-red');
|
||||
click('.fullscreen-modal .gh-btn-red');
|
||||
|
||||
andThen(() => {
|
||||
// it redirects to the first tag
|
||||
|
@ -104,7 +104,7 @@ describe('Acceptance: Setup', function () {
|
||||
expect(find('.gh-flow-content em').text()).to.equal('2');
|
||||
});
|
||||
|
||||
click('.btn-green');
|
||||
click('.gh-btn-green');
|
||||
|
||||
andThen(() => {
|
||||
// it transitions to step two
|
||||
@ -118,7 +118,7 @@ describe('Acceptance: Setup', function () {
|
||||
.to.be.true;
|
||||
});
|
||||
|
||||
click('.btn-green');
|
||||
click('.gh-btn-green');
|
||||
|
||||
andThen(() => {
|
||||
// it marks fields as invalid
|
||||
@ -139,7 +139,7 @@ describe('Acceptance: Setup', function () {
|
||||
fillIn('[name="name"]', 'Test User');
|
||||
fillIn('[name="password"]', 'password');
|
||||
fillIn('[name="blog-title"]', 'Blog Title');
|
||||
click('.btn-green');
|
||||
click('.gh-btn-green');
|
||||
|
||||
andThen(() => {
|
||||
// it transitions to step 3
|
||||
@ -147,7 +147,7 @@ describe('Acceptance: Setup', function () {
|
||||
.to.equal('/setup/three');
|
||||
|
||||
// submit button is "disabled"
|
||||
expect(find('button[type="submit"]').hasClass('btn-green'), 'invite button with no emails is white')
|
||||
expect(find('button[type="submit"]').hasClass('gh-btn-green'), 'invite button with no emails is white')
|
||||
.to.be.false;
|
||||
});
|
||||
|
||||
@ -156,7 +156,7 @@ describe('Acceptance: Setup', function () {
|
||||
|
||||
andThen(() => {
|
||||
// submit button is "enabled"
|
||||
expect(find('button[type="submit"]').hasClass('btn-green'), 'invite button is green with valid email address')
|
||||
expect(find('button[type="submit"]').hasClass('gh-btn-green'), 'invite button is green with valid email address')
|
||||
.to.be.true;
|
||||
});
|
||||
|
||||
@ -202,7 +202,7 @@ describe('Acceptance: Setup', function () {
|
||||
});
|
||||
|
||||
visit('/setup/two');
|
||||
click('.btn-green');
|
||||
click('.gh-btn-green');
|
||||
|
||||
andThen(() => {
|
||||
// non-server validation
|
||||
@ -216,7 +216,7 @@ describe('Acceptance: Setup', function () {
|
||||
fillIn('[name="blog-title"]', 'Blog Title');
|
||||
|
||||
// first post - simulated validation error
|
||||
click('.btn-green');
|
||||
click('.gh-btn-green');
|
||||
|
||||
andThen(() => {
|
||||
expect(find('.main-error').text().trim(), 'error text')
|
||||
@ -224,7 +224,7 @@ describe('Acceptance: Setup', function () {
|
||||
});
|
||||
|
||||
// second post - simulated server error
|
||||
click('.btn-green');
|
||||
click('.gh-btn-green');
|
||||
|
||||
andThen(() => {
|
||||
expect(find('.main-error').text().trim(), 'error text')
|
||||
@ -256,11 +256,11 @@ describe('Acceptance: Setup', function () {
|
||||
fillIn('[name="name"]', 'Test User');
|
||||
fillIn('[name="password"]', 'password');
|
||||
fillIn('[name="blog-title"]', 'Blog Title');
|
||||
click('.btn-green');
|
||||
click('.gh-btn-green');
|
||||
|
||||
andThen(() => {
|
||||
// button should not be spinning
|
||||
expect(find('.btn-green .spinner').length, 'button has spinner')
|
||||
expect(find('.gh-btn-green .spinner').length, 'button has spinner')
|
||||
.to.equal(0);
|
||||
// we should show an error message
|
||||
expect(find('.main-error').text(), 'error text')
|
||||
@ -313,7 +313,7 @@ describe('Acceptance: Setup', function () {
|
||||
fillIn('[name="name"]', 'Test User');
|
||||
fillIn('[name="password"]', 'password');
|
||||
fillIn('[name="blog-title"]', 'Blog Title');
|
||||
click('.btn-green');
|
||||
click('.gh-btn-green');
|
||||
|
||||
// default field/button state
|
||||
andThen(() => {
|
||||
@ -326,7 +326,7 @@ describe('Acceptance: Setup', function () {
|
||||
expect(button.text().trim(), 'default button text')
|
||||
.to.equal('Invite some users');
|
||||
|
||||
expect(button.hasClass('btn-minor'), 'default button is disabled')
|
||||
expect(button.hasClass('gh-btn-minor'), 'default button is disabled')
|
||||
.to.be.true;
|
||||
});
|
||||
|
||||
@ -340,7 +340,7 @@ describe('Acceptance: Setup', function () {
|
||||
expect(button.text().trim(), 'no users submitted button text')
|
||||
.to.equal('No users to invite');
|
||||
|
||||
expect(button.hasClass('btn-minor'), 'no users submitted button is disabled')
|
||||
expect(button.hasClass('gh-btn-minor'), 'no users submitted button is disabled')
|
||||
.to.be.true;
|
||||
});
|
||||
|
||||
@ -355,7 +355,7 @@ describe('Acceptance: Setup', function () {
|
||||
expect(button.text().trim(), 'single invalid button text')
|
||||
.to.equal('1 invalid email address');
|
||||
|
||||
expect(button.hasClass('btn-minor'), 'invalid email button is disabled')
|
||||
expect(button.hasClass('gh-btn-minor'), 'invalid email button is disabled')
|
||||
.to.be.true;
|
||||
});
|
||||
|
||||
@ -379,7 +379,7 @@ describe('Acceptance: Setup', function () {
|
||||
expect(button.text().trim(), 'single valid button text')
|
||||
.to.equal('Invite 1 user');
|
||||
|
||||
expect(button.hasClass('btn-green'), 'valid email button is enabled')
|
||||
expect(button.hasClass('gh-btn-green'), 'valid email button is enabled')
|
||||
.to.be.true;
|
||||
});
|
||||
|
||||
@ -393,7 +393,7 @@ describe('Acceptance: Setup', function () {
|
||||
});
|
||||
|
||||
// submit invitations with simulated failure on 1 invite
|
||||
click('.btn-green');
|
||||
click('.gh-btn-green');
|
||||
|
||||
andThen(() => {
|
||||
// it redirects to the home / "content" screen
|
||||
@ -441,7 +441,7 @@ describe('Acceptance: Setup', function () {
|
||||
).to.equal('/setup/one');
|
||||
});
|
||||
|
||||
click('.btn-green');
|
||||
click('.gh-btn-green');
|
||||
|
||||
andThen(() => {
|
||||
expect(
|
||||
@ -450,7 +450,7 @@ describe('Acceptance: Setup', function () {
|
||||
).to.equal('Sign in with Ghost');
|
||||
});
|
||||
|
||||
click('.btn-green');
|
||||
click('.gh-btn-green');
|
||||
|
||||
andThen(() => {
|
||||
let sessionFG = find('button.login').closest('.form-group');
|
||||
@ -497,7 +497,7 @@ describe('Acceptance: Setup', function () {
|
||||
});
|
||||
|
||||
fillIn('input[name="blog-title"]', 'Ghostbusters');
|
||||
click('.btn-green');
|
||||
click('.gh-btn-green');
|
||||
|
||||
andThen(() => {
|
||||
expect(
|
||||
|
@ -91,7 +91,7 @@ describe('Acceptance: Signin', function() {
|
||||
.to.equal(1);
|
||||
});
|
||||
|
||||
click('.btn-blue');
|
||||
click('.gh-btn-blue');
|
||||
|
||||
andThen(() => {
|
||||
expect(find('.form-group.error').length, 'number of invalid fields')
|
||||
@ -103,7 +103,7 @@ describe('Acceptance: Signin', function() {
|
||||
|
||||
fillIn('[name="identification"]', 'test@example.com');
|
||||
fillIn('[name="password"]', 'invalid');
|
||||
click('.btn-blue');
|
||||
click('.gh-btn-blue');
|
||||
|
||||
andThen(() => {
|
||||
expect(currentURL(), 'current url').to.equal('/signin');
|
||||
@ -127,7 +127,7 @@ describe('Acceptance: Signin', function() {
|
||||
|
||||
fillIn('[name="identification"]', 'test@example.com');
|
||||
fillIn('[name="password"]', 'testpass');
|
||||
click('.btn-blue');
|
||||
click('.gh-btn-blue');
|
||||
|
||||
andThen(() => {
|
||||
expect(currentURL(), 'currentURL').to.equal('/');
|
||||
|
@ -132,7 +132,7 @@ describe('Acceptance: Signup', function() {
|
||||
});
|
||||
|
||||
// submitting sends correct details and redirects to content screen
|
||||
click('.btn-green');
|
||||
click('.gh-btn-green');
|
||||
|
||||
andThen(function () {
|
||||
expect(currentPath()).to.equal('posts.index');
|
||||
|
@ -132,7 +132,7 @@ describe('Acceptance: Subscribers', function() {
|
||||
// });
|
||||
|
||||
// click the add subscriber button
|
||||
click('.btn:contains("Add Subscriber")');
|
||||
click('.gh-btn:contains("Add Subscriber")');
|
||||
|
||||
andThen(function () {
|
||||
// it displays the add subscriber modal
|
||||
@ -141,7 +141,7 @@ describe('Acceptance: Subscribers', function() {
|
||||
});
|
||||
|
||||
// cancel the modal
|
||||
click('.fullscreen-modal .btn:contains("Cancel")');
|
||||
click('.fullscreen-modal .gh-btn:contains("Cancel")');
|
||||
|
||||
andThen(function () {
|
||||
// it closes the add subscriber modal
|
||||
@ -150,9 +150,9 @@ describe('Acceptance: Subscribers', function() {
|
||||
});
|
||||
|
||||
// save a new subscriber
|
||||
click('.btn:contains("Add Subscriber")');
|
||||
click('.gh-btn:contains("Add Subscriber")');
|
||||
fillIn('.fullscreen-modal input[name="email"]', 'test@example.com');
|
||||
click('.fullscreen-modal .btn:contains("Add")');
|
||||
click('.fullscreen-modal .gh-btn:contains("Add")');
|
||||
|
||||
andThen(function () {
|
||||
// the add subscriber modal is closed
|
||||
@ -174,9 +174,9 @@ describe('Acceptance: Subscribers', function() {
|
||||
});
|
||||
|
||||
// saving a duplicate subscriber
|
||||
click('.btn:contains("Add Subscriber")');
|
||||
click('.gh-btn:contains("Add Subscriber")');
|
||||
fillIn('.fullscreen-modal input[name="email"]', 'test@example.com');
|
||||
click('.fullscreen-modal .btn:contains("Add")');
|
||||
click('.fullscreen-modal .gh-btn:contains("Add")');
|
||||
|
||||
andThen(function () {
|
||||
// the validation error is displayed
|
||||
@ -193,7 +193,7 @@ describe('Acceptance: Subscribers', function() {
|
||||
});
|
||||
|
||||
// deleting a subscriber
|
||||
click('.fullscreen-modal .btn:contains("Cancel")');
|
||||
click('.fullscreen-modal .gh-btn:contains("Cancel")');
|
||||
click('.subscribers-table tbody tr:first-of-type button:last-of-type');
|
||||
|
||||
andThen(function () {
|
||||
@ -203,7 +203,7 @@ describe('Acceptance: Subscribers', function() {
|
||||
});
|
||||
|
||||
// cancel the modal
|
||||
click('.fullscreen-modal .btn:contains("Cancel")');
|
||||
click('.fullscreen-modal .gh-btn:contains("Cancel")');
|
||||
|
||||
andThen(function () {
|
||||
// it closes the add subscriber modal
|
||||
@ -212,7 +212,7 @@ describe('Acceptance: Subscribers', function() {
|
||||
});
|
||||
|
||||
click('.subscribers-table tbody tr:first-of-type button:last-of-type');
|
||||
click('.fullscreen-modal .btn:contains("Delete")');
|
||||
click('.fullscreen-modal .gh-btn:contains("Delete")');
|
||||
|
||||
andThen(function () {
|
||||
// the add subscriber modal is closed
|
||||
@ -229,7 +229,7 @@ describe('Acceptance: Subscribers', function() {
|
||||
});
|
||||
|
||||
// click the import subscribers button
|
||||
click('.btn:contains("Import CSV")');
|
||||
click('.gh-btn:contains("Import CSV")');
|
||||
|
||||
andThen(function () {
|
||||
// it displays the import subscribers modal
|
||||
@ -240,7 +240,7 @@ describe('Acceptance: Subscribers', function() {
|
||||
});
|
||||
|
||||
// cancel the modal
|
||||
click('.fullscreen-modal .btn:contains("Cancel")');
|
||||
click('.fullscreen-modal .gh-btn:contains("Cancel")');
|
||||
|
||||
andThen(function () {
|
||||
// it closes the import subscribers modal
|
||||
@ -248,7 +248,7 @@ describe('Acceptance: Subscribers', function() {
|
||||
.to.equal(0);
|
||||
});
|
||||
|
||||
click('.btn:contains("Import CSV")');
|
||||
click('.gh-btn:contains("Import CSV")');
|
||||
fileUpload('.fullscreen-modal input[type="file"]', ['test'], {name: 'test.csv'});
|
||||
|
||||
andThen(function () {
|
||||
|
@ -119,7 +119,7 @@ describe('Acceptance: Team', function () {
|
||||
andThen(() => {
|
||||
// invite user button exists
|
||||
expect(
|
||||
find('.view-actions .btn-green').text().trim(),
|
||||
find('.view-actions .gh-btn-green').text().trim(),
|
||||
'invite people button text'
|
||||
).to.equal('Invite People');
|
||||
|
||||
@ -142,7 +142,7 @@ describe('Acceptance: Team', function () {
|
||||
});
|
||||
|
||||
// click the invite people button
|
||||
click('.view-actions .btn-green');
|
||||
click('.view-actions .gh-btn-green');
|
||||
|
||||
andThen(() => {
|
||||
let roleOptions = find('.fullscreen-modal select[name="role"] option');
|
||||
@ -183,7 +183,7 @@ describe('Acceptance: Team', function () {
|
||||
|
||||
// submit valid invite form
|
||||
fillIn('.fullscreen-modal input[name="email"]', 'invite1@example.com');
|
||||
click('.fullscreen-modal .btn-green');
|
||||
click('.fullscreen-modal .gh-btn-green');
|
||||
|
||||
andThen(() => {
|
||||
// modal closes
|
||||
@ -216,10 +216,10 @@ describe('Acceptance: Team', function () {
|
||||
});
|
||||
|
||||
// submit new invite with different role
|
||||
click('.view-actions .btn-green');
|
||||
click('.view-actions .gh-btn-green');
|
||||
fillIn('.fullscreen-modal input[name="email"]', 'invite2@example.com');
|
||||
fillIn('.fullscreen-modal select[name="role"]', '2');
|
||||
click('.fullscreen-modal .btn-green');
|
||||
click('.fullscreen-modal .gh-btn-green');
|
||||
|
||||
andThen(() => {
|
||||
// number of invites increases
|
||||
@ -241,9 +241,9 @@ describe('Acceptance: Team', function () {
|
||||
});
|
||||
|
||||
// submit invite form with existing user
|
||||
click('.view-actions .btn-green');
|
||||
click('.view-actions .gh-btn-green');
|
||||
fillIn('.fullscreen-modal input[name="email"]', 'admin@example.com');
|
||||
click('.fullscreen-modal .btn-green');
|
||||
click('.fullscreen-modal .gh-btn-green');
|
||||
|
||||
andThen(() => {
|
||||
// validation message is displayed
|
||||
@ -255,7 +255,7 @@ describe('Acceptance: Team', function () {
|
||||
|
||||
// submit invite form with existing invite
|
||||
fillIn('.fullscreen-modal input[name="email"]', 'invite1@example.com');
|
||||
click('.fullscreen-modal .btn-green');
|
||||
click('.fullscreen-modal .gh-btn-green');
|
||||
|
||||
andThen(() => {
|
||||
// validation message is displayed
|
||||
@ -267,7 +267,7 @@ describe('Acceptance: Team', function () {
|
||||
|
||||
// submit invite form with an invalid email
|
||||
fillIn('.fullscreen-modal input[name="email"]', 'test');
|
||||
click('.fullscreen-modal .btn-green');
|
||||
click('.fullscreen-modal .gh-btn-green');
|
||||
|
||||
andThen(() => {
|
||||
// validation message is displayed
|
||||
@ -302,9 +302,9 @@ describe('Acceptance: Team', function () {
|
||||
});
|
||||
|
||||
// add another invite to test ordering on resend
|
||||
click('.view-actions .btn-green');
|
||||
click('.view-actions .gh-btn-green');
|
||||
fillIn('.fullscreen-modal input[name="email"]', 'invite3@example.com');
|
||||
click('.fullscreen-modal .btn-green');
|
||||
click('.fullscreen-modal .gh-btn-green');
|
||||
|
||||
andThen(() => {
|
||||
// new invite should be last in the list
|
||||
|
@ -91,7 +91,7 @@ describe('Acceptance: Version Mismatch', function() {
|
||||
server.post('/subscribers/csv/', versionMismatchResponse);
|
||||
|
||||
visit('/subscribers');
|
||||
click('.btn:contains("Import CSV")');
|
||||
click('.gh-btn:contains("Import CSV")');
|
||||
fileUpload('.fullscreen-modal input[type="file"]', ['test'], {name: 'test.csv'});
|
||||
|
||||
andThen(() => {
|
||||
@ -109,7 +109,7 @@ describe('Acceptance: Version Mismatch', function() {
|
||||
visit('/signin');
|
||||
fillIn('[name="identification"]', 'test@example.com');
|
||||
fillIn('[name="password"]', 'password');
|
||||
click('.btn-blue');
|
||||
click('.gh-btn-blue');
|
||||
|
||||
andThen(() => {
|
||||
// has the refresh to update alert
|
||||
|
@ -196,8 +196,8 @@ describe('Integration: Component: gh-file-uploader', function() {
|
||||
wait().then(() => {
|
||||
expect(this.$('.failed').length, 'error message is displayed').to.equal(1);
|
||||
expect(this.$('.failed').text()).to.match(/The file type you uploaded is not supported/);
|
||||
expect(this.$('.btn-green').length, 'reset button is displayed').to.equal(1);
|
||||
expect(this.$('.btn-green').text()).to.equal('Try Again');
|
||||
expect(this.$('.gh-btn-green').length, 'reset button is displayed').to.equal(1);
|
||||
expect(this.$('.gh-btn-green').text()).to.equal('Try Again');
|
||||
done();
|
||||
});
|
||||
});
|
||||
@ -290,7 +290,7 @@ describe('Integration: Component: gh-file-uploader', function() {
|
||||
|
||||
wait().then(() => {
|
||||
run(() => {
|
||||
this.$('.btn-green').click();
|
||||
this.$('.gh-btn-green').click();
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -266,8 +266,8 @@ describe('Integration: Component: gh-image-uploader', function() {
|
||||
wait().then(() => {
|
||||
expect(this.$('.failed').length, 'error message is displayed').to.equal(1);
|
||||
expect(this.$('.failed').text()).to.match(/The image type you uploaded is not supported/);
|
||||
expect(this.$('.btn-green').length, 'reset button is displayed').to.equal(1);
|
||||
expect(this.$('.btn-green').text()).to.equal('Try Again');
|
||||
expect(this.$('.gh-btn-green').length, 'reset button is displayed').to.equal(1);
|
||||
expect(this.$('.gh-btn-green').text()).to.equal('Try Again');
|
||||
done();
|
||||
});
|
||||
});
|
||||
@ -360,7 +360,7 @@ describe('Integration: Component: gh-image-uploader', function() {
|
||||
|
||||
wait().then(() => {
|
||||
run(() => {
|
||||
this.$('.btn-green').click();
|
||||
this.$('.gh-btn-green').click();
|
||||
});
|
||||
});
|
||||
|
||||
@ -538,7 +538,7 @@ describe('Integration: Component: gh-image-uploader', function() {
|
||||
|
||||
this.$('input[type="text"]').val('saved url');
|
||||
this.$('input[type="text"]').change();
|
||||
this.$('button.btn-blue').click();
|
||||
this.$('button.gh-btn-blue').click();
|
||||
|
||||
expect(update.calledOnce).to.be.true;
|
||||
expect(update.firstCall.args[0]).to.equal('saved url');
|
||||
|
@ -24,7 +24,7 @@ describe('Integration: Component: modals/transfer-owner', function() {
|
||||
this.render(hbs`{{modals/transfer-owner confirm=(action 'confirm') closeModal=(action 'closeModal')}}`);
|
||||
|
||||
run(() => {
|
||||
this.$('.btn.btn-red').click();
|
||||
this.$('.gh-btn.gh-btn-red').click();
|
||||
});
|
||||
|
||||
expect(confirm.calledOnce, 'confirm called').to.be.true;
|
||||
|
Loading…
Reference in New Issue
Block a user