Skip to content
This repository was archived by the owner on Nov 25, 2020. It is now read-only.

Commit cf6d95d

Browse files
committed
Add a small opacity animation on info panel async blocs to avoid heavy blinking.
1 parent 7904ffd commit cf6d95d

File tree

5 files changed

+24
-6
lines changed

5 files changed

+24
-6
lines changed

core/src/plugins/action.share/class.ShareCenter.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -869,7 +869,10 @@ Class.create("ShareCenter", {
869869
},
870870

871871
loadInfoPanel : function(container, node){
872-
container.down('#ajxp_shared_info_panel .infoPanelTable').update('<div class="infoPanelRow">\
872+
873+
var mainCont = container.down("#ajxp_shared_info_panel .infoPanelTable");
874+
mainCont.addClassName('infopanel_loading');
875+
mainCont.update('<div class="infoPanelRow">\
873876
<div class="infoPanelLabel">'+MessageHash['share_center.55']+'</div>\
874877
<div class="infoPanelValue"><span class="icon-spinner"></span></div>\
875878
</div>\
@@ -879,7 +882,7 @@ Class.create("ShareCenter", {
879882

880883
if(jsonData.error){
881884

882-
container.down("#ajxp_shared_info_panel .infoPanelTable").update('<div class="share_info_panel_main_legend"><span class="icon-warning-sign"></span> '+jsonData["label"]+'</div>');
885+
mainCont.update('<div class="share_info_panel_main_legend"><span class="icon-warning-sign"></span> '+jsonData["label"]+'</div>');
883886

884887
}else if(node.isLeaf() && !jsonData['repositoryId']){
885888

@@ -917,7 +920,7 @@ Class.create("ShareCenter", {
917920
}
918921
}
919922

920-
container.down('#ajxp_shared_info_panel .infoPanelTable').update('\
923+
mainCont.update('\
921924
<div class="share_info_panel_main_legend">'+MessageHash["share_center.140"+(jsonData['is_expired']?'b':'')]+ '</div>\
922925
<div class="infoPanelRow">\
923926
<div class="infoPanelLabel">'+MessageHash['share_center.59']+'</div>\
@@ -936,13 +939,12 @@ Class.create("ShareCenter", {
936939
');
937940

938941
if(linksCount > 1){
939-
container.down('#ajxp_shared_info_panel .infoPanelTable').insert({bottom:'<div class="infoPanelRow">\
942+
mainCont.insert({bottom:'<div class="infoPanelRow">\
940943
<div class="infoPanelLabel" colspan="2" style="text-align: center;font-style: italic;">'+MessageHash['share_center.'+(linksCount>2?'104':'105')].replace('%s', linksCount-1)+'</div>\
941944
</div>'});
942945
}
943946

944947
}else{
945-
var mainCont = container.down("#ajxp_shared_info_panel .infoPanelTable");
946948
var entries = [];
947949
$A(jsonData.entries).each(function(entry){
948950
entries.push(entry.LABEL + ' ('+ entry.RIGHT +')');
@@ -1001,6 +1003,7 @@ Class.create("ShareCenter", {
10011003
t.observe("blur", function(e){ pydio.UI.enableShortcuts();});
10021004
t.observe("click", function(event){event.target.select();});
10031005
});
1006+
mainCont.addClassName("infopanel_loading_finished");
10041007
container.up("div[ajxpClass]").ajxpPaneObject.resize();
10051008
}, true);
10061009
},

core/src/plugins/core.conf/standard_conf_actions.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -649,6 +649,7 @@
649649
<div class="panelHeader">#{shared_string}</div>
650650
<div id="ajxp_workspace_info_panel_content"></div>
651651
<script>
652+
$("ajxp_workspace_info_panel").addClassName("infopanel_loading");
652653
bufferCallback("ajxp_load_repo_info_timer", 300,function(){
653654
if(!$('ajxp_workspace_info_panel_content') || !$('ajxp_workspace_info_panel_content').visible()){
654655
return;
@@ -657,6 +658,7 @@
657658
var conn = new Connexion();
658659
conn.setParameters({get_action:'load_repository_info'});
659660
conn.onComplete = function(transport){
661+
$("ajxp_workspace_info_panel").addClassName("infopanel_loading_finished");
660662
if(transport.responseJSON && $('ajxp_workspace_info_panel_content')){
661663
var data = transport.responseJSON;
662664
if(!data['core.users']['external']){

core/src/plugins/core.notifications/class.NotificationLoader.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,8 @@ Class.create("NotificationLoader", {
297297

298298
loadInfoPanel : function(container, node){
299299
var label= MessageHash['notification_center.'+(node.isLeaf()?'11': (node.isRoot()?'9': '10'))];
300+
var mainContainer = container.down("#ajxp_activity_panel");
301+
mainContainer.addClassName("infopanel_loading");
300302
container.down("#ajxp_activity_panel").update('<div class="panelHeader" style="display: none;">'+label+'</div><div id="activity_results">Nothing</div>');
301303
var resultPane = container.down("#activity_results");
302304
if(node.isLeaf()) resultPane.addClassName('leaf_activity');
@@ -327,6 +329,9 @@ Class.create("NotificationLoader", {
327329
}});
328330
var pane = container.up('[ajxpClass="InfoPanel"]');
329331
fRp._rootNode.observe("loaded", function(){
332+
if(!mainContainer.hasClassName("infopanel_loading_finished")){
333+
mainContainer.addClassName("infopanel_loading_finished");
334+
}
330335
if(pane && pane.ajxpPaneObject){
331336
window.setTimeout(function(){
332337
pane.ajxpPaneObject.resize();

core/src/plugins/gui.ajax/res/themes/orbit/css/ajaxplorer.css

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3339,6 +3339,14 @@ div.tabulatorContainer div#display_toolbar{
33393339
line-height: 1.5em;
33403340
}
33413341

3342+
.infopanel_loading{
3343+
opacity: 0;
3344+
transition: opacity ease 0.2s;
3345+
}
3346+
.infopanel_loading_finished{
3347+
opacity: 1;
3348+
}
3349+
33423350
span.toggleHeader{
33433351
display: inline-block;
33443352
overflow: hidden;

core/src/plugins/gui.ajax/res/themes/orbit/css/allz.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)