forked from Botanical/BotanJS
Refine the notification panel
This commit is contained in:
parent
ebaceb86b9
commit
e37a9d8a72
@ -10,6 +10,10 @@
|
|||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.ae_prop_name {
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
|
||||||
.ae_prop_value {
|
.ae_prop_value {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
.notifications {
|
.notifications {
|
||||||
position: relative;
|
float: right;
|
||||||
cursor: default;
|
cursor: default;
|
||||||
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nt_body {
|
.nt_body {
|
||||||
@ -10,25 +11,25 @@
|
|||||||
left: -300px;
|
left: -300px;
|
||||||
|
|
||||||
max-width: 300px;
|
max-width: 300px;
|
||||||
max-height: 600px;
|
|
||||||
|
|
||||||
text-align: left;
|
text-align: left;
|
||||||
|
|
||||||
display: none;
|
display: none;
|
||||||
|
z-index: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nt_body > div {
|
.nt_body > div { float: right; }
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
.nt_button {
|
.nt_button {
|
||||||
|
float: left;
|
||||||
|
|
||||||
text-align: left;
|
text-align: left;
|
||||||
display: block;
|
display: block;
|
||||||
|
|
||||||
margin: 0.2em 0;
|
padding: 0 0.5em 0 0;
|
||||||
|
|
||||||
color: white;
|
color: white;
|
||||||
background: #444;
|
background-color: #444;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nt_button:before {
|
.nt_button:before {
|
||||||
@ -36,12 +37,13 @@
|
|||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
|
||||||
padding: 0 0.5em;
|
padding: 0 0.5em;
|
||||||
line-height: 1.5em;
|
margin-right: 0.5em;
|
||||||
|
line-height: 2em;
|
||||||
|
|
||||||
background-color: royalblue;
|
background-color: royalblue;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nt_button:before, .nt_switch:before {
|
.nt_button:before, .nt_switch:before, .nt_icon_settings {
|
||||||
-webkit-transition: all 500ms cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
-webkit-transition: all 500ms cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
||||||
-moz-transition: all 500ms cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
-moz-transition: all 500ms cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
||||||
-ms-transition: all 500ms cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
-ms-transition: all 500ms cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
||||||
@ -61,6 +63,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.nt_arrow {
|
.nt_arrow {
|
||||||
|
margin-top: 0.2em;
|
||||||
border-top: 0.8em solid transparent;
|
border-top: 0.8em solid transparent;
|
||||||
border-left: 1em solid #444;
|
border-left: 1em solid #444;
|
||||||
border-bottom: 0.8em solid transparent;
|
border-bottom: 0.8em solid transparent;
|
||||||
@ -73,7 +76,9 @@
|
|||||||
background: #444;
|
background: #444;
|
||||||
|
|
||||||
margin-right: 0.5em;
|
margin-right: 0.5em;
|
||||||
margin-top: -1.6em;
|
margin-top: -2em;
|
||||||
|
|
||||||
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nt_date {
|
.nt_date {
|
||||||
@ -81,15 +86,18 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.nt_container > ul {
|
.nt_container > ul {
|
||||||
white-space: nowrap;
|
max-height: 400px;
|
||||||
|
width: 120%;
|
||||||
|
|
||||||
overflow: hidden;
|
white-space: nowrap;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
|
overflow-y: scroll;
|
||||||
|
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nt_container > ul > li {
|
.nt_container > ul > li {
|
||||||
|
width: 80%;
|
||||||
padding: 0.25em 0.5em;
|
padding: 0.25em 0.5em;
|
||||||
color: white;
|
color: white;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
@ -100,9 +108,17 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.nt_icon_settings {
|
.nt_icon_settings {
|
||||||
background-image: url(/assets/layout-images/settings.png);
|
float: right;
|
||||||
padding-left: 25px !important;
|
|
||||||
background-repeat: no-repeat;
|
padding: 0em 0.2em;
|
||||||
|
width: 2em; height: 2em;
|
||||||
|
|
||||||
|
background: #333 url(/assets/layout-images/settings.png) no-repeat center center;
|
||||||
|
background-size: 1.5em 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nt_icon_settings:hover {
|
||||||
|
background-color: #555;
|
||||||
}
|
}
|
||||||
|
|
||||||
ul.nt_smenu {
|
ul.nt_smenu {
|
||||||
@ -128,7 +144,7 @@ ul.nt_smenu > li > span {
|
|||||||
|
|
||||||
.nt_switch {
|
.nt_switch {
|
||||||
width: 2.5em;
|
width: 2.5em;
|
||||||
height: 1em;
|
height: 1.2em;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
@ -34,10 +34,10 @@
|
|||||||
var stage = Dand.id( "notifications" );
|
var stage = Dand.id( "notifications" );
|
||||||
var bodyStyle = Dand.id( "nt_body" ).style;
|
var bodyStyle = Dand.id( "nt_body" ).style;
|
||||||
|
|
||||||
|
/** @type {_AstConf_.Notification} */
|
||||||
var conf = Config.get( "Notification" );
|
var conf = Config.get( "Notification" );
|
||||||
var base_path = Config.get( "BasePath" );
|
|
||||||
|
|
||||||
var processor = base_path + conf.paths.get_mesg;
|
var processor = conf.processor;
|
||||||
var contextMenu;
|
var contextMenu;
|
||||||
|
|
||||||
var itemsMenu;
|
var itemsMenu;
|
||||||
@ -49,7 +49,7 @@
|
|||||||
|
|
||||||
var followLink = function(e)
|
var followLink = function(e)
|
||||||
{
|
{
|
||||||
window.location = base_path + this.link;
|
window.location = this.link;
|
||||||
};
|
};
|
||||||
|
|
||||||
var toggleFollow = function(e)
|
var toggleFollow = function(e)
|
||||||
@ -155,20 +155,22 @@
|
|||||||
|
|
||||||
for( var n in e.data )
|
for( var n in e.data )
|
||||||
{
|
{
|
||||||
|
/** @type {_AstJson_.AJaxGetNotis} */
|
||||||
|
var data = e.data[n];
|
||||||
// Create items
|
// Create items
|
||||||
items[items.length] = new IKey(
|
items[ items.length ] = new IKey(
|
||||||
e.data[n].message
|
data.message
|
||||||
, new EventKey(
|
, new EventKey(
|
||||||
"m_" + e.data[n].id
|
"m_" + data.id
|
||||||
, readNotification.bind( e.data[n] )
|
, readNotification.bind( data )
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
items[ items.length ] = new EventKey( "Settings", popupSettings );
|
Dand.glass( "nt_icon_settings", true )[0].addEventListener( "Click", popupSettings );
|
||||||
|
|
||||||
contextMenu = new ContextMenu(
|
contextMenu = new ContextMenu(
|
||||||
stage
|
Dand.id( "nt_open_menu" )
|
||||||
, items
|
, items
|
||||||
, "LMB"
|
, "LMB"
|
||||||
, nt_body
|
, nt_body
|
||||||
@ -215,16 +217,17 @@
|
|||||||
|
|
||||||
for( n in e.data )
|
for( n in e.data )
|
||||||
{
|
{
|
||||||
var li = contextMenu.getItemByKey( "m_" + e.data[n].id ).stage;
|
/** @type {_AstJson_.AJaxGetNotis} */
|
||||||
|
var data = e.data[n];
|
||||||
|
|
||||||
|
var li = contextMenu.getItemByKey( "m_" + data.id ).stage;
|
||||||
li.appendChild(
|
li.appendChild(
|
||||||
Dand.wrapc(
|
Dand.wrapc(
|
||||||
"nt_date"
|
"nt_date"
|
||||||
, smstamp( new Date( Number( e.data[n].date ) * 1000 ) )
|
, smstamp( new Date( data.date ) )
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
contextMenu.getItemByKey("Settings").stage.className = "nt_icon_settings";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
postData( processor, { "action": "get" }, createContextMenu );
|
postData( processor, { "action": "get" }, createContextMenu );
|
||||||
|
4
botanjs/src/externs/_AstConf_.Notification.js
Normal file
4
botanjs/src/externs/_AstConf_.Notification.js
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
/** @type {Object} */
|
||||||
|
_AstConf_.Notification = {};
|
||||||
|
/** @type {String} */
|
||||||
|
_AstConf_.Notification.processor;
|
8
botanjs/src/externs/_AstJson_.AJaxGetNotis.js
Normal file
8
botanjs/src/externs/_AstJson_.AJaxGetNotis.js
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
/** @type {Object} */
|
||||||
|
_AstJson_.AJaxGetNotis = {};
|
||||||
|
/** @type {String} */
|
||||||
|
_AstJson_.AJaxGetNotis.message;
|
||||||
|
/** @type {String} */
|
||||||
|
_AstJson_.AJaxGetNotis.id;
|
||||||
|
/** @type {String} */
|
||||||
|
_AstJson_.AJaxGetNotis.date;
|
Loading…
Reference in New Issue
Block a user