diff --git a/js/util.js b/js/util.js index f60b5d3137..9171c1e675 100644 --- a/js/util.js +++ b/js/util.js @@ -316,7 +316,41 @@ var SN = { // StatusNet }, NoticeRepeat: function() { - $('.form_repeat').each(function() { SN.U.FormXHR($(this)); }); + $('.form_repeat').each(function() { + SN.U.FormXHR($(this)); + SN.U.NoticeRepeatConfirmation($(this)); + }); + }, + + NoticeRepeatConfirmation: function(form) { + function NRC() { + form.closest('.notice-options').addClass('opaque'); + form.addClass('dialogbox'); + + form.append(''); + form.find('button.close').click(function(){ + $(this).remove(); + + form.closest('.notice-options').removeClass('opaque'); + form.removeClass('dialogbox'); + form.find('.submit_dialogbox').remove(); + form.find('.submit').show(); + + return false; + }); + }; + + form.find('.submit').bind('click', function(e) { + e.preventDefault(); + + var submit = form.find('.submit').clone(); + submit.addClass('submit_dialogbox'); + form.append(submit); + + $(this).hide(); + + NRC(); + }); }, NoticeAttachments: function() { diff --git a/theme/base/css/display.css b/theme/base/css/display.css index 2f6563bf41..9cbee32c8d 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -1004,6 +1004,38 @@ top:4px; left:0; } +.dialogbox { +position:absolute; +top:-4px; +right:29px; +z-index:9; +min-width:199px; +float:none; +background-color:#FFF; +padding:11px; +border-radius:7px; +-moz-border-radius:7px; +-webkit-border-radius:7px; +border-style:solid; +border-width:1px; +border-color:#DDDDDD; +-moz-box-shadow:3px 7px 5px rgba(194, 194, 194, 0.7); +} + +.dialogbox legend { +display:block !important; +margin-right:18px; +} + +.form_repeat.dialogbox legend:after { +content:'?'; +} +.dialogbox button { +position:absolute; +right:3px; +top:3px; +} + .notice-options { position:relative; font-size:0.95em; diff --git a/theme/identica/css/display.css b/theme/identica/css/display.css index aa02070ac5..009a726f1a 100644 --- a/theme/identica/css/display.css +++ b/theme/identica/css/display.css @@ -350,6 +350,9 @@ opacity:0.4; .notices li:hover div.notice-options { opacity:1; } +.opaque { +opacity:1 !important; +} .notice-options a, .notice-options input { font-family:sans-serif;