Quellcode durchsuchen

Merge branch 'hotfix'

version-14
Saurabh vor 7 Jahren
Ursprung
Commit
ad57b47136
4 geänderte Dateien mit 57 neuen und 22 gelöschten Zeilen
  1. +1
    -1
      frappe/__init__.py
  2. +3
    -2
      frappe/public/js/frappe/form/toolbar.js
  3. +33
    -8
      frappe/public/js/frappe/ui/page.js
  4. +20
    -11
      frappe/utils/help.py

+ 1
- 1
frappe/__init__.py Datei anzeigen

@@ -14,7 +14,7 @@ import os, sys, importlib, inspect, json
from .exceptions import *
from .utils.jinja import get_jenv, get_template, render_template, get_email_from_template

__version__ = '10.0.13'
__version__ = '10.0.14'
__title__ = "Frappe Framework"

local = Local()


+ 3
- 2
frappe/public/js/frappe/form/toolbar.js Datei anzeigen

@@ -54,14 +54,15 @@ frappe.ui.form.Toolbar = Class.extend({
is_title_editable: function() {
if (this.frm.meta.title_field==="title"
&& this.frm.perm[0].write
&& !this.frm.get_docfield("title").options) {
&& !this.frm.get_docfield("title").options
&& !this.frm.doc.__islocal) {
return true;
} else {
return false;
}
},
can_rename: function() {
return this.frm.perm[0].write && this.frm.meta.allow_rename;
return this.frm.perm[0].write && this.frm.meta.allow_rename && !this.frm.doc.__islocal;
},
setup_editable_title: function() {
var me = this;


+ 33
- 8
frappe/public/js/frappe/ui/page.js Datei anzeigen

@@ -256,17 +256,14 @@ frappe.ui.Page = Class.extend({
* @param {object} parent - DOM object representing the parent of the drop down item lists
*/
add_dropdown_item: function(label, click, standard, parent) {
const is_already_added = () => {
let found_lists = $(parent).find('li > a.grey-link:contains(' + label + ')');
return found_lists.length > 0;
}
let item_selector = 'li > a.grey-link';

parent.parent().removeClass("hide");

var $li = $('<li><a class="grey-link">'+ label +'</a><li>'),
$link = $li.find("a").on("click", click);

if (is_already_added()) return;
if (this.is_in_group_button_dropdown(parent, `${item_selector}:contains('${label}')`, label)) return;

if(standard===true) {
$li.appendTo(parent);
@@ -281,6 +278,21 @@ frappe.ui.Page = Class.extend({
return $link;
},

/*
* Check if there already exists a button with a specified label in a specified button group
* @param {object} parent - This should be the `ul` of the button group.
* @param {string} selector - CSS Selector of the button to be searched for. By default, it is `li`.
* @param {string} label - Label of the button
*/
is_in_group_button_dropdown: function(parent, selector, label){
if (!selector) selector = 'li';

if (!label || !parent) return false;

const result = $(parent).find(`${selector}:contains('${label}')`);
return result.length > 0;
},

clear_btn_group: function(parent) {
parent.empty();
parent.parent().addClass("hide");
@@ -323,6 +335,15 @@ frappe.ui.Page = Class.extend({
}
},

/*
* Add button to button group. If there exists another button with the same label,
* `add_inner_button` will not add the new button to the button group even if the callback
* function is different.
*
* @param {string} label - Label of the button to be added to the group
* @param {object} action - function to be called when button is clicked
* @param {string} group - Label of the group button
*/
add_inner_button: function(label, action, group) {
var me = this;
let _action = function() {
@@ -333,9 +354,13 @@ frappe.ui.Page = Class.extend({
if(group) {
var $group = this.get_or_add_inner_group_button(group);
$(this.inner_toolbar).removeClass("hide");
return $('<li><a>'+label+'</a></li>')
.on('click', _action)
.appendTo($group.find(".dropdown-menu"));

if (!this.is_in_group_button_dropdown($group.find(".dropdown-menu"), 'li', label)) {
return $('<li><a>'+label+'</a></li>')
.on('click', _action)
.appendTo($group.find(".dropdown-menu"));
}

} else {
return $('<button class="btn btn-default btn-xs" style="margin-left: 10px;">'+__(label)+'</btn>')
.on("click", _action)


+ 20
- 11
frappe/utils/help.py Datei anzeigen

@@ -174,7 +174,6 @@ class HelpDatabase(object):
return intro

def make_content(self, html, path, relpath):

if '<h1>' in html:
html = html.split('</h1>', 1)[1]

@@ -185,18 +184,10 @@ class HelpDatabase(object):
app_name = path.split('/', 3)[2]
html += get_improve_page_html(app_name, target)


soup = BeautifulSoup(html, 'html.parser')

for link in soup.find_all('a'):
if link.has_attr('href'):
url = link['href']
if '/user' in url:
data_path = url[url.index('/user'):]
if '.' in data_path:
data_path = data_path[: data_path.rindex('.')]
if data_path:
link['data-path'] = data_path.replace("user", app_name)
self.fix_links(soup, app_name)
self.fix_images(soup, app_name)

parent = self.get_parent(relpath)
if parent:
@@ -208,6 +199,24 @@ class HelpDatabase(object):

return soup.prettify()

def fix_links(self, soup, app_name):
for link in soup.find_all('a'):
if link.has_attr('href'):
url = link['href']
if '/user' in url:
data_path = url[url.index('/user'):]
if '.' in data_path:
data_path = data_path[: data_path.rindex('.')]
if data_path:
link['data-path'] = data_path.replace("user", app_name)

def fix_images(self, soup, app_name):
for img in soup.find_all('img'):
if img.has_attr('src'):
url = img['src']
if '/docs/' in url:
img['src'] = url.replace('/docs/', '/assets/{0}_docs/'.format(app_name))

def build_index(self):
for data in self.db.sql('select path, full_path, content from help'):
self.make_index(data[0], data[1], data[2])


Laden…
Abbrechen
Speichern