Browse Source
Replace OC.Notification with toastify js (#15124)
Replace OC.Notification with toastify js (#15124)
Replace OC.Notification with toastify jspull/13186/head
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 348 additions and 264 deletions
-
3core/css/server.scss
-
49core/css/toast.scss
-
26core/js/dist/login.js
-
2core/js/dist/login.js.map
-
54core/js/dist/main.js
-
2core/js/dist/main.js.map
-
20core/js/dist/maintenance.js
-
2core/js/dist/maintenance.js.map
-
147core/js/tests/specs/coreSpec.js
-
2core/js/tests/specs/sharedialogviewSpec.js
-
155core/src/OC/notification.js
-
6core/src/OCP/index.js
-
89core/src/OCP/toast.js
-
54package-lock.json
-
1package.json
@ -0,0 +1,49 @@ |
|||
.toastify.toast { |
|||
min-width: 200px; |
|||
background: none; |
|||
background-color: var(--color-main-background); |
|||
color: var(--color-main-text); |
|||
box-shadow: 0 0 6px 0 var(--color-box-shadow); |
|||
padding: 12px; |
|||
padding-right: 34px; |
|||
margin-top: 45px; |
|||
position: absolute; |
|||
z-index: 9000; |
|||
border-radius: var(--border-radius); |
|||
|
|||
.toast-close { |
|||
position: absolute; |
|||
top: 0; |
|||
right: 0; |
|||
width: 38px; |
|||
opacity: 0.4; |
|||
padding: 12px; |
|||
@include icon-color('close', 'actions', $color-black, 2, true); |
|||
background-position: center; |
|||
background-repeat: no-repeat; |
|||
text-indent: 200%; |
|||
white-space: nowrap; |
|||
overflow: hidden; |
|||
|
|||
&:hover, &:focus, &:active { |
|||
cursor: pointer; |
|||
opacity: 1; |
|||
} |
|||
} |
|||
} |
|||
.toastify.toastify-top { |
|||
right: 10px; |
|||
} |
|||
|
|||
.toast-error { |
|||
border-left: 3px solid var(--color-error); |
|||
} |
|||
.toast-info { |
|||
border-left: 3px solid var(--color-primary); |
|||
} |
|||
.toast-warning { |
|||
border-left: 3px solid var(--color-warning); |
|||
} |
|||
.toast-success { |
|||
border-left: 3px solid var(--color-success); |
|||
} |
|||
26
core/js/dist/login.js
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
2
core/js/dist/login.js.map
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
54
core/js/dist/main.js
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
2
core/js/dist/main.js.map
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
20
core/js/dist/maintenance.js
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
2
core/js/dist/maintenance.js.map
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,89 @@ |
|||
/* |
|||
* @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net> |
|||
* |
|||
* @author Julius Härtl <jus@bitgrid.net> |
|||
* |
|||
* @license GNU AGPL version 3 or any later version |
|||
* |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU Affero General Public License as |
|||
* published by the Free Software Foundation, either version 3 of the |
|||
* License, or (at your option) any later version. |
|||
* |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU Affero General Public License for more details. |
|||
* |
|||
* You should have received a copy of the GNU Affero General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
* |
|||
*/ |
|||
|
|||
import Toastify from 'toastify-js' |
|||
|
|||
const TOAST_TYPE_CLASES = { |
|||
error: 'toast-error', |
|||
info: 'toast-info', |
|||
warning: 'toast-warning', |
|||
success: 'toast-success', |
|||
permanent: 'permanent' |
|||
} |
|||
|
|||
const Toast = { |
|||
|
|||
success(text, options = {}) { |
|||
options.type = 'success'; |
|||
return this.message(text, options) |
|||
}, |
|||
|
|||
warning(text, options = {}) { |
|||
options.type = 'warning'; |
|||
return this.message(text, options) |
|||
}, |
|||
|
|||
error(text, options = {}) { |
|||
options.type = 'error'; |
|||
return this.message(text, options) |
|||
}, |
|||
|
|||
info(text, options = {}) { |
|||
options.type = 'info'; |
|||
return this.message(text, options) |
|||
}, |
|||
|
|||
message(text, options) { |
|||
options = options || {}; |
|||
_.defaults(options, { |
|||
timeout: 7, |
|||
showHtml: false, |
|||
type: undefined, |
|||
close: true, |
|||
callback: () => {} |
|||
}); |
|||
if (!options.showHtml) { |
|||
text = $('<div/>').text(text).html() |
|||
} |
|||
let classes = '' |
|||
if (options.type) { |
|||
classes = TOAST_TYPE_CLASES[options.type] |
|||
} |
|||
|
|||
const toast = Toastify({ |
|||
text: text, |
|||
duration: options.timeout ? options.timeout*1000 : null, |
|||
callback: options.callback, |
|||
close: options.close, |
|||
gravity: 'top', |
|||
selector: !window.TESTING ? 'content' : 'testArea', |
|||
positionLeft: false, |
|||
backgroundColor: '', |
|||
className: 'toast ' + classes |
|||
}) |
|||
toast.showToast() |
|||
// add toastify object to the element for reference in legacy OC.Notification
|
|||
toast.toastElement.toastify = toast; |
|||
return toast |
|||
} |
|||
} |
|||
export default Toast |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue