@@ -45,35 +19,5 @@
-
+
diff --git a/rhodecode/public/js/src/components/rhodecode-toast/rhodecode-toast.js b/rhodecode/public/js/src/components/rhodecode-toast/rhodecode-toast.js
new file mode 100644
--- /dev/null
+++ b/rhodecode/public/js/src/components/rhodecode-toast/rhodecode-toast.js
@@ -0,0 +1,29 @@
+Polymer({
+ is: 'rhodecode-toast',
+ properties: {
+ toasts: {
+ type: Array,
+ value: function(){
+ return []
+ }
+ }
+ },
+ observers: [
+ '_changedToasts(toasts.splices)'
+ ],
+ ready: function(){
+
+ },
+
+ _changedToasts: function(newValue, oldValue){
+ this.$['p-toast'].notifyResize();
+ },
+ dismissNotifications: function(){
+ this.$['p-toast'].close();
+ this.splice('toasts', 0);
+ },
+ open: function(){
+ this.$['p-toast'].open();
+ },
+ _gettext: _gettext
+});
diff --git a/rhodecode/public/js/src/components/rhodecode-toast/rhodecode-toast.less b/rhodecode/public/js/src/components/rhodecode-toast/rhodecode-toast.less
new file mode 100644
--- /dev/null
+++ b/rhodecode/public/js/src/components/rhodecode-toast/rhodecode-toast.less
@@ -0,0 +1,39 @@
+paper-toast{
+ width: 100%;
+ min-width: 400px;
+ --paper-toast-background-color: #ffffff;
+ --paper-toast-color: #000000;
+}
+paper-toast a{
+ font-weight: bold
+}
+
+.toast-message-holder {
+ width: ~'calc(100% - 150px)';
+ display: inline-block;
+}
+.toast-close {
+ display: inline-block;
+ width: 145px;
+ text-align: right;
+ float: right;
+}
+.toast-notification {
+ padding: 10px 0 10px 0;
+}
+
+.toast-level {
+ display: inline-block;
+ min-width: 100px;
+ font-weight: bold;
+ text-transform: uppercase;
+ &.info, &.success {
+ color: #0ac878;
+ }
+ &.error, &.danger {
+ color: #e85e4d;
+ }
+ &.warning {
+ color: #ffc854;
+ }
+}
diff --git a/rhodecode/public/js/src/components/rhodecode-unsafe-html.html b/rhodecode/public/js/src/components/rhodecode-unsafe-html/rhodecode-unsafe-html.html
rename from rhodecode/public/js/src/components/rhodecode-unsafe-html.html
rename to rhodecode/public/js/src/components/rhodecode-unsafe-html/rhodecode-unsafe-html.html
--- a/rhodecode/public/js/src/components/rhodecode-unsafe-html.html
+++ b/rhodecode/public/js/src/components/rhodecode-unsafe-html/rhodecode-unsafe-html.html
@@ -1,22 +1,9 @@
-
+
-
+
diff --git a/rhodecode/public/js/src/components/rhodecode-unsafe-html.html b/rhodecode/public/js/src/components/rhodecode-unsafe-html/rhodecode-unsafe-html.js
copy from rhodecode/public/js/src/components/rhodecode-unsafe-html.html
copy to rhodecode/public/js/src/components/rhodecode-unsafe-html/rhodecode-unsafe-html.js
--- a/rhodecode/public/js/src/components/rhodecode-unsafe-html.html
+++ b/rhodecode/public/js/src/components/rhodecode-unsafe-html/rhodecode-unsafe-html.js
@@ -1,22 +1,12 @@
-
-
-
-
-
-
-
-
-
+Polymer({
+ is: 'rhodecode-unsafe-html',
+ properties: {
+ text: {
+ type: String,
+ observer: '_handleText'
+ }
+ },
+ _handleText: function(newVal, oldVal){
+ this.innerHTML = this.text;
+ }
+})
diff --git a/rhodecode/public/js/src/components/shared-components.html b/rhodecode/public/js/src/components/shared-components.html
--- a/rhodecode/public/js/src/components/shared-components.html
+++ b/rhodecode/public/js/src/components/shared-components.html
@@ -5,5 +5,5 @@
-
-
+
+