Skip to content

Commit f0c3530

Browse files
authored
Merge pull request #2848 from Wurschdhaud/fix-for-#2847
Better error message for linkify if too many elements are selected
2 parents 09cc70d + 778a7d7 commit f0c3530

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

pyrevitlib/pyrevit/output/linkmaker.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
"""Handle creation of output window helper links."""
22

33
from pyrevit.compat import safe_strtype, get_elementid_value_func
4-
from pyrevit import DB
54
from pyrevit.coreutils.logger import get_logger
65

76

@@ -63,7 +62,21 @@ def make_link(element_ids, contents=None):
6362
link_title = ', '.join(strids)
6463

6564
if len(reviturl) >= 2000:
66-
alertjs = 'alert("Url was too long and discarded!");'
65+
total_length = 0
66+
max_elements = 0
67+
elementquery_parts = ['element[]=' + strid for strid in strids]
68+
for i, part in enumerate(elementquery_parts):
69+
if i > 0:
70+
total_length += 1 # for '&'
71+
total_length += len(part)
72+
if total_length >= 2000:
73+
break
74+
max_elements += 1
75+
76+
alertjs = \
77+
'alert("URL was too long ({} characters). Maximum allowed is 2000. '\
78+
'Only {} out of {} elements could fit.");'\
79+
.format(len(reviturl), max_elements, len(strids))
6780
linkattrs_select = 'href="#" onClick="{}"'.format(alertjs)
6881
linkattrs_show = linkattrs_select
6982
else:

0 commit comments

Comments
 (0)