Quellcode durchsuchen

[cleanup] dashboard filters

version-14
Rushabh Mehta vor 8 Jahren
Ursprung
Commit
424f99e6f3
49 geänderte Dateien mit 744 neuen und 372 gelöschten Zeilen
  1. +45
    -43
      frappe/core/doctype/docfield/docfield.json
  2. +1
    -1
      frappe/core/doctype/doctype/boilerplate/controller_list.html
  3. +102
    -30
      frappe/core/doctype/doctype/doctype.json
  4. +1
    -1
      frappe/core/page/desktop/desktop_module_icon.html
  5. +1
    -1
      frappe/core/page/modules_setup/includes/module_icons.html
  6. +8
    -0
      frappe/core/page/modules_setup/modules_setup.html
  7. +6
    -1
      frappe/core/page/modules_setup/modules_setup.js
  8. +2
    -1
      frappe/core/page/modules_setup/modules_setup.py
  9. +36
    -36
      frappe/custom/doctype/custom_field/custom_field.json
  10. +1
    -1
      frappe/custom/doctype/customize_form/customize_form.py
  11. +37
    -35
      frappe/custom/doctype/customize_form_field/customize_form_field.json
  12. +1
    -0
      frappe/data/Framework.sql
  13. +1
    -1
      frappe/desk/page/chat/chat_sidebar.html
  14. +16
    -7
      frappe/desk/reportview.py
  15. +1
    -1
      frappe/print/page/print_format_builder/print_format_builder_sidebar.html
  16. +3
    -3
      frappe/public/build.json
  17. +8
    -9
      frappe/public/css/common.css
  18. +10
    -10
      frappe/public/css/daterangepicker.css
  19. +9
    -9
      frappe/public/css/desk.css
  20. +9
    -0
      frappe/public/css/docs.css
  21. +98
    -61
      frappe/public/css/filter_dashboard.css
  22. +9
    -0
      frappe/public/css/form_grid.css
  23. +1
    -0
      frappe/public/css/mixins.css
  24. +9
    -0
      frappe/public/css/mobile.css
  25. +9
    -0
      frappe/public/css/navbar.css
  26. +9
    -0
      frappe/public/css/page.css
  27. +9
    -0
      frappe/public/css/sidebar.css
  28. +11
    -8
      frappe/public/css/website.css
  29. +1
    -1
      frappe/public/js/frappe/form/control.js
  30. +1
    -1
      frappe/public/js/frappe/form/footer/attachments.js
  31. +1
    -1
      frappe/public/js/frappe/form/footer/timeline_item.html
  32. +1
    -1
      frappe/public/js/frappe/form/grid.js
  33. +1
    -1
      frappe/public/js/frappe/list/image_view_item_row.html
  34. +1
    -1
      frappe/public/js/frappe/list/list_item_main.html
  35. +1
    -1
      frappe/public/js/frappe/list/list_item_main_head.html
  36. +1
    -1
      frappe/public/js/frappe/list/list_item_row.html
  37. +0
    -30
      frappe/public/js/frappe/ui/filters/filter_dash_stat_head.html
  38. +1
    -1
      frappe/public/js/frappe/ui/filters/filter_dashboard.html
  39. +45
    -0
      frappe/public/js/frappe/ui/filters/filter_dashboard_head.html
  40. +1
    -1
      frappe/public/js/frappe/ui/filters/filter_dashboard_value.html
  41. +83
    -48
      frappe/public/js/frappe/ui/filters/filters.js
  42. +6
    -4
      frappe/public/js/frappe/ui/listing.html
  43. +1
    -1
      frappe/public/js/frappe/ui/messages.js
  44. +2
    -2
      frappe/public/js/frappe/ui/page.html
  45. +2
    -2
      frappe/public/js/frappe/ui/toolbar/navbar.html
  46. +1
    -1
      frappe/public/js/frappe/upload.js
  47. +5
    -15
      frappe/public/less/common.less
  48. +119
    -0
      frappe/public/less/filter_dashboard.less
  49. +17
    -0
      frappe/public/less/mixins.less

+ 45
- 43
frappe/core/doctype/docfield/docfield.json Datei anzeigen

@@ -22,8 +22,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "",
"length": 0,
"no_copy": 0,
@@ -48,8 +48,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Label",
"length": 0,
"no_copy": 0,
@@ -79,8 +79,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Type",
"length": 0,
"no_copy": 0,
@@ -108,8 +108,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Name",
"length": 0,
"no_copy": 0,
@@ -136,8 +136,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Mandatory",
"length": 0,
"no_copy": 0,
@@ -168,8 +168,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Precision",
"length": 0,
"no_copy": 0,
@@ -196,8 +196,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Length",
"length": 0,
"no_copy": 0,
@@ -223,8 +223,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Index",
"length": 0,
"no_copy": 0,
@@ -253,8 +253,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "In List View",
"length": 0,
"no_copy": 0,
@@ -275,14 +275,14 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "in_filter_dash",
"fieldname": "in_standard_filter",
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "In Standard Filter",
"length": 0,
"no_copy": 0,
@@ -301,14 +301,15 @@
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "bold",
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Bold",
"length": 0,
"no_copy": 0,
@@ -335,8 +336,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Collapsible",
"length": 255,
"no_copy": 0,
@@ -363,8 +364,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Collapsible Depends On",
"length": 0,
"no_copy": 0,
@@ -390,8 +391,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -416,8 +417,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Options",
"length": 0,
"no_copy": 0,
@@ -444,8 +445,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Default",
"length": 0,
"no_copy": 0,
@@ -472,8 +473,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Permissions",
"length": 0,
"no_copy": 0,
@@ -498,8 +499,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Display Depends On",
"length": 255,
"no_copy": 0,
@@ -526,8 +527,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Hidden",
"length": 0,
"no_copy": 0,
@@ -556,8 +557,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Read Only",
"length": 0,
"no_copy": 0,
@@ -584,8 +585,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Unique",
"length": 0,
"no_copy": 0,
@@ -612,8 +613,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Set Only Once",
"length": 0,
"no_copy": 0,
@@ -638,8 +639,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -664,8 +665,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Perm Level",
"length": 0,
"no_copy": 0,
@@ -695,8 +696,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Ignore User Permissions",
"length": 0,
"no_copy": 0,
@@ -721,8 +722,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Allow on Submit",
"length": 0,
"no_copy": 0,
@@ -751,8 +752,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Report Hide",
"length": 0,
"no_copy": 0,
@@ -782,8 +783,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Ignore XSS Filter",
"length": 0,
"no_copy": 0,
@@ -809,8 +810,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Display",
"length": 0,
"no_copy": 0,
@@ -835,8 +836,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "In Filter",
"length": 0,
"no_copy": 0,
@@ -865,8 +866,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "No Copy",
"length": 0,
"no_copy": 0,
@@ -895,8 +896,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Print Hide",
"length": 0,
"no_copy": 0,
@@ -926,8 +927,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Print Hide If No Value",
"length": 0,
"no_copy": 0,
@@ -953,8 +954,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Print Width",
"length": 0,
"no_copy": 0,
@@ -979,8 +980,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Width",
"length": 0,
"no_copy": 0,
@@ -1012,6 +1013,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Columns",
"length": 0,
"no_copy": 0,
@@ -1037,8 +1039,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -1062,8 +1064,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Description",
"length": 0,
"no_copy": 0,
@@ -1092,8 +1094,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
"no_copy": 0,
"oldfieldname": "oldfieldname",
@@ -1119,8 +1121,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
"no_copy": 0,
"oldfieldname": "oldfieldtype",
@@ -1146,7 +1148,7 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
"modified": "2016-10-18 11:59:07.036627",
"modified": "2016-10-26 07:08:29.980636",
"modified_by": "Administrator",
"module": "Core",
"name": "DocField",
@@ -1156,5 +1158,5 @@
"read_only": 0,
"read_only_onload": 0,
"sort_order": "ASC",
"track_seen": 0
}
"track_seen": 0
}

+ 1
- 1
frappe/core/doctype/doctype/boilerplate/controller_list.html Datei anzeigen

@@ -1,6 +1,6 @@
<div class="row" style="max-height: 30px;">
<div class="col-xs-12">
<div class="text-ellipsis">
<div class="ellipsis">
{{%= list.get_avatar_and_id(doc) %}}

<!-- sample text -->


+ 102
- 30
frappe/core/doctype/doctype/doctype.json Datei anzeigen

@@ -25,6 +25,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "",
"length": 0,
"no_copy": 0,
@@ -51,6 +52,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"in_standard_filter": 1,
"label": "Module",
"length": 0,
"no_copy": 0,
@@ -80,6 +82,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 1,
"label": "Is Child Table",
"length": 0,
"no_copy": 0,
@@ -109,6 +112,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Editable Grid",
"length": 0,
"no_copy": 0,
@@ -136,6 +140,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 1,
"label": "Is Single",
"length": 0,
"no_copy": 0,
@@ -163,6 +168,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -187,6 +193,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Document Type",
"length": 0,
"no_copy": 0,
@@ -203,35 +210,6 @@
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"default": "InnoDB",
"depends_on": "eval:!doc.issingle",
"fieldname": "engine",
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Database Engine",
"length": 0,
"no_copy": 0,
"options": "InnoDB\nMyISAM",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
@@ -244,6 +222,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Icon",
"length": 0,
"no_copy": 0,
@@ -269,6 +248,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Custom?",
"length": 0,
"no_copy": 0,
@@ -294,6 +274,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Beta",
"length": 0,
"no_copy": 0,
@@ -322,6 +303,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Image View",
"length": 0,
"no_copy": 0,
@@ -348,6 +330,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Plugin",
"length": 0,
"no_copy": 0,
@@ -373,6 +356,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Fields",
"length": 0,
"no_copy": 0,
@@ -399,6 +383,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Fields",
"length": 0,
"no_copy": 0,
@@ -427,6 +412,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Naming",
"length": 0,
"no_copy": 0,
@@ -453,6 +439,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Auto Name",
"length": 0,
"no_copy": 0,
@@ -480,6 +467,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Name Case",
"length": 0,
"no_copy": 0,
@@ -508,6 +496,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Description",
"length": 0,
"no_copy": 0,
@@ -536,6 +525,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -562,6 +552,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Title Field",
"length": 0,
"no_copy": 0,
@@ -588,6 +579,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Search Fields",
"length": 0,
"no_copy": 0,
@@ -616,6 +608,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Image Field",
"length": 0,
"no_copy": 0,
@@ -645,6 +638,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Sort Field",
"length": 0,
"no_copy": 0,
@@ -672,6 +666,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Sort Order",
"length": 0,
"no_copy": 0,
@@ -700,6 +695,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Timeline Field",
"length": 0,
"no_copy": 0,
@@ -727,6 +723,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Permission Rules",
"length": 0,
"no_copy": 0,
@@ -753,6 +750,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Permissions",
"length": 0,
"no_copy": 0,
@@ -782,6 +780,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -806,6 +805,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Permissions Settings",
"length": 0,
"no_copy": 0,
@@ -831,6 +831,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "User Cannot Create",
"length": 0,
"no_copy": 0,
@@ -858,6 +859,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "User Cannot Search",
"length": 0,
"no_copy": 0,
@@ -885,6 +887,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Is Submittable",
"length": 0,
"no_copy": 0,
@@ -911,6 +914,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Allow Import",
"length": 0,
"no_copy": 0,
@@ -936,6 +940,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Allow Rename",
"length": 0,
"no_copy": 0,
@@ -963,6 +968,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "In Dialog",
"length": 0,
"no_copy": 0,
@@ -990,6 +996,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Show Print First",
"length": 0,
"no_copy": 0,
@@ -1017,6 +1024,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Max Attachments",
"length": 0,
"no_copy": 0,
@@ -1044,6 +1052,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Other Settings",
"length": 0,
"no_copy": 0,
@@ -1069,6 +1078,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Hide Heading",
"length": 0,
"no_copy": 0,
@@ -1096,6 +1106,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Hide Toolbar",
"length": 0,
"no_copy": 0,
@@ -1123,6 +1134,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Hide Copy",
"length": 0,
"no_copy": 0,
@@ -1150,6 +1162,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Track Seen",
"length": 0,
"no_copy": 0,
@@ -1177,6 +1190,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Quick Entry",
"length": 0,
"no_copy": 0,
@@ -1203,6 +1217,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Default Print Format",
"length": 0,
"no_copy": 0,
@@ -1215,6 +1230,63 @@
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "advanced",
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Advanced",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"default": "InnoDB",
"depends_on": "eval:!doc.issingle",
"fieldname": "engine",
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Database Engine",
"length": 0,
"no_copy": 0,
"options": "InnoDB\nMyISAM",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
}
],
"hide_heading": 0,
@@ -1228,7 +1300,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2016-10-13 01:13:58.133080",
"modified": "2016-10-26 07:10:02.183706",
"modified_by": "Administrator",
"module": "Core",
"name": "DocType",


+ 1
- 1
frappe/core/page/desktop/desktop_module_icon.html Datei anzeigen

@@ -1,7 +1,7 @@
<div class="case-wrapper"
data-name="{{ module_name }}" data-link="{{ link }}" title="{{ _label }}">
{{ app_icon }}
<div class="case-label text-ellipsis">
<div class="case-label ellipsis">
<div class="circle module-count-{{ _id }}" data-doctype="{{ _doctype }}" style="display: none;">
<span class="circle-text"></span>
</div>


+ 1
- 1
frappe/core/page/modules_setup/includes/module_icons.html Datei anzeigen

@@ -3,7 +3,7 @@
<div>
<div class="checkbox">
<label>
<input type="checkbox" data-module="{{ icon.module_name }}"
<input type="checkbox" data-module="{{ icon.module_name }}" class="module-select"
{% if not (icon.hidden if user else icon.blocked) %}checked{% endif %}>
{{ _(icon.label or icon.module_name) }}
</label>


+ 8
- 0
frappe/core/page/modules_setup/modules_setup.html Datei anzeigen

@@ -19,6 +19,14 @@
{% endfor %}
</select>
</div>
<div class="col-sm-3">
<div class="checkbox" style="margin-top: 5px;">
<label>
<input type="checkbox" class="check-all">
{{ _("Select All") }}
</label>
</div>
</div>
</div>
<div class="block-warning hidden">
<div class="alert alert-warning small" style="margin: 0px; margin-top: 15px;">{{ _("Global Settings: Users will only be able to choose checked icons") }}</div>


+ 6
- 1
frappe/core/page/modules_setup/modules_setup.js Datei anzeigen

@@ -37,7 +37,7 @@ frappe.pages['modules_setup'].on_page_load = function(wrapper) {
// save action
page.set_primary_action('Save', function() {
var hidden_list = [];
page.wrapper.find('input[type="checkbox"]').each(function() {
page.wrapper.find('input.module-select').each(function() {
if(!$(this).is(":checked")) {
hidden_list.push($(this).attr('data-module'));
}
@@ -64,6 +64,11 @@ frappe.pages['modules_setup'].on_page_load = function(wrapper) {
frappe.set_route('applications');
});
}

// setup select all
$('.check-all').on('click', function() {
$(wrapper).find('input.module-select').prop('checked', $(this).prop('checked'));
});
}

frappe.pages['modules_setup'].on_page_show = function(wrapper) {


+ 2
- 1
frappe/core/page/modules_setup/modules_setup.py Datei anzeigen

@@ -5,6 +5,7 @@ from __future__ import unicode_literals
import frappe
from frappe.desk.doctype.desktop_icon.desktop_icon import set_hidden_list, get_desktop_icons
from frappe.utils.user import UserPermissions
from frappe import _

@frappe.whitelist()
def update(hidden_list, user=None):
@@ -13,7 +14,7 @@ def update(hidden_list, user=None):
frappe.only_for('System Manager')

set_hidden_list(hidden_list, user)
frappe.msgprint(frappe._('Updated'))
frappe.msgprint(frappe._('Updated'), indicator='green', title=_('Success'), alert=True)

def get_context(context):
context.icons = get_user_icons(frappe.session.user)


+ 36
- 36
frappe/custom/doctype/custom_field/custom_field.json Datei anzeigen

@@ -20,7 +20,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 1,
"label": "Document",
"length": 0,
@@ -48,7 +48,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"label": "Label",
"length": 0,
@@ -75,7 +75,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"label": "Label Help",
"length": 0,
@@ -101,7 +101,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 1,
"label": "Fieldname",
"length": 0,
@@ -130,7 +130,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"label": "Insert After",
"length": 0,
@@ -157,7 +157,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
@@ -183,7 +183,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 1,
"label": "Field Type",
"length": 0,
@@ -213,7 +213,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"label": "Precision",
"length": 0,
@@ -240,7 +240,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 1,
"label": "Options",
"length": 0,
@@ -267,7 +267,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"label": "Options Help",
"length": 0,
@@ -293,7 +293,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
@@ -319,7 +319,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"label": "Collapsible",
"length": 0,
@@ -346,7 +346,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"label": "Collapsible Depends On",
"length": 0,
@@ -372,7 +372,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"label": "Default Value",
"length": 0,
@@ -399,7 +399,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"label": "Depends On",
"length": 255,
@@ -424,7 +424,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"label": "Field Description",
"length": 0,
@@ -454,7 +454,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"label": "Permission Level",
"length": 0,
@@ -481,7 +481,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"label": "Width",
"length": 0,
@@ -508,7 +508,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"label": "",
"length": 0,
@@ -536,7 +536,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 1,
"label": "Is Mandatory Field",
"length": 0,
@@ -563,7 +563,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"label": "Unique",
"length": 0,
@@ -589,7 +589,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"label": "Read Only",
"length": 0,
@@ -615,7 +615,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"label": "Ignore User Permissions",
"length": 0,
@@ -640,7 +640,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"label": "Hidden",
"length": 0,
@@ -665,7 +665,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"label": "Print Hide",
"length": 0,
@@ -693,7 +693,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"label": "Print Hide If No Value",
"length": 0,
@@ -719,7 +719,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"label": "Print Width",
"length": 0,
@@ -744,7 +744,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"label": "No Copy",
"length": 0,
@@ -771,7 +771,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"label": "Allow on Submit",
"length": 0,
@@ -798,7 +798,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"label": "In Report Filter",
"length": 0,
@@ -825,7 +825,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"label": "In List View",
"length": 0,
@@ -844,13 +844,13 @@
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "in_filter_dash",
"fieldname": "in_standard_filter",
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"label": "In Standard Filter",
"length": 0,
@@ -876,7 +876,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"label": "Report Hide",
"length": 0,
@@ -903,7 +903,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"label": "Index",
"length": 0,
@@ -929,7 +929,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_standard_filter": 0,
"in_list_view": 0,
"label": "Ignore XSS Filter",
"length": 0,


+ 1
- 1
frappe/custom/doctype/customize_form/customize_form.py Datei anzeigen

@@ -43,7 +43,7 @@ docfield_properties = {
'ignore_user_permissions': 'Check',
'in_filter': 'Check',
'in_list_view': 'Check',
'in_filter_dash': 'Check',
'in_standard_filter': 'Check',
'hidden': 'Check',
'collapsible': 'Check',
'collapsible_depends_on': 'Data',


+ 37
- 35
frappe/custom/doctype/customize_form_field/customize_form_field.json Datei anzeigen

@@ -22,8 +22,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Label and Type",
"length": 0,
"no_copy": 0,
@@ -49,8 +49,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Label",
"length": 0,
"no_copy": 0,
@@ -78,8 +78,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Type",
"length": 0,
"no_copy": 0,
@@ -107,8 +107,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Name",
"length": 0,
"no_copy": 0,
@@ -135,8 +135,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Mandatory",
"length": 0,
"no_copy": 0,
@@ -165,8 +165,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Unique",
"length": 0,
"no_copy": 0,
@@ -192,8 +192,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "In List View",
"length": 0,
"no_copy": 0,
@@ -212,14 +212,14 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "in_filter_dash",
"fieldname": "in_standard_filter",
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "In Standard Filter",
"length": 0,
"no_copy": 0,
@@ -238,14 +238,15 @@
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "column_break_7",
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -272,8 +273,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Precision",
"length": 0,
"no_copy": 0,
@@ -301,8 +302,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Length",
"length": 0,
"no_copy": 0,
@@ -329,8 +330,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Options",
"length": 0,
"no_copy": 0,
@@ -357,8 +358,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Permissions",
"length": 0,
"no_copy": 0,
@@ -385,8 +386,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Depends On",
"length": 0,
"no_copy": 0,
@@ -414,8 +415,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Perm Level",
"length": 0,
"no_copy": 0,
@@ -442,8 +443,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Hidden",
"length": 0,
"no_copy": 0,
@@ -472,8 +473,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Read Only",
"length": 0,
"no_copy": 0,
@@ -500,8 +501,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Collapsible",
"length": 0,
"no_copy": 0,
@@ -528,8 +529,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Collapsible Depends On",
"length": 0,
"no_copy": 0,
@@ -555,8 +556,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -581,8 +582,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Ignore User Permissions",
"length": 0,
"no_copy": 0,
@@ -607,8 +608,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Allow on Submit",
"length": 0,
"no_copy": 0,
@@ -635,8 +636,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Report Hide",
"length": 0,
"no_copy": 0,
@@ -663,8 +664,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Display",
"length": 0,
"no_copy": 0,
@@ -690,8 +691,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Default",
"length": 0,
"no_copy": 0,
@@ -718,8 +719,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "In Filter",
"length": 0,
"no_copy": 0,
@@ -748,8 +749,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -774,8 +775,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Description",
"length": 0,
"no_copy": 0,
@@ -804,8 +805,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Print Hide",
"length": 0,
"no_copy": 0,
@@ -833,8 +834,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Print Hide If No Value",
"length": 0,
"no_copy": 0,
@@ -861,8 +862,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Print Width",
"length": 0,
"no_copy": 0,
@@ -892,6 +893,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Columns",
"length": 0,
"no_copy": 0,
@@ -917,8 +919,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Width",
"length": 0,
"no_copy": 0,
@@ -947,8 +949,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_filter_dash": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Is Custom Field",
"length": 0,
"no_copy": 0,
@@ -974,7 +976,7 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
"modified": "2016-10-18 12:03:07.126339",
"modified": "2016-10-26 07:11:21.869517",
"modified_by": "Administrator",
"module": "Custom",
"name": "Customize Form Field",


+ 1
- 0
frappe/data/Framework.sql Datei anzeigen

@@ -152,6 +152,7 @@ CREATE TABLE `tabDocType` (
`_user_tags` varchar(255) DEFAULT NULL,
`custom` int(1) NOT NULL DEFAULT 0,
`beta` int(1) NOT NULL DEFAULT 0,
`in_standard_filter` int(1) NOT NULL DEFAULT 0,
`image_view` int(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`name`),
KEY `parent` (`parent`)


+ 1
- 1
frappe/desk/page/chat/chat_sidebar.html Datei anzeigen

@@ -1,7 +1,7 @@
<ul class="nav nav-pills nav-stacked">
{% for (var i=0, l= data.length; i < l; i++) { var contact = data[i]; %}
<li data-user="{%= contact.name %}" class="h6 module-sidebar-item">
<a class="messages-sidebar-link text-ellipsis">
<a class="messages-sidebar-link ellipsis">
<span class="indicator {% if(contact.has_session > 0) { %} green {% } else { %} grey {% } %}">
<span class="avatar avatar-small hidden-sm hidden-md hidden-lg" title="{%= frappe.user.full_name(contact.name) %} ">
<img class="media-object" src="{%= frappe.user.image(contact.name) %}">


+ 16
- 7
frappe/desk/reportview.py Datei anzeigen

@@ -159,21 +159,23 @@ def get_stats(stats, doctype, filters=[]):
columns = frappe.db.get_table_columns(doctype)
for tag in tags:
if not tag in columns: continue
tagcount = execute(doctype, fields=[tag, "count(*)"],
tagcount = frappe.get_all(doctype, fields=[tag, "count(*)"],
#filters=["ifnull(`%s`,'')!=''" % tag], group_by=tag, as_list=True)
filters = filters + ["ifnull(`%s`,'')!=''" % tag], group_by = tag, as_list = True)

if tag=='_user_tags':
stats[tag] = scrub_user_tags(tagcount)
stats[tag].append(["No Tags",execute(doctype, fields=[tag, "count(*)"], filters=filters +["({0} = ',' or {0} is null)".format(tag)], as_list=True)[0][1]])
stats[tag].append(["No Tags", frappe.get_all(doctype,
fields=[tag, "count(*)"],
filters=filters +["({0} = ',' or {0} is null)".format(tag)], as_list=True)[0][1]])
else:
stats[tag] = tagcount

return stats

@frappe.whitelist()
def get_dash(stats, doctype, filters=[]):
"""get tag info"""
def get_filter_dashboard_data(stats, doctype, filters=[]):
"""get tags info"""
import json
tags = json.loads(stats)
if filters:
@@ -185,13 +187,20 @@ def get_dash(stats, doctype, filters=[]):
if not tag["name"] in columns: continue
tagcount = []
if tag["type"] not in ['Date', 'Datetime']:
tagcount = execute(doctype, fields=[tag["name"], "count(*)"],
filters = filters + ["ifnull(`%s`,'')!=''" % tag["name"]], group_by = tag["name"], as_list = True)
tagcount = frappe.get_all(doctype,
fields=[tag["name"], "count(*)"],
filters = filters + ["ifnull(`%s`,'')!=''" % tag["name"]],
group_by = tag["name"],
limit = 10,
as_list = True)

if tag["type"] not in ['Check','Select','Date','Datetime']:
stats[tag["name"]] = list(tagcount)
if stats[tag["name"]]:
data =["No Data",execute(doctype, fields=[tag["name"], "count(*)"], filters=filters + ["({0} = '' or {0} is null)".format(tag["name"])], as_list=True)[0][1]]
data =["No Data", frappe.get_all(doctype,
fields=[tag["name"], "count(*)"],
filters=filters + ["({0} = '' or {0} is null)".format(tag["name"])],
as_list=True)[0][1]]
if data and data[1]!=0:

stats[tag["name"]].append(data)


+ 1
- 1
frappe/print/page/print_format_builder/print_format_builder_sidebar.html Datei anzeigen

@@ -5,7 +5,7 @@
<div class="print-format-builder-fields">
{% for (var i=0, l=fields.length; i < l; i++) { var f = fields[i]; %}
{% if(!in_list(["Section Break", "Column Break", "Fold"], f.fieldtype)) { %}
<div class="print-format-builder-field-placeholder text-ellipsis"
<div class="print-format-builder-field-placeholder ellipsis"
data-fieldname="{%= f.fieldname %}">
<span class="btn btn-xs field-label
{%= (f.fieldtype==="Custom HTML") ? "btn-info" : "btn-default" %}"


+ 3
- 3
frappe/public/build.json Datei anzeigen

@@ -203,9 +203,9 @@
"public/js/frappe/model/indicator.js",
"public/js/frappe/ui/filters/filters.js",
"public/js/frappe/ui/filters/edit_filter.html",
"public/js/frappe/ui/filters/filter_dash.html",
"public/js/frappe/ui/filters/filter_dash_stats.html",
"public/js/frappe/ui/filters/filter_dash_stat_head.html",
"public/js/frappe/ui/filters/filter_dashboard.html",
"public/js/frappe/ui/filters/filter_dashboard_value.html",
"public/js/frappe/ui/filters/filter_dashboard_head.html",
"public/js/lib/daterangepicker.js",
"public/js/frappe/ui/tags.js",
"public/js/frappe/ui/like.js",


+ 8
- 9
frappe/public/css/common.css Datei anzeigen

@@ -1,3 +1,4 @@
/* the element that this class is applied to, should have a max width for this to work*/
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
}
@@ -70,15 +71,6 @@ a.text-extra-muted {
.underline {
text-decoration: underline;
}
/* the element that this class is applied to, should have a max width for this to work*/
.text-ellipsis,
.ellipsis {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 100%;
vertical-align: middle;
}
.inline-block {
display: inline-block;
}
@@ -238,3 +230,10 @@ a.no-decoration:active {
letter-spacing: 0.4px;
color: #8D99A6;
}
.ellipsis {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 100%;
vertical-align: middle;
}

+ 10
- 10
frappe/public/css/daterangepicker.css Datei anzeigen

@@ -90,7 +90,7 @@
white-space: nowrap;
cursor: pointer; }
.daterangepicker td.available:hover, .daterangepicker th.available:hover {
background-color: #eee;
background-color: #F0F4F7;
border-color: transparent;
color: inherit; }
.daterangepicker td.week, .daterangepicker th.week {
@@ -112,7 +112,7 @@
.daterangepicker td.start-date.end-date {
border-radius: 4px; }
.daterangepicker td.active, .daterangepicker td.active:hover {
background-color: #357ebd;
background-color: #5E64FF;
border-color: transparent;
color: #fff; }
.daterangepicker th.month {
@@ -147,7 +147,7 @@
padding: 0 6px 0 28px;
width: 100%; }
.daterangepicker .input-mini.active {
border: 1px solid #08c;
border: 1px solid #36414C;
border-radius: 4px; }
.daterangepicker .daterangepicker_input {
position: relative; }
@@ -183,20 +183,20 @@
width: 100%; }
.ranges li {
font-size: 13px;
background: #f5f5f5;
border: 1px solid #f5f5f5;
background: #F7FAFC;
border: 1px solid #F7FAFC;
border-radius: 4px;
color: #08c;
color: #36414C;
padding: 3px 12px;
margin-bottom: 8px;
cursor: pointer; }
.ranges li:hover {
background: #08c;
border: 1px solid #08c;
background: #36414C;
border: 1px solid #36414C;
color: #fff; }
.ranges li.active {
background: #08c;
border: 1px solid #08c;
background: #36414C;
border: 1px solid #36414C;
color: #fff; }

/* Larger Screen Styling */


+ 9
- 9
frappe/public/css/desk.css Datei anzeigen

@@ -1,3 +1,12 @@
/* the element that this class is applied to, should have a max width for this to work*/
.text-ellipsis,
.ellipsis {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 100%;
vertical-align: middle;
}
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
}
@@ -70,15 +79,6 @@ a.text-extra-muted {
.underline {
text-decoration: underline;
}
/* the element that this class is applied to, should have a max width for this to work*/
.text-ellipsis,
.ellipsis {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 100%;
vertical-align: middle;
}
.inline-block {
display: inline-block;
}


+ 9
- 0
frappe/public/css/docs.css Datei anzeigen

@@ -1,3 +1,12 @@
/* the element that this class is applied to, should have a max width for this to work*/
.text-ellipsis,
.ellipsis {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 100%;
vertical-align: middle;
}
.navbar .dropdown-toggle {
padding-top: 8px;
padding-bottom: 8px;


+ 98
- 61
frappe/public/css/filter_dashboard.css Datei anzeigen

@@ -1,61 +1,98 @@
.date-range-picker{
font-size:85%;
}
.list-filter-dashboard{
height:204px;
overflow-x:auto;
}
.filter-label{
margin:0px;
font-weight: bold;
}
.filter-dashboard-items{
height: 187px;
}
.filter-dash-item{
width:180px;
padding-left:5px;
padding-right:5px;
float:left;
height:187px;
border-right:1px solid #d1d8dd;
}
.filter-dash-item:after{
/*top:-10px;*/
}
.filter-sort{
font-size:1.5em;
}
.filter-sort-item{
padding: 5px;
}
.filter-sort-item:hover{
color: #262626;
text-decoration: none;
background-color: #f0f4f7;
}
.filter-stat{
overflow-y:scroll;
overflow-x:hidden;
height: 172px;
margin:0px;
}
.selected{
vertical-align: 10%;
font-size: 1.2em;
}
.filter-sort-item>label{
float:right;
}
.filter-stat-link>.badge{
position: absolute;
float:right;
}
.filter-stat-link>.stat{
width:135px;
white-space: nowrap;
overflow: hidden;
}
.filter-dash-controls>.filter-label{
padding-bottom: 5px;
}
/* the element that this class is applied to, should have a max width for this to work*/
.date-range-picker {
font-size: 85%;
}
.filter-dashboard-wrapper {
display: none;
padding-bottom: 0px;
}
.list-filter-dashboard {
height: 202px;
margin-top: -10px;
margin-left: -15px;
margin-right: -14px;
overflow-x: scroll;
overflow-y: hidden;
}
.filter-header {
border-bottom: 1px solid #d1d8dd;
background-color: #F7FAFC;
padding: 3px 0px;
}
.filter-header .search-dropdown {
margin-top: -23px;
}
.filter-header .search-dropdown .octicon {
font-size: 14px;
}
.filter-header .sort-dropdown {
margin-top: -20px;
}
.filter-label {
margin: 0px;
padding: 5px;
color: #8D99A6;
}
.filter-dashboard-items {
height: 187px;
margin-right: -2px;
}
.filter-dash-item {
width: 180px;
float: left;
height: 187px;
border-right: 1px solid #d1d8dd;
}
.filter-input {
padding: 5px;
padding-top: 10px;
}
.fitler-item-value {
padding: 0px 5px;
}
.filter-dash-item:after {
/*top:-10px;*/
}
.filter-sort {
font-size: 1.5em;
}
.filter-sort-item a {
padding: 8px !important;
}
.filter-sort-item:hover {
color: #212a33;
text-decoration: none;
background-color: #F0F4F7;
}
.filter-stat {
overflow-y: auto;
overflow-x: hidden;
height: 158px;
margin: 0px;
}
.selected {
vertical-align: 10%;
font-size: 1.2em;
}
.filter-sort-item > label {
float: right;
}
.filter-stat-link > .badge {
position: absolute;
float: right;
margin-right: 5px;
margin-top: 2px;
font-size: 11px;
}
.filter-stat-link > .stat {
width: 130px;
display: inline-block;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 100%;
vertical-align: middle;
}
.filter-dash-controls > .filter-label {
padding-bottom: 5px;
}

+ 9
- 0
frappe/public/css/form_grid.css Datei anzeigen

@@ -1,3 +1,12 @@
/* the element that this class is applied to, should have a max width for this to work*/
.text-ellipsis,
.ellipsis {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 100%;
vertical-align: middle;
}
.form-grid {
border: 1px solid #d1d8dd;
border-radius: 3px;


+ 1
- 0
frappe/public/css/mixins.css Datei anzeigen

@@ -0,0 +1 @@
/* the element that this class is applied to, should have a max width for this to work*/

+ 9
- 0
frappe/public/css/mobile.css Datei anzeigen

@@ -1,3 +1,12 @@
/* the element that this class is applied to, should have a max width for this to work*/
.text-ellipsis,
.ellipsis {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 100%;
vertical-align: middle;
}
html {
min-height: 100%;
}


+ 9
- 0
frappe/public/css/navbar.css Datei anzeigen

@@ -1,3 +1,12 @@
/* the element that this class is applied to, should have a max width for this to work*/
.text-ellipsis,
.ellipsis {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 100%;
vertical-align: middle;
}
.navbar .dropdown-toggle {
padding-top: 8px;
padding-bottom: 8px;


+ 9
- 0
frappe/public/css/page.css Datei anzeigen

@@ -1,3 +1,12 @@
/* the element that this class is applied to, should have a max width for this to work*/
.text-ellipsis,
.ellipsis {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 100%;
vertical-align: middle;
}
.page-container {
margin-top: 40px;
}


+ 9
- 0
frappe/public/css/sidebar.css Datei anzeigen

@@ -1,3 +1,12 @@
/* the element that this class is applied to, should have a max width for this to work*/
.text-ellipsis,
.ellipsis {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 100%;
vertical-align: middle;
}
html {
min-height: 100%;
}


+ 11
- 8
frappe/public/css/website.css Datei anzeigen

@@ -1,3 +1,12 @@
/* the element that this class is applied to, should have a max width for this to work*/
.text-ellipsis,
.ellipsis {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 100%;
vertical-align: middle;
}
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
}
@@ -67,14 +76,8 @@ a.text-muted,
a.text-extra-muted {
text-decoration: none;
}
/* the element that this class is applied to, should have a max width for this to work*/
.text-ellipsis,
.ellipsis {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 100%;
vertical-align: middle;
.underline {
text-decoration: underline;
}
.inline-block {
display: inline-block;


+ 1
- 1
frappe/public/js/frappe/form/control.js Datei anzeigen

@@ -819,7 +819,7 @@ frappe.ui.form.ControlAttach = frappe.ui.form.ControlData.extend({
me.onclick();
});
this.$value = $('<div style="margin-top: 5px;">\
<div class="text-ellipsis" style="display: inline-block; width: 90%;">\
<div class="ellipsis" style="display: inline-block; width: 90%;">\
<i class="icon-paper-clip"></i> \
<a class="attached-file" target="_blank"></a>\
</div>\


+ 1
- 1
frappe/public/js/frappe/form/footer/attachments.js Datei anzeigen

@@ -66,7 +66,7 @@ frappe.ui.form.Attachments = Class.extend({
<a class="close" data-owner="%(owner)s">&times;</a>\
%(lock_icon)s\
<a href="%(file_url)s" target="_blank" title="%(file_name)s" \
class="text-ellipsis" style="max-width: calc(100% - 43px);">\
class="ellipsis" style="max-width: calc(100% - 43px);">\
<span>%(file_name)s</span></a>\
</li>', {
lock_icon: attachment.is_private ? '<i class="icon icon-lock icon-fixed-width text-warning"></i> ': "",


+ 1
- 1
frappe/public/js/frappe/form/footer/timeline_item.html Datei anzeigen

@@ -130,7 +130,7 @@
{% if(data.attachments && data.attachments.length) { %}
<div style="margin: 10px 0px">
{% $.each(data.attachments, function(i, a) { %}
<div class="text-ellipsis">
<div class="ellipsis">
<a href="{%= encodeURI(a.file_url).replace(/#/g, \'%23\') %}" class="text-muted small" target="_blank">
<i class="icon-paperclip"></i>
{%= a.file_url.split("/").slice(-1)[0] %}


+ 1
- 1
frappe/public/js/frappe/form/grid.js Datei anzeigen

@@ -748,7 +748,7 @@ frappe.ui.form.GridRow = Class.extend({
});

$col.field_area = $('<div class="field-area"></div>').appendTo($col).toggle(false);
$col.static_area = $('<div class="static-area text-ellipsis"></div>').appendTo($col).html(txt);
$col.static_area = $('<div class="static-area ellipsis"></div>').appendTo($col).html(txt);
$col.df = df;
$col.column_index = ci;



+ 1
- 1
frappe/public/js/frappe/list/image_view_item_row.html Datei anzeigen

@@ -1,4 +1,4 @@
<div class="col-xs-6 col-sm-4 col-md-3 doclist-row has-checkbox image-view text-ellipsis">
<div class="col-xs-6 col-sm-4 col-md-3 doclist-row has-checkbox image-view ellipsis">
<div class="row">
<div class="col-xs-12 image-view-col">
{%= subject %}


+ 1
- 1
frappe/public/js/frappe/list/list_item_main.html Datei anzeigen

@@ -2,7 +2,7 @@
{% var total_cols=0; for (var i=0, l=columns.length; i < l; i++ ) {
var col = columns[i], value=data[col.fieldname]; total_cols += parseInt(col.colspan); %}
{% if (total_cols <= 12) { %}
<div class="col-sm-{%= col.colspan %} list-col text-ellipsis
<div class="col-sm-{%= col.colspan %} list-col ellipsis
{% if(col.type==="Subject") {
if (right_column) { %}
col-xs-9


+ 1
- 1
frappe/public/js/frappe/list/list_item_main_head.html Datei anzeigen

@@ -2,7 +2,7 @@
{% var total_cols=0; for (var i=0, l=columns.length; i < l; i++ ) {
var col = columns[i]; total_cols += parseInt(col.colspan); %}
{% if (total_cols <= 12) { %}
<div class="col-sm-{%= col.colspan %} list-col text-ellipsis h6 text-muted
<div class="col-sm-{%= col.colspan %} list-col ellipsis h6 text-muted
{% if(col.type==="Subject") {
if (right_column) { %}
col-xs-9


+ 1
- 1
frappe/public/js/frappe/list/list_item_row.html Datei anzeigen

@@ -13,7 +13,7 @@
{% if (list.meta.title_field && !list.settings.hide_name_column) {
var is_different = data.name !== data[list.meta.title_field];
%}
<div class="list-col col-sm-2 hidden-xs text-right text-ellipsis list-row-id">
<div class="list-col col-sm-2 hidden-xs text-right ellipsis list-row-id">
{% if (is_different) { %}
<a class="text-muted list-value" href="#Form/{%= data._doctype_encoded %}/{%= data._name_encoded %}">
{%= data.name %}</a>


+ 0
- 30
frappe/public/js/frappe/ui/filters/filter_dash_stat_head.html Datei anzeigen

@@ -1,30 +0,0 @@
<div class="filter-dash-item" style="">
<h6 class="h6 filter-label" data-name="{%= label %}">{%= label %}
{% if(type==="Date" || type==="Datetime"){ %}
</h6>
<!--<i class="icon-calendar date-range-picker " data-name="{%= field %}" style="font-size:400%;padding: 20px"/>-->
<input type="text" autocomplete="off" class="input-with-feedback form-control date-range-picker {%=field%}-filter" style="margin-top:20px;"data-name="{%= field %}">
{% } else { %}
<span class="dropdown search-dropdown hide">
<i class="dropdown-toggle icon-search " data-toggle="dropdown" style="padding-left:5px"/>
<div class="dropdown-menu">
<form >
<input class="search-dashboard" type="text" autocomplete="off" class="input-with-feedback form-control"style="width:200px;"/>
</form>
</div>
</span>
<span class="dropdown">
<i class="pull-right dropdown-toggle filter-sort-active icon-sort-by-attributes-alt" style="padding-right: 15px" data-toggle="dropdown"/>
<ul class="dropdown-menu">
<li class="filter-sort-item"><i class="filter-sort icon-sort-by-alphabet"/><label>Alphabetically Ascending</label></li>
<li class="filter-sort-item"><i class="filter-sort icon-sort-by-alphabet-alt" /><label>Alphabetically Descending</label></li>
<li class="filter-sort-item"><i class="filter-sort icon-sort-by-attributes"/><label>Numerically Ascending</label></li>
<li class="filter-sort-item"><i class="filter-sort icon-sort-by-attributes-alt"/><label>Numerically Descending</label></li>
</ul>
</span>
</h6>
<ul class="list-unstyled sidebar-menu filter-stat" data-name="{%= label %}">

</ul>
{% } %}
</div>

frappe/public/js/frappe/ui/filters/filter_dash.html → frappe/public/js/frappe/ui/filters/filter_dashboard.html Datei anzeigen

@@ -1,5 +1,5 @@
<div class="filter_area">
<div class="filter-box dashboard-box" style="display: none;padding-left:20px;">
<div class="filter-box filter-dashboard-wrapper">
<div class="list-filter-dashboard row">
<div class="filter-dashboard-items">


+ 45
- 0
frappe/public/js/frappe/ui/filters/filter_dashboard_head.html Datei anzeigen

@@ -0,0 +1,45 @@
<div class="filter-dash-item" style="">
<div class="filter-header">
<h6 class="h6 filter-label" data-name="{{ label }}">{{ label }}</h6>
{% if (type!=="Date" && type!=="Datetime") { %}
<div class="dropdown search-dropdown hide pull-right"
style="margin-right: 25px;">
<i class="dropdown-toggle octicon octicon-search text-muted"
data-toggle="dropdown"></i>
<div class="dropdown-menu" style="min-width: 120px !important;">
<form >
<input class="search-dashboard" type="text" autocomplete="off" class="input-with-feedback form-control" style="min-width: 120px;" />
</form>
</div>
</div>
<div class="dropdown sort-dropdown pull-right" style="margin-right: 5px;">
<i class="pull-right dropdown-toggle
filter-sort-active octicon octicon-gear text-muted"
data-name="{{ label }}" data-sort-by="number" data-order="desc"
data-toggle="dropdown"/>
<ul class="dropdown-menu">
<li class="filter-sort-item" data-sort-by="alphabet" data-order="asc">
<a>Alphabetically Ascending</a></li>
<li class="filter-sort-item" data-sort-by="alphabet" data-order="desc">
<a>Alphabetically Descending</a></li>
<li class="filter-sort-item" data-sort-by="number" data-order="asc">
<a>Numerically Ascending</a></li>
<li class="filter-sort-item" data-sort-by="number" data-order="desc">
<a>Numerically Descending</a></li>
</ul>
</div>
{% } %}
</div>

{% if(type==="Date" || type==="Datetime") { %}
<div class="filter-input">
<input type="text" autocomplete="off" class="input-with-feedback
form-control date-range-picker {{ field }}-filter"
data-name="{{ field }}">
</div>
{% } else { %}
<ul class="list-unstyled sidebar-menu filter-stat" data-name="{{ label }}">

</ul>
{% } %}
</div>

frappe/public/js/frappe/ui/filters/filter_dash_stats.html → frappe/public/js/frappe/ui/filters/filter_dashboard_value.html Datei anzeigen

@@ -6,7 +6,7 @@
var stat_label = stat[i][0];
var stat_count = stat[i][1];
%}
<li style="width:152px;">
<li class="fitler-item-value">
<a class="filter-stat-link badge-hover small" data-label="{%= stat_label %}" data-field="{%= field %}" title="{%= stat_label %} ">
<span class="stat">{%= __(labels.length>0? labels[i] : stat_label) %}</span>
<span class="badge">{%= stat_count %}</span>

+ 83
- 48
frappe/public/js/frappe/ui/filters/filters.js Datei anzeigen

@@ -7,52 +7,71 @@ frappe.ui.FilterList = Class.extend({
this.filters = [];
this.wrapper = this.$parent;
this.stats = [];
this.make_dash();
this.make();
this.set_events();
},
make_dash: function() {
make: function() {
var me = this;
$(frappe.render_template("filter_dash", {})).appendTo(this.wrapper.find('.show_filters'));

$(frappe.render_template("filter_dashboard", {})).appendTo(this.wrapper.find('.show_filters'));

//show filter dashboard
this.wrapper.find('.show-filter-dashboard').click(function() {
$(this).closest('.show_filters').find('.dashboard-box').toggle();
$(this).prop('title',($(this).prop('title')===__("Hide Standard Filters"))?__("Show Standard Filters") : __("Hide Standard Filters"))
this.filters_visible = false;
this.wrapper.find('.show-filters').click(function() {
var wrapper = $(me.wrapper).find('.filter-dashboard-wrapper');
if(!me.filters_visible) {
wrapper.toggle(true);
$(this).text(__("Hide Filters"));
me.filters_visible = true;
} else {
wrapper.toggle(false);
$(this).text(__("Show Filters"));
me.filters_visible = false;
}
});

//add stats
$.each(frappe.meta.docfield_map[this.doctype], function(i,d) {
if (d.in_filter_dash&&frappe.perm.has_perm(me.doctype, d.permlevel, "read")) {
if (d.in_standard_filter && frappe.perm.has_perm(me.doctype, d.permlevel, "read")) {
if (d.fieldtype != 'Table') {
me.stats.push({name:d.fieldname,label:d.label,type:d.fieldtype});
}
}
});

me.stats = me.stats.concat([{name:'creation',label:'Created On',type:'Datetime'},
{name:'modified',label:'Last Modified On',type:'Datetime'},
{name:'owner',label:'Created By',type:'Data'},
{name:'modified_by',label:'Last Modified By',type:'Data'},
{name:'docstatus',label:'Document Status',type:'Data'}]);
me.stats = me.stats.concat([
{name:'creation', label:'Created On', type:'Datetime'},
{name:'modified', label:'Last Modified On', type:'Datetime'},
{name:'owner', label:'Created By', type:'Data'},
{name:'modified_by', label:'Last Modified By', type:'Data'},
]);

if(frappe.model.is_submittable(me.doctype)) {
me.stats.push({name:'docstatus', label:'Document Status', type:'Data'});
}

$.each(me.stats, function (i, v) {
me.render_dash_headers(v);
me.render_dashboard_headers(v);
});

me.reload_stats()
},
render_dash_headers: function(field){
render_dashboard_headers: function(field){
var me = this;
var context = {
field: field.name,
label: __(field.label),
type:field.type
};
var sidebar_stat = $(frappe.render_template("filter_dash_stat_head", context))
var sidebar_stat = $(frappe.render_template("filter_dashboard_head", context))
.appendTo(this.wrapper.find(".filter-dashboard-items"));

//adjust width for horizontal scrolling
var width = (me.stats.length)*180+30
var width = (me.stats.length)*180;
this.wrapper.find(".filter-dashboard-items").css("width",width);
},
reload_stats: function(){
if(this.fresh ) {
if(this.fresh) {
return;
}
// set a fresh so that multiple refreshes do not happen
@@ -66,7 +85,7 @@ frappe.ui.FilterList = Class.extend({
var me = this
return frappe.call({
type: "GET",
method: 'frappe.desk.reportview.get_dash',
method: 'frappe.desk.reportview.get_filter_dashboard_data',
args: {
stats: me.stats,
doctype: me.doctype,
@@ -87,28 +106,36 @@ frappe.ui.FilterList = Class.extend({
if (['Date', 'Datetime'].indexOf(field.type)!=-1) {
return
}
//sort based on icon
var type = /icon-\S+/g.exec(this.wrapper.find(".filter-label[data-name='"+__(field.label)+"']").find(".filter-sort-active").attr('class'));
if(type[0].indexOf("alphabet")>0){
stat = (stat || []).sort(function(a, b) {return a[0].toString().toLowerCase().localeCompare(b[0].toString().toLowerCase());});

}else{
var active = this.wrapper.find(".filter-sort-active[data-name='"+__(field.label)+"']");

// sort filters
if(active.attr('data-sort-by')==='alphabet') {
stat = (stat || []).sort(function(a, b) {return a[0].toString().toLowerCase().localeCompare(b[0].toString().toLowerCase());});
} else {
stat = (stat || []).sort(function(a, b) { return a[1] - b[1] });
}
stat = type[0].indexOf("-alt")>0? stat.reverse():stat;

if(active.attr('data-order')==='desc') {
stat = stat.reverse();
}

//check formatting
var options = []
var df = frappe.meta.has_field(me.doctype,field.name)
var labels =[]
if(df && df.fieldtype=='Check') {
options = [{value: 0, label: 'No'},
{value: 1, label: 'Yes'}]
}else if(field.name=="docstatus") {
labels.length = stat.length
options = [{value: 0, label: "Draft"},
{value: 1, label: "Submitted"},
{value: 2, label: "Cancelled"}]
options = [
{value: 0, label: 'No'},
{value: 1, label: 'Yes'}
];
} else if(field.name=="docstatus") {
labels.length = stat.length;
options = [
{value: 0, label: "Draft"},
{value: 1, label: "Submitted"},
{value: 2, label: "Cancelled"}
];
}

if(options.length>0) {
@@ -131,8 +158,8 @@ frappe.ui.FilterList = Class.extend({
label: __(field.label),
labels:labels
};
var dashitem = this.wrapper.find(".filter-stat[data-name='" + __(field.label) + "']")
dashitem.html(frappe.render_template("filter_dash_stats", context)).on("click", ".filter-stat-link", function() {
var dashboard_filter = this.wrapper.find(".filter-stat[data-name='" + __(field.label) + "']")
dashboard_filter.html(frappe.render_template("filter_dashboard_value", context)).on("click", ".filter-stat-link", function() {
var fieldname = $(this).attr('data-field');
var label = $(this).attr('data-label');
if ((df && df.fieldtype=='Check' )|| field.name=="docstatus") {
@@ -152,11 +179,14 @@ frappe.ui.FilterList = Class.extend({
autolist.push({label: stat[i][0], value: field.name});
}

dashitem.parent().find(".search-dropdown").removeClass("hide").on("shown.bs.dropdown", function (event) {
$(this).find(".search-dashboard").focus();
$(this).find(".search-dashboard").val("")
})
dashitem.parent().find(".search-dashboard").autocomplete({
var search_input = dashboard_filter.parent().find(".search-dashboard");

dashboard_filter.parent().find(".search-dropdown").removeClass("hide").on("shown.bs.dropdown", function (event) {
search_input.focus();
search_input.val("")
});

search_input.autocomplete({
source: autolist,
select: function (ev, ui) {
if (ui.item) {
@@ -168,7 +198,13 @@ frappe.ui.FilterList = Class.extend({
} else {
me.listobj.set_filter(ui.item.value, ui.item.label, false, noduplicate);
}
search_input.val('');
return false;
}
},
focus: function (event, ui) {
search_input.val(ui.item.label);
return false;
}
})
}
@@ -186,17 +222,15 @@ frappe.ui.FilterList = Class.extend({
$('.date-range-picker').val('')
me.listobj.run();
});

//set sort filters
this.wrapper.find(".filter-label").on("click", ".filter-sort-item", function() {
var active = $(this).closest(".filter-dash-item").find(".filter-sort-active").attr('class',
function(i, c){
return c.replace(/(^|\s)icon-\S+/g, '');
});
var classes = $(this).find('.filter-sort').attr('class');
classes = classes.replace('filter-sort','');
$(active).addClass(classes);
this.wrapper.on("click", ".filter-sort-item", function() {
var active = $(this).closest(".filter-dash-item").find(".filter-sort-active");
active.attr('data-sort-by', $(this).attr('data-sort-by'));
active.attr('data-order', $(this).attr('data-order'));
me.reload_stats();
});

//setup date-time range pickers
$(".date-range-picker").each(function(i,v) {
var picker = this;
@@ -367,7 +401,8 @@ frappe.ui.Filter = Class.extend({
this.set_events();
},
make: function() {
this.wrapper = $(frappe.render_template("edit_filter", {})).appendTo(this.flist.wrapper.find('.filter_area'));
this.wrapper = $(frappe.render_template("edit_filter", {}))
.appendTo(this.flist.wrapper.find('.filter_area'));
},
make_select: function() {
var me = this;
@@ -623,7 +658,7 @@ frappe.ui.Filter = Class.extend({
title="'+__("Remove Filter")+'">\
<i class="icon-remove text-muted"></i>\
</button></div>')
.insertAfter(this.flist.wrapper.find(".set-filters .clear-filter"));
.insertAfter(this.flist.wrapper.find(".set-filters .show-filters"));

this.set_filter_button_text();



+ 6
- 4
frappe/public/js/frappe/ui/listing.html Datei anzeigen

@@ -2,10 +2,12 @@
<div class="list-filters" style="display: none;">
<div class="show_filters">
<div class="set-filters">
<button class="btn btn-default btn-xs show-filter-dashboard " title="{%= __("Show Standard Filters") %}"style="margin-right: 5px;">
<i class="icon-filter icon-large"/></button>
<button class="btn btn-default btn-xs new-filter " title="Add Custom Filter" style="margin-right: 5px;"><i class="icon-plus icon-large"/></button>
<button class="btn btn-default btn-xs clear-filter " title="Clear All Filters" style="margin-right: 10px;"><i class="icon-remove icon-large"/></button>
<button class="btn btn-default btn-xs show-filters text-muted"
style="margin-right: 10px;">
{{ __("Show Filters") }}</button>
<button style="margin-left: -5px;"
class="btn btn-default btn-xs new-filter text-muted">
<i class="octicon octicon-plus"></i></button>
</div>
</div>
</div>


+ 1
- 1
frappe/public/js/frappe/ui/messages.js Datei anzeigen

@@ -100,7 +100,7 @@ frappe.msgprint = function(msg, title) {
}

if(data.alert) {
frappe.show_alert(data.message);
frappe.show_alert(data);
return;
}



+ 2
- 2
frappe/public/js/frappe/ui/page.html Datei anzeigen

@@ -6,13 +6,13 @@
<h1>
<div class="title-image hide hidden-md hidden-lg">
</div>
<div class="text-ellipsis title-text"></div>
<div class="ellipsis title-text"></div>
<span class="indicator hide"></span>
</h1>
</div>
<div class="text-right col-md-5 col-sm-4 col-xs-6 page-actions">
<!-- ID and icon buttons -->
<h6 class="text-ellipsis sub-heading hide text-muted"></h6>
<h6 class="ellipsis sub-heading hide text-muted"></h6>
<span class="page-icon-group hide hidden-xs hidden-sm"></span>

<!-- buttons -->


+ 2
- 2
frappe/public/js/frappe/ui/toolbar/navbar.html Datei anzeigen

@@ -8,7 +8,7 @@
<ul class="nav navbar-nav" id="navbar-breadcrumbs">
</ul>
</div>
<div class="navbar-center text-ellipsis" style="display: none;"></div>
<div class="navbar-center ellipsis" style="display: none;"></div>

<ul class="nav navbar-nav navbar-right">
<li class="visible-xs">
@@ -18,7 +18,7 @@
<a class="dropdown-toggle" data-toggle="dropdown" href="#"
onclick="return false;">
{{ avatar }}
<span class="text-ellipsis toolbar-user-fullname hidden-xs hidden-sm">
<span class="ellipsis toolbar-user-fullname hidden-xs hidden-sm">
{%= frappe.user.full_name() %}</span>
<b class="caret hidden-xs hidden-sm"></b></a>
<ul class="dropdown-menu" id="toolbar-user" role="menu">


+ 1
- 1
frappe/public/js/frappe/upload.js Datei anzeigen

@@ -19,7 +19,7 @@ frappe.upload = {

var $uploaded_file_display = $(repl('<div class="btn-group" role="group">\
<button type="button" class="btn btn-default btn-sm \
text-ellipsis uploaded-filename-display">%(filename)s\
ellipsis uploaded-filename-display">%(filename)s\
</button>\
<button type="button" class="btn btn-default btn-sm uploaded-file-remove">\
&times;</button>\


+ 5
- 15
frappe/public/less/common.less Datei anzeigen

@@ -81,16 +81,6 @@ a.text-muted, a.text-extra-muted {
text-decoration: underline;
}

/* the element that this class is applied to, should have a max width for this to work*/
.text-ellipsis,
.ellipsis {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 100%;
vertical-align: middle;
}

.inline-block {
display: inline-block;
}
@@ -269,10 +259,10 @@ a.no-decoration& {
}

.uppercase {
padding-bottom: 4px;
text-transform: uppercase;
font-size: 12px;
letter-spacing: 0.4px;
color: @text-muted;
.text-uppercase();
}
.ellipsis {
.text-ellipsis();
}


+ 119
- 0
frappe/public/less/filter_dashboard.less Datei anzeigen

@@ -0,0 +1,119 @@
@import "variables.less";
@import "mixins.less";

.date-range-picker {
font-size:85%;
}

.filter-dashboard-wrapper {
display: none;
padding-bottom: 0px;
}

.list-filter-dashboard {
height: 202px;
margin-top: -10px;
margin-left: -15px;
margin-right: -14px;
overflow-x: scroll;
overflow-y: hidden;
}

.filter-header {
border-bottom: 1px solid @border-color;
background-color: @panel-bg;
padding: 3px 0px;

.search-dropdown {
margin-top: -23px;

.octicon {
font-size: 14px;
}
}

.sort-dropdown {
margin-top: -20px;
}
}

.filter-label {
margin: 0px;
padding: 5px;
color: @text-muted;
}

.filter-dashboard-items {
height: 187px;
margin-right: -2px;
}

.filter-dash-item {
width: 180px;
float: left;
height: 187px;
border-right:1px solid @border-color;
}

.filter-input {
padding: 5px;
padding-top: 10px;
}

.fitler-item-value {
padding: 0px 5px;
}

.filter-dash-item:after {
/*top:-10px;*/
}

.filter-sort {
font-size:1.5em;
}

.filter-sort-item {
a {
padding: 8px !important;
}
}

.filter-sort-item:hover {
color: @grey-link-color;
text-decoration: none;
background-color: @btn-bg;
}

.filter-stat {
overflow-y: auto;
overflow-x: hidden;
height: 158px;
margin: 0px;
}

.selected {
vertical-align: 10%;
font-size: 1.2em;
}

.filter-sort-item > label {
float:right;
}

.filter-stat-link > .badge {
position: absolute;
float: right;
margin-right: 5px;
margin-top: 2px;
font-size: 11px;
}

.filter-stat-link > .stat {
width: 130px;
display: inline-block;
.text-ellipsis();
}

.filter-dash-controls >.filter-label {
padding-bottom: 5px;
}

+ 17
- 0
frappe/public/less/mixins.less Datei anzeigen

@@ -8,6 +8,23 @@
text-decoration: underline;
}

/* the element that this class is applied to, should have a max width for this to work*/
.text-ellipsis() {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 100%;
vertical-align: middle;
}

.text-uppercase() {
padding-bottom: 4px;
text-transform: uppercase;
font-size: 12px;
letter-spacing: 0.4px;
color: @text-muted;
}

.breadcrumb-divider() {
font-family: FontAwesome;
font-weight: normal;


Laden…
Abbrechen
Speichern