Procházet zdrojové kódy

[print] [bugfix] double onshow calling bugfix

version-14
Rushabh Mehta před 10 roky
rodič
revize
a90e0fc711
30 změnil soubory, kde provedl 310 přidání a 110 odebrání
  1. +5
    -0
      frappe/build.py
  2. +2
    -2
      frappe/core/page/data_import_tool/data_import_tool.js
  3. +1
    -1
      frappe/core/page/desktop/desktop.js
  4. +1
    -1
      frappe/core/page/modules_setup/modules_setup.js
  5. +1
    -1
      frappe/core/page/permission_manager/permission_manager.js
  6. +1
    -1
      frappe/core/page/user_permissions/user_permissions.js
  7. +1
    -1
      frappe/desk/page/activity/activity.js
  8. +1
    -1
      frappe/desk/page/applications/applications.js
  9. +1
    -1
      frappe/desk/page/messages/messages.js
  10. +1
    -1
      frappe/print/doctype/print_format/print_format.js
  11. +19
    -5
      frappe/print/page/print_format_builder/print_format_builder.css
  12. +192
    -42
      frappe/print/page/print_format_builder/print_format_builder.js
  13. +25
    -8
      frappe/print/page/print_format_builder/print_format_builder_column_selector.html
  14. +15
    -5
      frappe/print/page/print_format_builder/print_format_builder_field.html
  15. +2
    -1
      frappe/print/page/print_format_builder/print_format_builder_section.html
  16. +3
    -2
      frappe/print/page/print_format_builder/print_format_builder_sidebar.html
  17. +7
    -2
      frappe/public/js/frappe/form/control.js
  18. +1
    -1
      frappe/public/js/frappe/form/linked_with.js
  19. +3
    -1
      frappe/public/js/frappe/model/model.js
  20. +7
    -3
      frappe/public/js/frappe/ui/dialog.js
  21. +6
    -5
      frappe/public/js/frappe/ui/field_group.js
  22. +2
    -1
      frappe/public/js/frappe/ui/page.js
  23. +1
    -1
      frappe/public/js/frappe/ui/toolbar/about.js
  24. +1
    -1
      frappe/public/js/frappe/views/communication.js
  25. +1
    -5
      frappe/public/js/frappe/views/container.js
  26. +6
    -8
      frappe/public/js/frappe/views/pageview.js
  27. +3
    -0
      frappe/public/js/legacy/clientscriptAPI.js
  28. +0
    -7
      frappe/public/js/legacy/globals.js
  29. +0
    -1
      frappe/public/js/legacy/loaders.js
  30. +1
    -1
      frappe/public/js/legacy/print_format.js

+ 5
- 0
frappe/build.py Zobrazit soubor

@@ -148,7 +148,12 @@ def pack(target, sources, no_compress, verbose):
print "Wrote %s - %sk" % (target, str(int(os.path.getsize(target)/1024)))

def html_to_js_template(path, content):
# remove whitespace to a single space
content = re.sub("\s+", " ", content).replace("'", "\'")

# strip comments
content = re.sub("(<!--.*?-->)", "", content)

return """frappe.templates["{key}"] = '{content}';\n""".format(\
key=path.rsplit("/", 1)[-1][:-5], content=content)



+ 2
- 2
frappe/core/page/data_import_tool/data_import_tool.js Zobrazit soubor

@@ -122,10 +122,10 @@ frappe.DataImportTool = Class.extend({
}
});

frappe.pages['data-import-tool'].onload = function(wrapper) {
frappe.pages['data-import-tool'].on_page_load = function(wrapper) {
frappe.data_import_tool = new frappe.DataImportTool(wrapper);
}

frappe.pages['data-import-tool'].onshow = function(wrapper) {
frappe.pages['data-import-tool'].on_page_show = function(wrapper) {
frappe.data_import_tool && frappe.data_import_tool.set_route_options();
}

+ 1
- 1
frappe/core/page/desktop/desktop.js Zobrazit soubor

@@ -1,6 +1,6 @@
frappe.provide('frappe.desktop');

frappe.pages['desktop'].onload = function(wrapper) {
frappe.pages['desktop'].on_page_load = function(wrapper) {
frappe.desktop.background = $('<div style="background: none; text-align: center; \
margin: 0px auto;"> \
<div id="icon-grid">\


+ 1
- 1
frappe/core/page/modules_setup/modules_setup.js Zobrazit soubor

@@ -1,5 +1,5 @@

frappe.pages['modules_setup'].onload = function(wrapper) {
frappe.pages['modules_setup'].on_page_load = function(wrapper) {
var page = frappe.ui.make_app_page({
parent: wrapper,
title: __('Show or Hide Modules'),


+ 1
- 1
frappe/core/page/permission_manager/permission_manager.js Zobrazit soubor

@@ -1,4 +1,4 @@
frappe.pages['permission-manager'].onload = function(wrapper) {
frappe.pages['permission-manager'].on_page_load = function(wrapper) {
var page = frappe.ui.make_app_page({
parent: wrapper,
title: __('Role Permissions Manager'),


+ 1
- 1
frappe/core/page/user_permissions/user_permissions.js Zobrazit soubor

@@ -1,4 +1,4 @@
frappe.pages['user-permissions'].onload = function(wrapper) {
frappe.pages['user-permissions'].on_page_load = function(wrapper) {
var page = frappe.ui.make_app_page({
parent: wrapper,
title: __("User Permissions Manager"),


+ 1
- 1
frappe/desk/page/activity/activity.js Zobrazit soubor

@@ -3,7 +3,7 @@

frappe.provide("frappe.activity");

frappe.pages['activity'].onload = function(wrapper) {
frappe.pages['activity'].on_page_load = function(wrapper) {
var me = this;

frappe.require('assets/frappe/js/lib/flot/jquery.flot.js');


+ 1
- 1
frappe/desk/page/applications/applications.js Zobrazit soubor

@@ -1,6 +1,6 @@
frappe.provide("frappe.applications");

frappe.pages['applications'].onload = function(parent) {
frappe.pages['applications'].on_page_load = function(parent) {
frappe.applications.installer = new frappe.applications.Installer(parent);
};



+ 1
- 1
frappe/desk/page/messages/messages.js Zobrazit soubor

@@ -6,7 +6,7 @@

frappe.provide('frappe.desk.pages.messages');

frappe.pages.messages.onload = function(parent) {
frappe.pages.messages.on_page_load = function(parent) {
var page = frappe.ui.make_app_page({
parent: parent,
});


+ 1
- 1
frappe/print/doctype/print_format/print_format.js Zobrazit soubor

@@ -21,7 +21,7 @@ frappe.ui.form.on("Print Format", "edit_format", function(frm) {
return;
}
frappe.route_options = {
print_format: frm.doc
print_format: frm
};
frappe.set_route("print-format-builder");
});

+ 19
- 5
frappe/print/page/print_format_builder/print_format_builder.css Zobrazit soubor

@@ -1,20 +1,26 @@
.print-format-builder-section, .print-format-builder-add-section {
border: 1px dashed #d1d8dd;
border: 1px solid #d1d8dd;
margin: 0px;
margin-bottom: 15px;
}
.print-format-builder-add-section {
border: 1px dashed #d1d8dd;
text-align: center;
padding: 15px;
cursor: pointer;
}

.print-format-builder-column {
border: 1px dashed #d1d8dd;
padding: 15px;
margin: 15px 0px;
margin: 0px -15px 0 -16px;
background-color: white;
min-height: 64px;
border-left: 1px solid #d1d8dd;
border-right: 1px solid #d1d8dd;
}

.section-column:last-child .print-format-builder-column {
margin-right: -16px;
}

.print-format-builder-field {
@@ -22,7 +28,7 @@
border: 1px solid #d1d8dd;
border-radius: 3px;
margin-bottom: 10px;
height: 34px;
min-height: 34px;
}

.print-format-builder-field:last-child {
@@ -45,5 +51,13 @@
.print-format-builder-section-head {
cursor: move;
padding: 10px 15px;
border-bottom: 1px dashed #d1d8dd;
border-bottom: 1px solid #d1d8dd;
}

.column-selector-row:hover {
background-color: #fafbfc;
}

.column-selector-row .form-control {
margin-top: 5px;
}

+ 192
- 42
frappe/print/page/print_format_builder/print_format_builder.js Zobrazit soubor

@@ -1,12 +1,12 @@
frappe.pfbuilder = null;

frappe.pages['print-format-builder'].onload = function(wrapper) {
frappe.pages['print-format-builder'].on_page_load = function(wrapper) {
frappe.print_format_builder = new frappe.PrintFormatBuilder(wrapper);
}

frappe.pages['print-format-builder'].onshow = function(wrapper) {
frappe.pages['print-format-builder'].on_page_show = function(wrapper) {
// load a new page
if(frappe.route_options.print_format != frappe.print_format_builder.print_format) {
var frm = frappe.route_options.print_format
if(!frm || !frappe.print_format_builder.doc ||
(frm.doc.name != frappe.print_format_builder.doc.name)) {
frappe.print_format_builder.refresh();
}
}
@@ -15,16 +15,14 @@ frappe.PrintFormatBuilder = Class.extend({
init: function(parent) {
this.parent = parent;
this.make();
this.refresh();
},
refresh: function() {
this.print_format = frappe.route_options.print_format;
this.visible_columns = {};
this.frm = frappe.route_options.print_format;

if(!this.print_format) {
this.as_user_to_start_from_print_format();
if(!(this.frm && this.frm.doc)) {
this.ask_user_to_start_from_print_format();
} else {
this.page.set_title(this.print_format.name);
this.page.set_title(this.frm.doc.name);
this.setup_print_format();
}
},
@@ -34,27 +32,43 @@ frappe.PrintFormatBuilder = Class.extend({
title: __("Print Format Builder")
});
},
as_user_to_start_from_print_format: function() {
ask_user_to_start_from_print_format: function() {
this.page.main.html('<div class="padding"><a class="btn btn-default btn-sm" href="#List/Print Format">'
+__("Please create or edit a new Print Format")+'</a></div>');
this.page.sidebar.html("");
this.page.clear_primary_action();
},
setup_print_format: function() {
var me = this;
frappe.model.with_doctype(this.print_format.doc_type, function(doctype) {
me.meta = frappe.get_meta(me.print_format.doc_type);
frappe.model.with_doctype(this.frm.doc.doc_type, function(doctype) {
me.meta = frappe.get_meta(me.frm.doc.doc_type);
me.setup_sidebar();
me.render_layout();
me.page.set_primary_action(__("Save"), function() {
me.save_print_format();
});
});
},
setup_sidebar: function() {
var me = this;
this.page.sidebar.empty();

// prepend custom HTML field
var fields = [this.get_custom_html_field()].concat(this.meta.fields);

$(frappe.render_template("print_format_builder_sidebar",
{fields: this.meta.fields}))
{fields: fields}))
.appendTo(this.page.sidebar);

this.setup_field_filter();
},
get_custom_html_field: function() {
return {
fieldtype: "Custom HTML",
fieldname: "_custom_html",
label: __("Custom HTML")
}
},
render_layout: function() {
this.page.main.empty();
this.prepare_data();
@@ -62,12 +76,13 @@ frappe.PrintFormatBuilder = Class.extend({
data: this.layout_data, me: this}))
.appendTo(this.page.main);
this.setup_sortable();
this.setup_settings();
this.setup_section_settings();
this.setup_column_selector();
this.setup_edit_custom_html();
this.setup_add_section();
},
prepare_data: function() {
this.data = JSON.parse(this.print_format.format_data || "[]");
this.data = JSON.parse(this.frm.doc.format_data || "[]");
if(!this.data.length) {
// new layout
this.data = this.meta.fields;
@@ -86,6 +101,18 @@ frappe.PrintFormatBuilder = Class.extend({
// break the layout into sections and columns
// so that it is easier to render in a template
$.each(this.data, function(i, f) {
if(!f.name && f.fieldname) {
// from format_data (designed format)
// print_hide should always be false
if(f.fieldname==="_custom_html") {
f.label = "Custom HTML";
f.fieldtype = "Custom HTML"
} else {
f = $.extend(frappe.meta.get_docfield(me.frm.doc.doc_type,
f.fieldname) || {}, f);
}
}

if(f.fieldtype==="Section Break") {
section = me.get_new_section();
column = null;
@@ -119,14 +146,20 @@ frappe.PrintFormatBuilder = Class.extend({
return {fields: []}
},
add_table_properties: function(f) {
// build table columns and widths in a dict
// visible_columns
var me = this;
this.visible_columns[f.options] = [];
$.each(frappe.get_meta(f.options).fields, function(i, _f) {
if(!in_list(["Section Break", "Column Break"], _f.fieldtype) &&
!_f.print_hide && f.label) {
me.visible_columns[f.options].push(_f.fieldname);
}
});
if(!f.visible_columns) {
f.visible_columns = []
$.each(frappe.get_meta(f.options).fields, function(i, _f) {
if(!in_list(["Section Break", "Column Break"], _f.fieldtype) &&
!_f.print_hide && f.label) {

// column names set as fieldname|width
f.visible_columns.push({fieldname: _f.fieldname, width: _f.width});
}
});
}
},
setup_sortable: function() {
var me = this;
@@ -163,8 +196,13 @@ frappe.PrintFormatBuilder = Class.extend({
// on drop, change the HTML
var $item = $(evt.item);
if(!$item.hasClass("print-format-builder-field")) {
var fieldname = $item.attr("data-fieldname"),
field = frappe.meta.get_docfield(me.print_format.doc_type, fieldname);
var fieldname = $item.attr("data-fieldname");

if(fieldname==="_custom_html") {
var field = me.get_custom_html_field();
} else {
var field = frappe.meta.get_docfield(me.frm.doc.doc_type, fieldname);
}

$item.replaceWith(frappe.render_template("print_format_builder_field",
{field: field, me:me}))
@@ -183,7 +221,7 @@ frappe.PrintFormatBuilder = Class.extend({
})
});
},
setup_settings: function() {
setup_section_settings: function() {
var me = this;
this.page.main.on("click", ".section-settings", function() {
var section = $(this).parent().parent();
@@ -194,9 +232,24 @@ frappe.PrintFormatBuilder = Class.extend({
title: "Edit Section",
fields: [
{
label:__("No of Columns"), fieldname:"no_of_columns",
fieldtype:"Select", options: ["1", "2", "3"],
label:__("No of Columns"),
fieldname:"no_of_columns",
fieldtype:"Select",
options: ["1", "2", "3"],
},
{
label: __("Remove Section"),
fieldname: "remove_section",
fieldtype: "Button",
click: function() {
d.hide();
section.fadeOut(function() {section.remove()});
},
input_class: "btn-danger",
input_css: {
"margin-top": "20px"
}
}
],
});

@@ -212,7 +265,8 @@ frappe.PrintFormatBuilder = Class.extend({

d.show();

})
return false;
});
},
update_columns_in_section: function(section, no_of_columns, new_no_of_columns) {
var col_size = 12 / new_no_of_columns,
@@ -275,38 +329,134 @@ frappe.PrintFormatBuilder = Class.extend({
setup_column_selector: function() {
var me = this;
this.page.main.on("click", ".select-columns", function() {
var parent = $(this).parent(),
var parent = $(this).parents(".print-format-builder-field:first"),
doctype = parent.attr("data-doctype"),
label = parent.attr("data-label"),
columns = parent.attr("data-columns").split(",");
columns = parent.attr("data-columns").split(",")
column_names = $.map(columns, function(v) { return v.split("|")[0]; });
widths = {};

$.each(columns, function(i, v) {
var parts = v.split("|");
widths[parts[0]] = parts[1];
});

var d = new frappe.ui.Dialog({
title: __("Select Table Columns for {0}", [label]),
});

var $body = $(d.body);

// render checkboxes
$(frappe.render_template("print_format_builder_column_selector", {
fields: frappe.get_meta(doctype).fields,
columns: columns
column_names: column_names,
widths: widths
})).appendTo(d.body);

Sortable.create($(d.body).find(".column-selector-list").get(0));
Sortable.create($body.find(".column-selector-list").get(0));

var get_width_input = function(fieldname) {
return $body.find(".column-width[data-fieldname='"+ fieldname +"']")
}

// update data-columns property on update
d.set_primary_action(__("Update"), function() {
me.visible_columns[doctype] = [];
$(d.body).find("input:checked").each(function() {
me.visible_columns[doctype].push($(this).attr("data-fieldname"));
var visible_columns = [];
$body.find("input:checked").each(function() {
var fieldname = $(this).attr("data-fieldname"),
width = get_width_input(fieldname).val() || "";
visible_columns.push(fieldname + "|" + width);
});
parent.attr("data-columns", me.visible_columns[doctype].join(me.visible_columns[doctype]));
parent.attr("data-columns", visible_columns.join(","));
d.hide();
});

// enable / disable input based on selection
$body.on("click", "input[type='checkbox']", function() {
var disabled = !$(this).prop("checked"),
input = get_width_input($(this).attr("data-fieldname"));

input.prop("disabled", disabled);
if(disabled) input.val("");
});

d.show();

return false;
});
},
get_visible_columns_string: function(f) {
return $.map(f.visible_columns, function(v) { return v.fieldname + "|" + v.width }).join(",")
},
get_no_content: function() {
return '<div class="text-extra-muted" data-no-content>'+__("Edit to add content")+'</div>'
},
setup_edit_custom_html: function() {
var me = this;
this.page.main.on("click", ".edit-html", function() {
var parent = $(this).parents(".print-format-builder-field:first"),
$content = parent.find(".html-content");

var d = new frappe.ui.Dialog({
title: __("Edit Custom HTML"),
fields: [
{
fieldname: "content",
fieldtype: "Text Editor",
label: "Custom HTML"
}
]
});

var content = $content.html();
if(content.indexOf("data-no-content")!==-1) content = "";

d.set_input("content", content);

d.set_primary_action(__("Update"), function() {
$content.html(d.get_value("content"));
d.hide();
});

d.show();

return false;
});
},
save_print_format: function() {
var data = [],
me = this;
this.page.main.find(".print-format-builder-section").each(function() {
data.push({"fieldtype": "Section Break"});
$(this).find(".print-format-builder-column").each(function() {
data.push({"fieldtype": "Column Break"});
$(this).find(".print-format-builder-field").each(function() {
var $this = $(this),
fieldtype = $this.attr("data-fieldtype"),
df = {
fieldname: $this.attr("data-fieldname")
};
if(fieldtype==="Table") {
// append the user selected columns to visible_columns
var columns = $this.attr("data-columns").split(",");
df.visible_columns = [];
$.each(columns, function(i, c) {
var parts = c.split("|");
df.visible_columns.push({fieldname:parts[0],
width:parts[1]});
});
}
if(fieldtype==="Custom HTML") {
// custom html as HTML field
df.fieldtype = "HTML";
df.options = $this.find(".html-content").html();
}
data.push(df);
});
});
});
this.frm.doc.format_data = JSON.stringify(data);
setTimeout(function() { me.frm.save(); }, 100);
}
});

frappe.PrintFormatField = Class.extend({
init: function() { }
});

+ 25
- 8
frappe/print/page/print_format_builder/print_format_builder_column_selector.html Zobrazit soubor

@@ -1,14 +1,31 @@
<p class="text-muted">{%= __("Check columns to select, drag to set order.") %}</p>
<p class="text-muted">{%= __("Check columns to select, drag to set order.") %}
<br>{%= __("Widths can be set in px or %.") %}</p>
<div class="row">
<div class="col-sm-6"><h4>{%= __("Column") %}</h4></div>
<div class="col-sm-6 text-right"><h4>{%= __("Width") %}</h4></div>
</div>
<div class="column-selector-list">
{% for (i=0; i < fields.length; i++) { var f = fields[i]; %}
{% if(!in_list(["Section Break", "Column Break"]) && f.label) { %}
<div class="checkbox">
<label>
<input type="checkbox"
{% if(!in_list(["Section Break", "Column Break"]) && f.label) {
var selected = in_list(column_names, f.fieldname) %}
<div class="row column-selector-row">
<div class="col-sm-6">
<div class="checkbox">
<label>
<input type="checkbox"
data-fieldname="{%= f.fieldname %}"
{%= selected ? "checked" : "" %}>
{%= f.label %}
</label>
</div>
</div>
<div class="col-sm-6 text-right">
<input class="form-control column-width input-sm text-right"
value="{%= widths[f.fieldname] || "" %}"
data-fieldname="{%= f.fieldname %}"
{% if(in_list(columns, f.fieldname)) { %}checked{% } %}>
{%= f.label %}
</label>
style="width: 100px; display: inline"
{%= selected ? "" : "disabled" %}>
</div>
</div>
{% } %}
{% } %}


+ 15
- 5
frappe/print/page/print_format_builder/print_format_builder_field.html Zobrazit soubor

@@ -1,13 +1,23 @@
<div class="print-format-builder-field"
data-fieldname="{%= field.fieldname %}"
data-label="{%= field.label %}"
data-fieldtype="{%= field.fieldtype %}"
{% if(field.fieldtype==="Table") { %}
data-columns="{%= me.visible_columns[field.options].join(",") %}"
data-columns="{%= me.get_visible_columns_string(field) %}"
data-doctype="{%= field.options %}"
{% } %}>
<span>{%= field.label %}</span>
{% if(field.fieldtype==="Table") { %}
<span> ({%= __("Table") %})</span>
<a class="pull-right select-columns btn btn-default btn-xs">Select Columns</a>
{% if(field.fieldtype==="Custom HTML") { %}
<div class="text-right">
<a class="edit-html btn btn-default btn-xs">
{%= __("Edit HTML") %}</a>
</div>
<div class="html-content">{%= field.options || me.get_no_content() %}</div>
{% } else { %}
<span>{%= field.label %}</span>
{% if(field.fieldtype==="Table") { %}
<span> ({%= __("Table") %})</span>
<a class="pull-right select-columns btn btn-default btn-xs">
{%= __("Select Columns") %}</a>
{% } %}
{% } %}
</div>

+ 2
- 1
frappe/print/page/print_format_builder/print_format_builder_section.html Zobrazit soubor

@@ -1,7 +1,8 @@
<div class="print-format-builder-section row light-bg">
<div class="print-format-builder-section-head">
<a class="section-settings pull-right
btn-default btn-xs">Settings</a>
btn-default btn-xs">
<span class="octicon octicon-gear text-muted"></span></a>
<span class="octicon octicon-three-bars drag-handle"></span>
</div>
{% for(var j=0; j < section.columns.length; j++) {


+ 3
- 2
frappe/print/page/print_format_builder/print_format_builder_sidebar.html Zobrazit soubor

@@ -1,4 +1,4 @@
<div class="panel-bg" style="padding: 10px; margin-right: -30px;">
<div class="panel-bg" style="padding: 10px; margin-right: -15px; margin-bottom: 10px;">
<input type="text" class="form-control input-sm filter-fields" name="filter-fields"
placeholder="{%= __("Filter...") %}">
</div>
@@ -7,7 +7,8 @@
{% if(!in_list(["Section Break", "Column Break", "Fold"], f.fieldtype)) { %}
<div class="print-format-builder-field-placeholder text-ellipsis"
data-fieldname="{%= f.fieldname %}">
<span class="label label-default"
<span class="btn btn-xs
{%= (f.fieldtype==="Custom HTML") ? "btn-info" : "btn-default" %}"
style="cursor: grab; display: inline-block">
{%= f.label %}
</span>


+ 7
- 2
frappe/public/js/frappe/form/control.js Zobrazit soubor

@@ -303,10 +303,15 @@ frappe.ui.form.ControlData = frappe.ui.form.ControlInput.extend({
.attr("data-fieldtype", this.df.fieldtype)
.attr("data-fieldname", this.df.fieldname)
.attr("placeholder", this.df.placeholder || "")
if(this.doctype)
if(this.doctype) {
this.$input.attr("data-doctype", this.doctype);
if(this.df.input_css)
}
if(this.df.input_css) {
this.$input.css(this.df.input_css);
}
if(this.df.input_class) {
this.$input.addClass(this.df.input_class);
}
},
set_input: function(val) {
this.$input && this.$input.val(this.format_for_input(val));


+ 1
- 1
frappe/public/js/frappe/form/linked_with.js Zobrazit soubor

@@ -44,7 +44,7 @@ frappe.ui.form.LinkedWith = Class.extend({
return;
}

this.dialog.onshow = function() {
this.dialog.on_page_show = function() {
me.dialog.fields_dict.list.$wrapper.html('<div class="text-muted text-center">'
+ __("Loading") + '...</div>');



+ 3
- 1
frappe/public/js/frappe/model/model.js Zobrazit soubor

@@ -243,11 +243,13 @@ $.extend(frappe.model, {
if(doc && doc[fieldname] !== value) {
doc[fieldname] = value;
frappe.model.trigger(fieldname, value, doc);
setTimeout(function() { console.log(doc[fieldname]) }, 100);
return true;
} else {
// execute link triggers (want to reselect to execute triggers)
if(fieldtype=="Link")
if(fieldtype=="Link") {
frappe.model.trigger(fieldname, value, doc);
}
}
},



+ 7
- 3
frappe/public/js/frappe/ui/dialog.js Zobrazit soubor

@@ -56,16 +56,20 @@ frappe.ui.Dialog = frappe.ui.FieldGroup.extend({
console.log("Dialog: unable to focus on first input: " + e);
}
}
me.onshow && me.onshow();
me.on_page_show && me.on_page_show();
})


},
get_primary_btn: function() {
return this.$wrapper.find(".modal-header .btn-primary").removeClass("hide");
return this.$wrapper.find(".modal-header .btn-primary");
},
set_primary_action: function(label, click) {
return this.get_primary_btn().html(label).click(click);
this.has_primary_action = true;
return this.get_primary_btn()
.removeClass("hide")
.html(label)
.click(click);
},
make_head: function() {
var me = this;


+ 6
- 5
frappe/public/js/frappe/ui/field_group.js Zobrazit soubor

@@ -19,11 +19,10 @@ frappe.ui.FieldGroup = frappe.ui.form.Layout.extend({
this.refresh();
// set default
$.each(this.fields_list, function(i, f) {
if(f.df["default"]) f.set_input(f.df["default"]);
if(f.df["default"])
f.set_input(f.df["default"]);
})
if(!this.no_submit_on_enter) {
$(this.body).find("[data-fieldtype='Button']").filter(":first")
.removeClass("btn-default").addClass("btn-primary");
this.catch_enter_as_submit();
}
}
@@ -33,8 +32,10 @@ frappe.ui.FieldGroup = frappe.ui.form.Layout.extend({
var me = this;
$(this.body).find('input[type="text"], input[type="password"]').keypress(function(e) {
if(e.which==13) {
e.preventDefault();
$(me.body).find('.btn-primary:first').click();
if(this.has_primary_action) {
e.preventDefault();
this.get_primary_btn().trigger("click");
}
}
});
},


+ 2
- 1
frappe/public/js/frappe/ui/page.js Zobrazit soubor

@@ -108,6 +108,7 @@ frappe.ui.Page = Class.extend({
label = this.get_icon_label(icon, label);
}

this.clear_primary_action();
this.btn_primary.removeClass("hide").prop("disabled", false).html(label).on("click", click);
},

@@ -120,7 +121,7 @@ frappe.ui.Page = Class.extend({
},

clear_primary_action: function() {
this.btn_primary.addClass("hide");
this.btn_primary.addClass("hide").unbind("click");
},

clear_actions: function() {


+ 1
- 1
frappe/public/js/frappe/ui/toolbar/about.js Zobrazit soubor

@@ -18,7 +18,7 @@ frappe.ui.misc.about = function() {

frappe.ui.misc.about_dialog = d;

frappe.ui.misc.about_dialog.onshow = function() {
frappe.ui.misc.about_dialog.on_page_show = function() {
if(!frappe.versions) {
frappe.call({
method: "frappe.get_versions",


+ 1
- 1
frappe/public/js/frappe/views/communication.js Zobrazit soubor

@@ -148,7 +148,7 @@ frappe.views.CommunicationComposer = Class.extend({
}
}

this.dialog.onshow = function() {
this.dialog.on_page_show = function() {
if (cur_frm && cur_frm.docname && !me.txt &&
(frappe.last_edited_communication[cur_frm.doctype] || {})[cur_frm.docname]) {



+ 1
- 5
frappe/public/js/frappe/views/container.js Zobrazit soubor

@@ -20,16 +20,12 @@ frappe.views.Container = Class.extend({
$("body").attr("data-route", frappe.get_route_str());
});
},
add_page: function(label, onshow, onhide) {
add_page: function(label) {
var page = $('<div class="content page-container"></div>')
.attr('id', "page-" + label)
.attr("data-page-route", label)
.toggle(false)
.appendTo(this.container).get(0);
if(onshow)
$(page).bind('show', onshow);
if(onshow)
$(page).bind('hide', onhide);
page.label = label;
frappe.pages[label] = page;



+ 6
- 8
frappe/public/js/frappe/views/pageview.js Zobrazit soubor

@@ -78,20 +78,18 @@ frappe.views.Page = Class.extend({
frappe.dom.set_style(this.pagedoc.style || '');
}

this.trigger('onload');
this.trigger_page_event('on_page_load');

// set events
$(this.wrapper).bind('show', function() {
$(this.wrapper).on('show', function() {
cur_frm = null;
me.trigger('onshow');
me.trigger('refresh');
me.trigger_page_event('on_page_show');
me.trigger_page_event('refresh');
});
},
trigger: function(eventname) {
trigger_page_event: function(eventname) {
var me = this;
if(pscript[eventname+'_'+this.name]) {
pscript[eventname+'_'+this.name](me.wrapper);
} else if(me.wrapper[eventname]) {
if(me.wrapper[eventname]) {
me.wrapper[eventname](me.wrapper);
}
}


+ 3
- 0
frappe/public/js/legacy/clientscriptAPI.js Zobrazit soubor

@@ -207,6 +207,9 @@ _f.Frm.prototype.set_value = function(field, value, if_missing) {
frappe.model.set_value(me.doctype, me.doc.name, f, v);
}
}
} else {
msgprint("Field " + f + " not found.");
throw "frm.set_value";
}
}



+ 0
- 7
frappe/public/js/legacy/globals.js Zobrazit soubor

@@ -7,10 +7,6 @@ frappe.provide('frappe.utils');
frappe.provide('frappe.model');
frappe.provide('frappe.user');
frappe.provide('frappe.session');
frappe.provide('_f');
frappe.provide('_p');
frappe.provide('_r');
frappe.provide('_startup_data')
frappe.provide('locals')
frappe.provide('locals.DocType')

@@ -29,8 +25,6 @@ var user_fullname=null;
var user_email=null;
var user_img = {};

var pscript = {};

// Name Spaces
// ============

@@ -43,4 +37,3 @@ var FILTER_SEP = '\1';
// API globals
var frms={};
var cur_frm=null;
var pscript = {};

+ 0
- 1
frappe/public/js/legacy/loaders.js Zobrazit soubor

@@ -32,7 +32,6 @@ function new_doc(doctype, in_form) {
}
var newdoc = new_doc;

var pscript={};
function loadpage(page_name, call_back, no_history) {
frappe.set_route(page_name);
}


+ 1
- 1
frappe/public/js/legacy/print_format.js Zobrazit soubor

@@ -84,7 +84,7 @@ $.extend(_p, {
);
});

dialog.onshow = function() {
dialog.on_page_show = function() {
var $print = dialog.fields_dict.print_format.$input;
$print.empty().add_options(cur_frm.print_preview.print_formats);



Načítá se…
Zrušit
Uložit