浏览代码

[added] alternate desktop (listified) for ios app

version-14
Rushabh Mehta 10 年前
父节点
当前提交
21d5aaa47c
共有 8 个文件被更改,包括 122 次插入37 次删除
  1. +50
    -23
      frappe/core/page/desktop/desktop.js
  2. +25
    -0
      frappe/core/page/desktop/desktop_list_view.html
  3. +2
    -2
      frappe/core/page/desktop/desktop_module_icon.html
  4. +12
    -0
      frappe/public/css/desktop.css
  5. +6
    -5
      frappe/public/css/mobile.css
  6. +2
    -2
      frappe/public/js/frappe/ui/toolbar/about.js
  7. +18
    -0
      frappe/public/less/desktop.less
  8. +7
    -5
      frappe/public/less/mobile.less

+ 50
- 23
frappe/core/page/desktop/desktop.js 查看文件

@@ -2,10 +2,18 @@ frappe.provide('frappe.desktop');


frappe.pages['desktop'].on_page_load = function(wrapper) { frappe.pages['desktop'].on_page_load = function(wrapper) {
// load desktop // load desktop
frappe.desktop.set_background();
if(!frappe.list_desktop) {
frappe.desktop.set_background();
}
frappe.desktop.refresh(wrapper); frappe.desktop.refresh(wrapper);
}; };


frappe.pages['desktop'].on_page_show = function(wrapper) {
if(frappe.list_desktop) {
$("body").attr("data-route", "list-desktop");
}
};

$.extend(frappe.desktop, { $.extend(frappe.desktop, {
refresh: function(wrapper) { refresh: function(wrapper) {
if (wrapper) { if (wrapper) {
@@ -20,7 +28,10 @@ $.extend(frappe.desktop, {
var me = this; var me = this;
frappe.utils.set_title("Desktop"); frappe.utils.set_title("Desktop");


this.wrapper.html(frappe.render_template("desktop_icon_grid", {
var template = frappe.list_desktop ? "desktop_list_view" : "desktop_icon_grid";


this.wrapper.html(frappe.render_template(template, {
// all visible icons // all visible icons
desktop_items: this.get_desktop_items(), desktop_items: this.get_desktop_items(),


@@ -28,7 +39,7 @@ $.extend(frappe.desktop, {
user_desktop_items: this.get_user_desktop_items(), user_desktop_items: this.get_user_desktop_items(),
})); }));


this.setup_icon_click();
this.setup_module_click();


// notifications // notifications
this.show_pending_notifications(); this.show_pending_notifications();
@@ -96,29 +107,40 @@ $.extend(frappe.desktop, {
return out; return out;
}, },


setup_icon_click: function() {
this.wrapper.on("click", ".app-icon", function() {
var parent = $(this).parent();
var link = parent.attr("data-link");
if(link) {
if(link.substr(0, 1)==="/" || link.substr(0, 4)==="http") {
window.open(link, "_blank");
} else {
frappe.set_route(link);
}
return false;
setup_module_click: function() {
var me = this;

if(frappe.list_desktop) {
this.wrapper.on("click", ".desktop-list-item", function() {
me.open_module($(this));
});
} else {
this.wrapper.on("click", ".app-icon", function() {
me.open_module($(this).parent());
});
}
},

open_module: function(parent) {
var link = parent.attr("data-link");
if(link) {
if(link.substr(0, 1)==="/" || link.substr(0, 4)==="http") {
window.open(link, "_blank");
} else { } else {
module = frappe.get_module(parent.attr("data-name"));
if (module && module.onclick) {
module.onclick();
return false;
}
frappe.set_route(link);
} }
});
return false;
} else {
module = frappe.get_module(parent.attr("data-name"));
if (module && module.onclick) {
module.onclick();
return false;
}
}
}, },


make_sortable: function() { make_sortable: function() {
if (frappe.dom.is_touchscreen()) {
if (frappe.dom.is_touchscreen() || frappe.list_desktop) {
return; return;
} }


@@ -215,10 +237,15 @@ $.extend(frappe.desktop, {
sum = frappe.boot.notification_info.open_count_module[module]; sum = frappe.boot.notification_info.open_count_module[module];
} }
if (frappe.modules[module]) { if (frappe.modules[module]) {
var notifier = $("#module-count-" + frappe.get_module(module)._id);
var notifier = $(".module-count-" + frappe.get_module(module)._id);
if(notifier.length) { if(notifier.length) {
notifier.toggle(sum ? true : false); notifier.toggle(sum ? true : false);
notifier.find(".circle-text").html(sum || "");
var circle = notifier.find(".circle-text");
if(circle.length) {
circle.html(sum || "");
} else {
notifier.html(sum);
}
} }
} }
} }


+ 25
- 0
frappe/core/page/desktop/desktop_list_view.html 查看文件

@@ -0,0 +1,25 @@
<div class="container page-body">
<div class="row">
<div class="layout-main-section">
<div class="page-content desktop-list" style="margin-top: 40px;">
{% for (var i=0, l=desktop_items.length; i < l; i++) {
var module = frappe.get_module(desktop_items[i]);
if (!module || (user_desktop_items.indexOf(module.name)===-1 && !module.force_show)
|| frappe.user.is_module_blocked(module.name)) { continue; }
%}
<div class="desktop-list-item" id="module-icon-{%= module._id %}"
data-name="{%= module.name %}" data-link="{%= module.link %}"
title="{%= module._label %}">
<h4>
<i class="{{ module.icon }} text-muted"
style="font-size: 20px; margin-right: 15px;"></i>
{{ module._label }}
</h4>
<span class="open-notification module-count-{{ module._id }}"
style="display: none;"></span>
</div>
{% } %}
</div>
</div>
</div>
</div>

+ 2
- 2
frappe/core/page/desktop/desktop_module_icon.html 查看文件

@@ -1,8 +1,8 @@
<div id="module-icon-{%= _id %}" class="case-wrapper"
<div class="case-wrapper"
data-name="{%= name %}" data-link="{%= link %}" title="{%= _label %}"> data-name="{%= name %}" data-link="{%= link %}" title="{%= _label %}">
{%= app_icon %} {%= app_icon %}
<div class="case-label text-ellipsis"> <div class="case-label text-ellipsis">
<div class="circle" id="module-count-{%= _id %}" style="display: none;">
<div class="circle module-count-{%= _id %}" style="display: none;">
<span class="circle-text"></span> <span class="circle-text"></span>
</div> </div>
<!-- <span id="module-count-{%= _id %}" class="octicon octicon-primitive-dot circle" style="display: None"></span> --> <!-- <span id="module-count-{%= _id %}" class="octicon octicon-primitive-dot circle" style="display: None"></span> -->


+ 12
- 0
frappe/public/css/desktop.css 查看文件

@@ -161,3 +161,15 @@ body[data-route="desktop"] .navbar-default {
margin-top: 3px; margin-top: 3px;
margin-bottom: 3px; margin-bottom: 3px;
} }
.desktop-list-item {
padding: 10px 15px;
border-bottom: 1px solid #d1d8dd;
cursor: pointer;
}
.desktop-list-item:hover,
.desktop-list-item:focus {
background-color: #f7fafc;
}
.desktop-list-item h4 {
display: inline-block;
}

+ 6
- 5
frappe/public/css/mobile.css 查看文件

@@ -263,12 +263,10 @@ body {
@media (max-width: 991px) { @media (max-width: 991px) {
input[type='checkbox'] { input[type='checkbox'] {
-webkit-appearance: none; -webkit-appearance: none;
width: 18px;
height: 18px;
width: 12px;
height: 12px;
background: white; background: white;
border-radius: 9px;
margin-top: -2px;
margin-bottom: -5px;
border-radius: 6px;
border: 1px solid #d1d8dd; border: 1px solid #d1d8dd;
display: inline-block; display: inline-block;
} }
@@ -329,6 +327,9 @@ body {
.module-item { .module-item {
padding: 7px 0px !important; padding: 7px 0px !important;
} }
.module-item h4 {
font-weight: normal;
}
#navbar-breadcrumbs { #navbar-breadcrumbs {
margin: 0px; margin: 0px;
display: inline-block; display: inline-block;


+ 2
- 2
frappe/public/js/frappe/ui/toolbar/about.js 查看文件

@@ -33,8 +33,8 @@ frappe.ui.misc.about = function() {
var $wrap = $("#about-app-versions").empty(); var $wrap = $("#about-app-versions").empty();
$.each(keys(versions).sort(), function(i, key) { $.each(keys(versions).sort(), function(i, key) {
var v = versions[key]; var v = versions[key];
$($.format('<p><b>{0}:</b> v{1}<br><span class="text-muted">{2}</span></p>',
[v.title, v.version, v.description])).appendTo($wrap);
$($.format('<p><b>{0}:</b> v{1}<br></p>',
[v.title, v.version])).appendTo($wrap);
}); });


frappe.versions = versions; frappe.versions = versions;


+ 18
- 0
frappe/public/less/desktop.less 查看文件

@@ -200,3 +200,21 @@ body[data-route=""] .navbar-default, body[data-route="desktop"] .navbar-default
margin-bottom: 3px; margin-bottom: 3px;
} }
} }

.desktop-list {

}

.desktop-list-item& {
padding: 10px 15px;
border-bottom: 1px solid @border-color;
cursor: pointer;

&:hover, &:focus {
background-color: @panel-bg;
}

h4 {
display: inline-block;
}
}

+ 7
- 5
frappe/public/less/mobile.less 查看文件

@@ -281,12 +281,10 @@
@media(max-width: 991px) { @media(max-width: 991px) {
input[type='checkbox'] { input[type='checkbox'] {
-webkit-appearance:none; -webkit-appearance:none;
width: 18px;
height: 18px;
width: 12px;
height: 12px;
background: white; background: white;
border-radius: 9px;
margin-top: -2px;
margin-bottom: -5px;
border-radius: 6px;
border: 1px solid @border-color; border: 1px solid @border-color;
display: inline-block; display: inline-block;
} }
@@ -363,6 +361,10 @@


.module-item { .module-item {
padding: 7px 0px !important; padding: 7px 0px !important;

h4 {
font-weight: normal;
}
} }


#navbar-breadcrumbs { #navbar-breadcrumbs {


正在加载...
取消
保存