mirror of
https://github.com/friendica/friendica
synced 2024-12-22 01:47:27 +01:00
Merge pull request #2643 from rabuzarus/2606_jot_mobile
frio: restructure jot modal and make jot modal work on mobile
This commit is contained in:
commit
a5030f0b60
5 changed files with 119 additions and 100 deletions
|
@ -69,6 +69,9 @@ iframe, img {
|
|||
.fakelink {
|
||||
cursor: pointer;
|
||||
}
|
||||
.hidden {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/*
|
||||
* standard page elements
|
||||
|
@ -156,6 +159,15 @@ a#item-delete-selected {
|
|||
outline: 0;
|
||||
background: $btn_primary_hover_color !important;
|
||||
}
|
||||
.btn-primary.active.focus, .btn-primary.active:focus, .btn-primary.active:hover,
|
||||
.btn-primary:active.focus, .btn-primary:active:focus, .btn-primary:active:hover,
|
||||
.open>.dropdown-toggle.btn-primary.focus, .open>.dropdown-toggle.btn-primary:focus,
|
||||
.open>.dropdown-toggle.btn-primary:hover,.btn-primary.active, .btn-primary:active,
|
||||
.open>.dropdown-toggle.btn-primary {
|
||||
background: $btn_primary_hover_color;
|
||||
border-color: none;
|
||||
}
|
||||
|
||||
.btn-link {
|
||||
/* color: #6fdbe8;*/
|
||||
color: $link_color;
|
||||
|
|
|
@ -224,7 +224,7 @@ function editpost(url) {
|
|||
url = url + " #profile-jot-form";
|
||||
|
||||
//var rand_num = random_digits(12);
|
||||
$(".jot-nav #jot-perms-lnk").parent("li").hide();
|
||||
$(".jot-nav .jot-perms-lnk").parent("li").addClass("hidden");
|
||||
|
||||
// For editpost we load the modal html form the edit page. So we would have two jot forms in
|
||||
// the page html. To avoid js conflicts we store the original jot in the variable jotcache.
|
||||
|
@ -241,7 +241,7 @@ function editpost(url) {
|
|||
jotreset();
|
||||
|
||||
modal
|
||||
.find('#jot-modal-body')
|
||||
.find('#jot-modal-content')
|
||||
.load(url, function (responseText, textStatus) {
|
||||
if ( textStatus === 'success' ||
|
||||
textStatus === 'notmodified')
|
||||
|
@ -267,7 +267,7 @@ function jotreset() {
|
|||
// We need this to prevent that the modal displays old content
|
||||
$('body').on('hidden.bs.modal', '#jot-modal.edit-jot', function () {
|
||||
$(this).removeData('bs.modal');
|
||||
$(".jot-nav #jot-perms-lnk").parent("li").show();
|
||||
$(".jot-nav .jot-perms-lnk").parent("li").removeClass("hidden");
|
||||
$("#profile-jot-form #jot-title-wrap").show();
|
||||
$("#profile-jot-form #jot-category-wrap").show();
|
||||
|
||||
|
@ -281,14 +281,14 @@ function jotreset() {
|
|||
|
||||
// remove the "edit-jot" class so we can the standard behavior on close
|
||||
$("#jot-modal.edit-jot").removeClass("edit-jot");
|
||||
$("#jot-modal-body").empty();
|
||||
$("#jot-modal-content").empty();
|
||||
});
|
||||
}
|
||||
|
||||
// Give the active "jot-nav" list element the class "active"
|
||||
function toggleJotNav (elm) {
|
||||
// select all li of jot-nav and remove the active class
|
||||
$(elm).closest(".jot-nav").children("li").removeClass("active");
|
||||
$(".jot-nav li").removeClass("active");
|
||||
// add the active class to the parent of the link which was selected
|
||||
$(elm).parent("li").addClass("active");
|
||||
}
|
||||
|
|
|
@ -206,6 +206,16 @@ $(document).ready(function(){
|
|||
// put the new element to the second nav bar
|
||||
$("#topbar-second > .container > #tabmenu").append(newText);
|
||||
}
|
||||
|
||||
// Dropdown menus with the class "dropdown-head" will display the active tab
|
||||
// as button text
|
||||
$("body").on('click', '.dropdown-head .dropdown-menu li a', function(){
|
||||
$(this).closest(".dropdown").find('.btn').html($(this).text() + ' <span class="caret"></span>');
|
||||
$(this).closest(".dropdown").find('.btn').val($(this).data('value'));
|
||||
$(this).closest("ul").children("li").show();
|
||||
$(this).parent("li").hide();
|
||||
});
|
||||
|
||||
});
|
||||
//function commentOpenUI(obj, id) {
|
||||
// $(document).unbind( "click.commentOpen", handler );
|
||||
|
|
|
@ -400,10 +400,9 @@ function enableOnUser(){
|
|||
jotcache = $("#profile-jot-form");
|
||||
|
||||
modal
|
||||
.find('#jot-modal-body')
|
||||
.find('#jot-modal-content')
|
||||
.append(jotcache)
|
||||
.modal.show
|
||||
;
|
||||
.modal.show;
|
||||
}
|
||||
|
||||
// the following functions show/hide the specific jot content
|
||||
|
|
|
@ -5,6 +5,37 @@
|
|||
|
||||
<div id="jot-content">
|
||||
<form id="profile-jot-form" action="{{$action}}" method="post">
|
||||
<div class="modal-header">
|
||||
{{* Note: We need 2 modal close buttons here to bypass a bug in bootstrap.
|
||||
The second is for mobile view. The first one doesnt work with dropdowns. To get a working close button
|
||||
in with dropdows the close button needs to be inserted after the dropdown. *}}
|
||||
<button type="button" class="close hidden-xs" data-dismiss="modal" style="float: right;">×</button>
|
||||
|
||||
{{* The Jot navigation menu (text input, permissions, preview, filebrowser) *}}
|
||||
<ul class="nav nav-tabs hidden-xs jot-nav" role="menubar" data-tabs="tabs">
|
||||
{{* Mark the first list entry as active because it is the first which is active after opening
|
||||
the modal. Changing of the activity status is done by js in jot.tpl-header *}}
|
||||
<li class="active" role="menuitem"><a id="jot-text-lnk" class="jot-text-lnk" onclick="jotActive(); return false;">{{$message}}</a></li>
|
||||
{{if $acl}}<li role="menuitem"><a id="jot-perms-lnk" class="jot-perms-lnk" onclick="aclActive();return false;">{{$shortpermset}}</a></li>{{/if}}
|
||||
{{if $preview}}<li role="menuitem"><a id="jot-preview-lnk" class="jot-preview-lnk" onclick="previewActive();return false;">{{$preview}}</a></li>{{/if}}
|
||||
<li role="menuitem"><a id="jot-browser-link" onclick="fbrowserActive(); return false;">{{$browser}}</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="dropdown dropdown-head dropdown-mobile-jot jot-nav hidden-lg hidden-md hidden-sm" role="menubar" data-tabs="tabs" style="float: left;">
|
||||
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">{{$message}} <span class="caret"></span></button>
|
||||
<ul class="dropdown-menu nav nav-pills">
|
||||
{{* mark the first list entry as active because it is the first which is active after opening
|
||||
the modal. Changing of the activity status is done by js in jot.tpl-header *}}
|
||||
<li role="menuitem" style="display: none;"><a id="jot-text-lnk-mobile" class="jot-text-lnk" onclick="jotActive(); return false;">{{$message}}</a></li>
|
||||
{{if $acl}}<li role="menuitem"><a id="jot-perms-lnk-mobile" class="jot-perms-lnk" onclick="aclActive();return false;">{{$shortpermset}}</a></li>{{/if}}
|
||||
{{if $preview}}<li role="menuitem"><a id="jot-preview-lnk-mobile" class="jot-preview-lnk" onclick="previewActive();return false;">{{$preview}}</a></li>{{/if}}
|
||||
</ul>
|
||||
</div>
|
||||
<button type="button" class="close hidden-lg hidden-md hidden-sm" data-dismiss="modal" style="float: right;">×</button>
|
||||
</div>
|
||||
|
||||
<div id="jot-modal-body" class="modal-body">
|
||||
|
||||
<div id="profile-jot-wrapper">
|
||||
<div>
|
||||
<div id="character-counter" class="grey jothidden text-info pull-left"></div>
|
||||
|
@ -67,6 +98,7 @@
|
|||
<div id="jot-fbrowser-wrapper" style="display: none"></div>
|
||||
|
||||
{{if $content}}<script>initEditor();</script>{{/if}}
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
@ -80,41 +112,7 @@ can load different content into the jot moadl (e.g. the item edit jot)
|
|||
*}}
|
||||
<div id="jot-modal" class="modal fade" role="dialog">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal">×</button>
|
||||
<!--<h4 class="modal-title">Modal Header</h4>-->
|
||||
{{* The Jot navigation menu (text input, permissions, preview, filebrowser) *}}
|
||||
<ul class="nav nav-tabs hidden-xs jot-nav" role="menubar" data-tabs="tabs">
|
||||
{{* Mark the first list entry as active because it is the first which is active after opening
|
||||
the modal. Changing of the activity status is done by js in jot.tpl-header *}}
|
||||
<li class="active" role="menuitem"><a id="jot-text-lnk" onclick="jotActive(); return false;">{{$message}}</a></li>
|
||||
{{if $acl}}<li role="menuitem"><a id="jot-perms-lnk" onclick="aclActive();return false;">{{$shortpermset}}</a></li>{{/if}}
|
||||
{{if $preview}}<li role="menuitem"><a id="jot-preview-lnk" onclick="previewActive();return false;">{{$preview}}</a></li>{{/if}}
|
||||
<li role="menuitem"><a id="jot-preview-link" onclick="fbrowserActive(); return false;">{{$browser}}</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="dropdown hidden-lg hidden-md hidden-sm" role="menubar" data-tabs="tabs">
|
||||
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown"> JOT
|
||||
<span class="caret"></span></button>
|
||||
<ul class="dropdown-menu nav nav-pills">
|
||||
{{* mark the first list entry as active because it is the first which is active after opening
|
||||
the modal. Changing of the activity status is done by js in jot.tpl-header *}}
|
||||
<li class="active" role="menuitem"><a id="jot-text-lnk-mobile" onclick="jotActive(); return false;">{{$message}}</a></li>
|
||||
{{if $acl}}<li role="menuitem"><a id="jot-perms-lnk-mobile" onclick="aclActive();return false;"{{$shortpermset}}</a></li>{{/if}}
|
||||
{{if $preview}}<li role="menuitem"><a id="jot-preview-lnk-mobile" onclick="previewActive();return false;">{{$preview}}</a></li>{{/if}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="jot-modal-body" class="modal-body">
|
||||
|
||||
|
||||
<!-- End Modal -->
|
||||
</div>
|
||||
</div>
|
||||
<div id="jot-modal-content" class="modal-content"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
Loading…
Reference in a new issue