Welcome to the nuBuilder Forums!

Register and log in to access exclusive forums and content available only to registered users.

Add new format doesn't work anymore Topic is solved

Questions related to using nuBuilder Forte.
Post Reply
yvesf
Posts: 315
Joined: Sun Mar 14, 2021 8:48 am
Location: Geneva
Has thanked: 87 times
Been thanked: 11 times

Add new format doesn't work anymore

Unread post by yvesf »

Hello,

I am trying to save a new date format in Setup>Format.
I want to add a new date format : dd/mm/yyyy
I cannot do that with this latest version.
Video_2025-02-22_151701.gif
Yves
You do not have the required permissions to view the files attached to this post.
kev1n
nuBuilder Team
Posts: 4292
Joined: Sun Oct 14, 2018 6:43 pm
Has thanked: 71 times
Been thanked: 444 times
Contact:

Re: Add new format doesn't work anymore

Unread post by kev1n »

Running this query should fix the issue:

Code: Select all

REPLACE INTO `zzzzsys_php` (`zzzzsys_php_id`, `sph_code`, `sph_description`, `sph_group`, `sph_php`, `sph_run`, `sph_zzzzsys_form_id`, `sph_system`, `sph_global`, `sph_template`, `sph_hide`, `sph_json`) VALUES ('nuformat_BS', 'nuformat_BS', 'System PHP', 'nubuilder', 'if (\'#srm_default#\' == 0) return;\r\n\r\n$select = \"\r\n\r\n SELECT COUNT(*)\r\n FROM `zzzzsys_format`\r\n WHERE srm_type = \'#srm_type#\' AND IFNULL(srm_default,\'\') <> \'\'\r\n AND zzzzsys_format_id <> ?\r\n\r\n\";\r\n\r\n$stmt = nuRunQuery($select, [\'#record_id#\']);\r\n$row = db_fetch_row($stmt);\r\n$count = $row[0];\r\n\r\nif ($count !== 0) {\r\n nuDisplayError(nuTranslate(\'There is already a default Input Type\'));\r\n}', NULL, NULL, '1', '0', '0', NULL, NULL)
yvesf
Posts: 315
Joined: Sun Mar 14, 2021 8:48 am
Location: Geneva
Has thanked: 87 times
Been thanked: 11 times

Re: Add new format doesn't work anymore

Unread post by yvesf »

Hi Kevin,

It is better,I can create a custom format, but once I disable the default option, I can't set my custom format as the new default.
Capture d’écran 2025-02-22 185920.png
It solves my issue anyway.
Thx

Yves
You do not have the required permissions to view the files attached to this post.
kev1n
nuBuilder Team
Posts: 4292
Joined: Sun Oct 14, 2018 6:43 pm
Has thanked: 71 times
Been thanked: 444 times
Contact:

Re: Add new format doesn't work anymore

Unread post by kev1n »

Because there is already a default set? Unset that first.

Perhaps it would be more intuitive if the last set default were adopted as the default format though.

Here's another update:

Code: Select all

REPLACE INTO `zzzzsys_php` (`zzzzsys_php_id`, `sph_code`, `sph_description`, `sph_group`, `sph_php`, `sph_run`, `sph_zzzzsys_form_id`, `sph_system`, `sph_global`, `sph_template`, `sph_hide`, `sph_json`) VALUES ('nuformat_BS', 'nuformat_BS', 'System PHP', 'nubuilder', 'if (\'#srm_default#\' == 0) return;\r\n\r\n$update = \"\r\n\r\n UPDATE `zzzzsys_format`\r\n SET srm_default = 0\r\n WHERE srm_type = \'#srm_type#\'\r\n AND zzzzsys_format_id <> ?\r\n\r\n\";\r\n\r\nnuRunQuery($update, [\'#record_id#\']);\r\n', NULL, NULL, '1', '0', '0', NULL, NULL)
yvesf
Posts: 315
Joined: Sun Mar 14, 2021 8:48 am
Location: Geneva
Has thanked: 87 times
Been thanked: 11 times

Re: Add new format doesn't work anymore

Unread post by yvesf »

Hi Kevin,

In the previous case, the default setting was disabled before attempting to revert it. With these modifications, a UI bug has been introduced: the selected format disappears and appears empty.
Video_2025-02-23_075649.gif
Thx,

Yves
You do not have the required permissions to view the files attached to this post.
kev1n
nuBuilder Team
Posts: 4292
Joined: Sun Oct 14, 2018 6:43 pm
Has thanked: 71 times
Been thanked: 444 times
Contact:

Re: Add new format doesn't work anymore

Unread post by kev1n »

Thanks for reporting, this should fix it:

Code: Select all

REPLACE INTO `zzzzsys_form` (`zzzzsys_form_id`, `sfo_type`, `sfo_code`, `sfo_description`, `sfo_group`, `sfo_breadcrumb_title`, `sfo_table`, `sfo_primary_key`, `sfo_browse_redirect_form_id`, `sfo_browse_row_height`, `sfo_browse_rows_per_page`, `sfo_browse_title_multiline`, `sfo_browse_autoresize_columns`, `sfo_browse_sql`, `sfo_javascript`, `sfo_browse_javascript`, `sfo_edit_javascript`, `sfo_style`, `sfo_mobile_view`, `sfo_json`) VALUES ('nuobject', 'browseedit', 'nuobject', 'Objects', NULL, '#sob_all_id#|New', 'zzzzsys_object', 'zzzzsys_object_id', '', '0', '0', '1', NULL, 'SELECT * FROM zzzzsys_object\r\nJOIN #TABLE_ID# ON zzzzsys_object_id = theid\r\nJOIN zzzzsys_tab ON zzzzsys_tab_id = sob_all_zzzzsys_tab_id\r\nJOIN zzzzsys_form ON zzzzsys_form_id = syt_zzzzsys_form_id \r\n\r\nWHERE (\r\n (sob_all_type = \'#nuBrowseTitle0_select#\' OR \'#nuBrowseTitle0_select#\' = \'\' OR \'#nuBrowseTitle0_select#\' LIKE \'#%\' )\r\n AND\r\n (sob_input_type = \'#nuBrowseTitle1_select#\' OR \'#nuBrowseTitle1_select#\' = \'\' OR \'#nuBrowseTitle1_select#\' LIKE \'#%\' )\r\n)\r\n\r\nORDER BY sfo_description, sob_input_type, sob_all_id', NULL, 'var a = [[\"\",\"\"],[\"calc\",\"Calc\"],[\"display\",\"Display\"],[\"contentbox\",\"ContentBox\"],[\"editor\",\"WYSIWYG Editor\"],[\"html\",\"HTML\"],[\"image\",\"Image\"],[\"input\",\"Input\"],[\"lookup\",\"Lookup\"],[\"run\",\"Run\"],[\"select\",\"Select\"],[\"subform\",\"Subform\"],[\"textarea\",\"Textarea\"],[\"word\",\"Word\"]];\r\nnuAddBrowseTitleSelect(0, a);\r\n\r\n$(\'#nuBrowseTitle9_select\').parent().off(\"touchstart\");\r\n\r\na = [[\"\",\"\"],[\"nuDate\",\"nuDate\"],[\"nuNumber\",\"nuNumber\"],[\"nuScroll\",\"nuScroll\"],[\"nuAutoNumber\",\"nuAutoNumber\"],[\"button\",\"Button\"],\r\n [\"checkbox\",\"Checkbox\"],[\"color\",\"Color\"],[\"datetime-local\",\"Datetime-Local\"],[\"email\",\"Email\"],[\"file\",\"File\"],\r\n [\"image\",\"Image\"],[\"month\",\"Month\"],[\"number\",\"Number\"],[\"password\",\"Password\"],[\"radio\",\"Radio\"],[\"range\",\"Range\"],\r\n [\"reset\",\"Reset\"],[\"search\",\"Search\"],[\"tel\",\"Telephone\"],[\"text\",\"Text\"],[\"time\",\"Time\"],[\"url\",\"URL\"],[\"week\",\"Week\"]];\r\n\r\nnuAddBrowseTitleSelect(1, a);\r\n$(\'#nuBrowseTitle1_select\').parent().off(\"touchstart\");\r\n\r\n$(\"[data-nu-column=\'0\']\").each(function() {\r\n $(this).addClass(\'nu_\' + this.textContent).addClass(\'nuCellColored\');\r\n});\r\n\r\n\r\n$(\"[data-nu-column=\'4\']\").each(function() {\r\n $(this).html(stripHTMLTags($(this).html()).replace(/&nbsp;/g, \' \').trim());\r\n});\r\n\r\n\r\nfunction stripHTMLTags(s) {\r\n return s == \'\' ? \'\' : s.replace(/<\\/?[^>]+(>|$)/g, \"\");\r\n}\r\n', 'if (! nuDevMode()) {\r\n nuHideTabById(\'nu61e9964c9bf5e13\'); // JSON\r\n}\r\n\r\n// Code Snippets form\r\nnuSetSnippetFormFilter(0, 0, 1, 0); // SQL\r\n\r\nnuHide(\'sob_code_snippet_display_lookupcode\');\r\nnuHide(\'sob_code_snippet_select_lookupcode\');\r\nnuHide(\'label_zzzzsys_event_sf\');\r\nnuHide(\'label_sob_html_code\');\r\nnuShow(\'sob_run_zzzzsys_form_open_button\', sob_run_zzzzsys_form_id.value !== \'\');\r\nnuShow(\'sob_lookup_zzzzsys_form_open_button\', sob_lookup_zzzzsys_form_id.value !== \'\');\r\nnuObjectDisplayInputIcon();\r\nnuObjectDisplayAccessCondition();\r\nnuObjectProcedureChanged();\r\n\r\nnuDisable(\'sob_calc_formula\');\r\nnuSetToolTip(\'sob_all_id_create_button\', nuTranslate(\'Add database column\'));\r\n\r\nwindow.parentTabs = parent.$(\'.nuTab\');\r\n\r\n\r\nvar tabIdDescLeft = $(\'#sob_all_zzzzsys_tab_iddescription\').nuCSSNumber(\'left\') + 11;\r\n$(\'#sob_all_zzzzsys_tab_iddescription\').css(\'left\', tabIdDescLeft + \'px\');\r\n\r\n$(\'#zzzzsys_event_sfsev_javascript\').attr(\'id\', \'jsfuntitle\');\r\n$(\'#sob_calc_formula\').addClass(\'nuCalculatorCurrency\').css(\'font-size\', \'12px\');\r\n$(\'#sob_all_display_condition\').addClass(\'sql\');\r\n$(\'#sob_all_default_value_sql\').addClass(\'sql\');\r\n$(\'#sob_display_sql\').addClass(\'sql\');\r\n$(\'#sob_input_datalist\').addClass(\'sql\');\r\n$(\'#sob_select_sql\').addClass(\'sql\');\r\n$(\'#sob_lookup_javascript\').addClass(\'js\');\r\n$(\'#sob_input_javascript\').addClass(\'js\');\r\n$(\'#sob_html_javascript\').addClass(\'js\');\r\n$(\'#sob_lookup_php\').addClass(\'php\');\r\n$(\'#sob_html_code\').addClass(\'html\');\r\n$(\'#sob_all_style\').addClass(\'css\');\r\n$(\'#sob_input_attribute\').addClass(\'css\');\r\n$(\"[id$=\'sev_javascript\']\").addClass(\'js\');\r\n$(\"#title_zzzzsys_event_sfsev_javascript\").removeClass(\'js\');\r\n$(\'#sob_run_zzzzsys_form_open_button\').toggleClass(\'input_button nuButton nuLookupButton\');\r\n$(\'#sob_lookup_zzzzsys_form_open_button\').toggleClass(\'input_button nuButton nuLookupButton\');\r\n$(\'#sob_subform_zzzzsys_form_open_button\').toggleClass(\'input_button nuButton nuLookupButton\');\r\n$(\'#sob_all_type_open_button\').toggleClass(\'input_button nuButton nuLookupButton\');\r\n\r\nnuObjectPreviewIcon(\'sob_input_icon_preview_html\', nuGetValue(\'sob_input_icon\'));\r\n\r\n\r\nvar placeholderText = `1. SQL: A valid SQL query that returns 2 columns:\r\nSELECT table_id, description FROM table\r\n\r\nOr:\r\n\r\n2. List: A list delimited by a |:\r\n1|First|\r\n2|Second|\r\n3|Third\r\n\r\nOr:\r\n\r\n3. JSON/Array: if both the display and the bound value are identical:\r\n\r\n[\"value1\", \"value1\", \"value1\"]\r\n`;\r\n\r\n$(\'#sob_select_sql\').on(\'focus\', function() {\r\n $(this).prop(\'placeholder\', placeholderText);\r\n}).on(\'blur\', function() {\r\n $(this).prop(\'placeholder\', \'\');\r\n});\r\n\r\n$(\'#nuTab8\').on(\'click\', function() {\r\n nuObjectTestChart();\r\n});\r\n\r\nnuAttachButtonImage(\'icon_lujs\', \'LUJS\');\r\nnuAttachButtonImage(\'icon_html\', \'HTML\');\r\nnuAttachButtonImage(\'ab_event\', \'AB\', \'nuButtonImageSmall\');\r\n// nuAttachButtonImage(\'di_sql\', \'SQL\',\'nuButtonImageSmall\');\r\n// nuAttachButtonImage(\'se_sql\', \'SQL\',\'nuButtonImageSmall\');\r\n\r\n$(\'#viewflowchart\')\r\n.css(\'padding\', \'46px 0px 0px 3px\')\r\n.css(\'text-align\', \'left\')\r\n.css(\'background-size\', \'75px\');\r\n\r\n\r\nif ($(\'#zzzzsys_event_sf000sev_event\').val() !== \'\') {\r\n $(\'#nuTab10\').css(\'font-weight\', \'bold\');\r\n}\r\n\r\nnuObjectInputTypeChanged(nuGetValue(\'sob_input_type\'));\r\nnuObjectHideCalcObjects();\r\nnuObjectPopulateHTML();\r\nnuObjectAddDataListToRunId();\r\n\r\n$(\"button[id*=\'_btn_\']\").addClass(\'nuQuickButton\').removeClass(\'input_button nuButton\');\r\n\r\nvar filter = String(window.filter).split(\'|\');\r\n\r\nif (filter[0] == \'fromfastform\') {\r\n\r\n $(\'#nuDeleteButton\').remove();\r\n $(\'#nuCloneButton\').remove();\r\n $(\'#nuSaveButton\').remove();\r\n $(\'#sob_all_id\').val(filter[1]).addClass(\'nuHighlight\');\r\n $(\'#sob_all_label\').val(filter[2]).addClass(\'nuHighlight\');\r\n\r\n}\r\n\r\nnuACEInitDblClickHandlers();\r\n\r\nnuHide(\'sob_input_format\');\r\nvar sit = nuGetValue(\'sob_input_type\');\r\nnuShow(\'sob_input_format\', sit == \'nuDate\' || sit == \'nuNumber\');\r\nnuShow(\'sob_input_javascript\', sit == \'nuScroll\');\r\n\r\nnuObjectColor();\r\nnuGetStartingTab();\r\n\r\n\r\nif (!nuIsNewRecord()) {\r\n\r\n nuObjectMaximiseParentifDragOptionsBox();\r\n nuObjectDisplayIncHeightButtons();\r\n nuObjectShowDataType();\r\n\r\n} else {\r\n\r\n nuSetValue(\'sob_all_top\', 0);\r\n nuSetValue(\'sob_all_left\', 60);\r\n nuSetValue(\'sob_all_height\', 22);\r\n nuSetValue(\'sob_all_width\', 100);\r\n nuSetValue(\'sob_all_validate\', 0);\r\n nuSetValue(\'sob_all_access\', 0);\r\n nuSetValue(\'sob_all_align\', \'left\');\r\n nuSetValue(\'sob_all_cloneable\', \'1\');\r\n\r\n nuHide(\'sob_all_type_open_button\');\r\n nuHide(\'sob_all_type_input\');\r\n nuHide(\'sob_all_id_create_button\');\r\n\r\n if (nuIsIframe()) {\r\n let pTab = nuSelectedTabId(parent);\r\n if (pTab !== null) {\r\n nuGetLookupId(pTab, \'sob_all_zzzzsys_tab_id\', false);\r\n } else {\r\n if (nuGetValue(\'sob_all_zzzzsys_tab_id\') === \'\' && parent.nuCurrentProperties().form_code == \'nuuserhome\') {\r\n nuGetLookupId(\'nufastforms\', \'sob_all_zzzzsys_tab_id\', false);\r\n }\r\n }\r\n $(\'#sob_all_label\').trigger(\"focus\");\r\n nuSetValue(\'sob_all_type\', \'input\');\r\n nuSetValue(\'sob_input_type\', \'text\');\r\n }\r\n\r\n}\r\n\r\nnuObjectUpdateLookupDescriptionDatalist();\r\nnuObjectUpdateIdDatalist();\r\nnuObjectRunMethodChanged();\r\nnuHasNotBeenEdited();\r\n\r\n\r\nfunction nuObjectMaximiseParentifDragOptionsBox() {\r\n\r\n let db = parent.parent.$(\'.nuDragOptionsBox\');\r\n if (db.length === 0) return;\r\n\r\n let dd = db.parent(); // nuDragDialog\r\n let l = parseInt(dd.css(\'left\'), 10);\r\n\r\n if (l == 2) return; // already maximised\r\n\r\n let dt = db.nextAll(\'.nuDialogTitle\').find(\'#dialogTitleWords\');\r\n if (dt.length !== 0) {\r\n var e = {\r\n target: {\r\n id: \"dialogTitleWords\"\r\n }}\r\n parent.parent.nuResizeWindow(e);\r\n }\r\n\r\n}\r\n\r\nfunction nuObjectColumnDataType(table, id) {\r\n\r\n let s = nuFORM.tableSchema[table];\r\n let i = -1;\r\n if (typeof s !== \"undefined\") {\r\n i = s.names.indexOf(id.val());\r\n }\r\n\r\n return i > -1 ? s.types[i]: \'\';\r\n\r\n}\r\n\r\nfunction nuObjectShowDataType() {\r\n\r\n let id = $(\'#sob_all_id\');\r\n let iDataType = $(\'#sob_all_id_datatype\');\r\n\r\n let table = nuGetValue(\"sob_all_table\");\r\n let dataType = \'\';\r\n\r\n if (table !== \'\' && id.val() !== \'\') {\r\n dataType = nuObjectColumnDataType(table, id);\r\n\r\n }\r\n\r\n iDataType.val(dataType);\r\n nuObjectDisplayCreateButton();\r\n\r\n}\r\n\r\nfunction nuObjectObjectNoId() {\r\n return [\'word\',\r\n \'html\',\r\n \'button\',\r\n \'run\',\r\n \'subform\',\r\n \'contentbox\'].indexOf(nuGetValue(\'sob_all_type\')) !== -1;\r\n}\r\n\r\nfunction nuObjectDisplayCreateButton() {\r\n\r\n let dataType = nuObjectColumnDataType(nuGetValue(\"sob_all_table\"), $(\'#sob_all_id\'));\r\n nuShow(\'sob_all_id_create_button\', dataType === \'\' && nuGetValue(\'sob_all_id\') !== \'\' && nuGetValue(\'sob_all_table\') !== \'\' && !nuObjectObjectNoId());\r\n\r\n}\r\n\r\nfunction nuObjectDisplayIncHeightButtons() {\r\n\r\n var showButtons = [\'html\',\r\n \'textarea\',\r\n \'subform\',\r\n \'image\',\r\n \'contentbox\'].indexOf(nuGetValue(\'sob_all_type\')) !== -1;\r\n\r\n $(\'[id^=sob_height_btn_set]\').nuShow(showButtons);\r\n}\r\n\r\n\r\nfunction nuObjectTestChart() {\r\n\r\n let g = nuGetValue(\'sob_html_chart_type\');\r\n\r\n if (g === \'\' || nuGetValue(\'sob_all_type\') !== \'html\') {\r\n $(\'#google_chart\').html(\'\');\r\n return;\r\n }\r\n\r\n let c = \'ComboChart\';\r\n let t = nuGetValue(\'sob_html_title\');\r\n let x = nuGetValue(\'sob_html_vertical_label\');\r\n let y = nuGetValue(\'sob_html_horizontal_label\');\r\n let l = \'bars\';\r\n let s = false;\r\n\r\n let a = [\r\n [\'Month\',\r\n \'Shane\',\r\n \'Dave\',\r\n \'Adam\',\r\n \'Paul\',\r\n \'Chris\'],\r\n [\'2019\',\r\n 100,\r\n 200,\r\n 300,\r\n 400,\r\n 500],\r\n [\'2020\',\r\n 165,\r\n 238,\r\n 322,\r\n 498,\r\n 550],\r\n [\'2021\',\r\n 165,\r\n 938,\r\n 522,\r\n 998,\r\n 450],\r\n [\'2022\',\r\n 135,\r\n 1120,\r\n 599,\r\n 1268,\r\n 288]\r\n ];\r\n\r\n if (g == \'p\') c = \'PieChart\';\r\n if (g == \'l\') l = \'lines\';\r\n if (g == \'bh\') c = \'BarChart\';\r\n if (g == \'bhs\') c = \'BarChart\';\r\n if (g == \'bs\') s = true;\r\n if (g == \'bhs\') s = true;\r\n\r\n nuChart(\'google_chart\', c, a, t, x, y, l, s);\r\n\r\n}\r\n\r\nfunction nuObjectChartOnReady(i, wrapper) {\r\n // let wrapper = window[\"google_chart_wrapper\"];\r\n var options = {\r\n seriesType: wrapper.m.seriesType,\r\n chartArea: {\r\n left: \"10%\",\r\n width: \"65%\"\r\n }\r\n };\r\n wrapper.setOptions(options);\r\n wrapper.draw();\r\n}\r\n\r\nfunction nuObjectAddDataListToRunId() {\r\n\r\n let arrRecordId = [\r\n [\" \",\r\n nuTranslate(\"Leave blank to open a Browse or Launch Form\")],\r\n [\"-1\",\r\n nuTranslate(\"Open a new Record\")],\r\n [\"#EXAMPLE_HASH_COOKIE#\",\r\n nuTranslate(\"Use a Hash Cookie\")]\r\n ];\r\n\r\n nuAddDatalist(\'sob_run_id\', arrRecordId);\r\n\r\n $(\'#sob_run_id\').on(\'input\', function() {\r\n if ($(this).val() == \' \') {\r\n $(this).val(\'\').change();\r\n }\r\n\r\n });\r\n\r\n}\r\n\r\nfunction nuObjectColor() {\r\n\r\n $(\'.nuValidate\').removeClass(\'nuValidate\');\r\n\r\n let e = $(\'#sob_all_type\').hasClass(\'nuEdited\');\r\n let o = [];\r\n\r\n o.run = 1;\r\n o.display = 2;\r\n o.select = 3;\r\n o.lookup = 4;\r\n o.subform = 5;\r\n o.image = 6;\r\n o.input = 7;\r\n o.html = 8;\r\n o.calc = 9;\r\n\r\n $(\'#sob_all_type\').removeClass();\r\n\r\n if (e) {\r\n //-- keep class if edited\r\n $(\'#sob_all_type\').addClass(\'nuEdited\');\r\n }\r\n\r\n $(\'#sob_all_type\').addClass(\'nu_\'+$(\'#sob_all_type\').val());\r\n\r\n $(\"#sob_all_type > option\").each(function() {\r\n $(this).addClass(\'nu_\'+this.value);\r\n });\r\n\r\n let t = o[$(\'#sob_all_type\').val()];\r\n\r\n $(\"[id^=\'nuTab\']\").removeClass(\'nuRelatedTab\');\r\n\r\n for (let i = 1; i < o.length; i++) {\r\n $(\'#nuTab\' + i).removeClass(\'nuRelatedTab\');\r\n }\r\n\r\n $(\'#nuTab0\').addClass(\'nuRelatedTab\');\r\n $(\'#nuTab\' + t).addClass(\'nuRelatedTab\');\r\n\r\n}\r\n\r\n\r\nfunction nuObjectDisplayAllTypeInput() {\r\n\r\n let v = nuGetValue(\'sob_input_type\', \'text\');\r\n v = nuGetValue(\'sob_all_type\') == \'input\' ? v: \'\';\r\n $(\'#sob_all_type_input\').val(v);\r\n\r\n}\r\n\r\nfunction nuObjectTypeChanged() {\r\n\r\n nuShow(\'sob_all_type_open_button\', sob_all_type.value !== \'\');\r\n nuShow(\'sob_all_type_input\', sob_all_type.value !== \'\');\r\n\r\n nuObjectColor();\r\n nuObjectDisplayCreateButton();\r\n nuObjectDisplayIncHeightButtons();\r\n nuObjectDisplayAllTypeInput();\r\n nuObjectDisplayInputIcon();\r\n\r\n}\r\n\r\nfunction nuObjectInputTypeChanged(t) {\r\n\r\n nuHide(\'sob_input_format\');\r\n nuHide(\'sob_input_count\');\r\n nuHide(\'sob_input_javascript\');\r\n nuHide(\'sob_input_datalist\');\r\n nuHide(\'sob_input_file_target\');\r\n\r\n\r\n if (t == \'nuScroll\') {\r\n nuShow(\'sob_input_javascript\');\r\n }\r\n\r\n if (t == \'file\') {\r\n nuShow(\'sob_input_file_target\');\r\n\r\n if (nuGetValue(\'sob_input_file_target\') == \'\') {\r\n nuSetValue(\'sob_input_file_target\', \'0\');\r\n }\r\n\r\n nuObjectFileUploadScript();\r\n }\r\n\r\n if (t == \'nuAutoNumber\') {\r\n\r\n nuShow(\'sob_input_count\');\r\n $(\'#sob_input_javascript\').val(\'\').addClass(\'nuEdited\');\r\n\r\n }\r\n\r\n if (t == \'nuDate\' || t == \'nuNumber\' || t == \'number\' || t == \'text\' || t == \'email\' || t == \'search\' || t == \'month\') {\r\n nuShow(\'sob_input_datalist\');\r\n if ($(\'#sob_input_datalist\').val() == \'\' && $(\'#sob_all_id_datatype\').val() !== \'\') {\r\n // $(\'#sob_input_datalist\').val(\"SELECT DISTINCT `\" + $(\"#sob_all_id\").val() + \"` FROM `\" + $(\'#sob_all_table\').val() + \"` ORDER BY 1\").change();\r\n }\r\n }\r\n\r\n if (t == \'nuDate\' || t == \'nuNumber\') {\r\n\r\n nuShow(\'sob_input_format\');\r\n\r\n $(\'#sob_input_format\').children().each(function(index) {\r\n\r\n $(this).show();\r\n\r\n if ($(this).val()[0] == \'D\' && t != \'nuDate\') {\r\n $(this).hide();\r\n }\r\n if ($(this).val()[0] == \'N\' && t != \'nuNumber\') {\r\n $(this).hide();\r\n }\r\n\r\n });\r\n\r\n nuSetProperty(\'NUFORMATGETDEFAULT_INPUTTYPE\', nuGetValue(\'sob_input_type\').slice(2));\r\n nuRunPHPHidden(\'NUFORMATGETDEFAULT\');\r\n \r\n\r\n\r\n }\r\n\r\n nuObjectDisplayInputIcon();\r\n nuObjectDisplayAllTypeInput();\r\n\r\n}\r\n\r\nfunction nuSetDefaultFormat(format) {\r\n if (format !== \'\' && nuGetValue(\'sob_input_format\') === \'\') {\r\n nuSetText(\'sob_input_format\', format);\r\n }\r\n}\r\n\r\n\r\nfunction nuObjectDisplayInputIcon() {\r\n nuShow(\'sob_input_icon\',\r\n sob_input_type.value == \'button\' || sob_all_type.value == \'run\' || sob_all_type.value == \'word\');\r\n}\r\n\r\nfunction nuObjectDisplayAccessCondition() {\r\n nuShow(\'sob_all_access_condition\',\r\n sob_all_access.value == \'9\');\r\n $(\'[nu-access-button]\').nuShow(sob_all_access.value != \'9\');\r\n}\r\n\r\nfunction nuObjectHideCalcObjects() {\r\n\r\n var f = $(\'#sob_all_zzzzsys_form_id\').val();\r\n\r\n $(\'#add_total\').children().each(function(index) {\r\n\r\n\r\n if ($(this).val() != f) {\r\n $(this).hide();\r\n }\r\n if ($(this).text() == $(\'#sob_all_id\').val()) {\r\n $(this).hide();\r\n }\r\n\r\n });\r\n\r\n}\r\n\r\nfunction nuObjectInsertOrAppendToCalcFormula(oldValue, newValue) {\r\n\r\n const manualMode = nuGetValue(\'sob_calc_formula_edit_mode_checkbox\');\r\n if (manualMode) {\r\n nuInsertAtCaret(\'sob_calc_formula\', newValue);\r\n } else {\r\n nuSetValue(\'sob_calc_formula\', oldValue + newValue);\r\n }\r\n\r\n}\r\n\r\nfunction nuObjectAddCalcObject(t) {\r\n\r\n const i = $(t).attr(\'data-nu-ids\');\r\n const oldValue = $(\'#sob_calc_formula\').val();\r\n const newValue = \"nuTotal(\'\" + i + \"\')\";\r\n\r\n if (i == \'\') {\r\n return;\r\n }\r\n\r\n $(\'#sob_calc_formula\').addClass(\'nuEdited\')\r\n\r\n nuObjectInsertOrAppendToCalcFormula(oldValue, newValue);\r\n\r\n $(\'#add_total\').val(\'\');\r\n\r\n nuHasBeenEdited();\r\n\r\n}\r\n\r\n\r\nfunction nuObjectAddToFormula(e) {\r\n\r\n const newValue = e.target.innerHTML;\r\n const oldValue = $(\'#sob_calc_formula\').val();\r\n\r\n if (newValue == \'Clear\') {\r\n\r\n $(\'#sob_calc_formula\')\r\n .val(\'\')\r\n .addClass(\'nuEdited\');\r\n return;\r\n\r\n }\r\n\r\n $(\'#sob_calc_formula\').addClass(\'nuEdited\')\r\n\r\n nuObjectInsertOrAppendToCalcFormula(oldValue, newValue);\r\n\r\n nuHasBeenEdited();\r\n\r\n}\r\n\r\n\r\n\r\nfunction nuObjectPopulateHTML() {\r\n\r\n var o = nuCalcObjects();\r\n var a = [];\r\n\r\n for (var i = 0; i < o.length; i++) {\r\n\r\n var ids = String(o[i].ids);\r\n var ty = o[i].type;\r\n var id = String(o[i].ids).split(\'.\');\r\n var sp = \'&nbsp;\';\r\n\r\n if (id.length == 1) {\r\n a.push(\'<tr><td><div title=\"\' + ty + \'\" style=\"overflow:hidden;width:305px;text-align:left;padding:2px\" onclick=\"nuObjectAddCalcObject(this);\" class=\"nuCalculatorButton nu_\' + o[i].type + \'\" data-nu-ids=\"\' + ids + \'\">\' + ids + \'</div></td></tr>\');\r\n } else {\r\n\r\n var h = \'<span title=\"subform\" class=\"nu_subform\">\' + id[0] + \'</span>.<span title=\"\' + ty + \'\" class=\"nu_input\" style=\"padding:7px 5px 7px 5px\">\' + id[1] + sp.repeat(200) + \'</span>\';\r\n a.push(\'<tr><td><div style=\"overflow:hidden;width:305px;text-align:left;padding:2px;height:28px\" onclick=\"nuObjectAddCalcObject(this);\" class=\"nuCalculatorButton nu_subform\" data-nu-ids=\"\' + ids + \'\">\' + h + \'</div></td></tr>\');\r\n\r\n }\r\n\r\n }\r\n\r\n $(\'#add_total\').html(\'<table>\' + a.join(\'\') + \'</table>\');\r\n\r\n}\r\n\r\n\r\nfunction nuObjectSetSelectIndex(i, index) {\r\n\r\n $(\"#\" + i).prop(\"selectedIndex\", index).change();\r\n\r\n}\r\n\r\nfunction nuObjectSetLookupWidth() {\r\n var w = $(\'#sob_lookup_description\').val() == $(\'#sob_lookup_code\').val() ? 0: 150;\r\n var cw = $(\'#sob_lookup_description_width\').val();\r\n if (cw == 0 || cw == 150 || w == 0) $(\'#sob_lookup_description_width\').val(w).change();\r\n}\r\n\r\n\r\nfunction nuObjectSubFormRowsCount(subform, fieldname) {\r\n\r\n var sf = nuSubformObject(subform);\r\n var col = sf.fields.indexOf(fieldname);\r\n var c = 0;\r\n for (var row = 0; row < sf.rows.length; row++) {\r\n if (sf.deleted[row] == 0 && sf.rows[row][col].trim() != \'\') c++;\r\n }\r\n\r\n return c;\r\n\r\n}\r\n\r\nfunction nuObjecEnsureAutoNumberEndsWithNumber(str) {\r\n if (str !== \'\') {\r\n nuSetValue(\'sob_input_count\', /\\d$/.test(str) ? str: \'1\');\r\n }\r\n}\r\n\r\nfunction nuBeforeSave() {\r\n\r\n nuObjectRunMethodChanged();\r\n nuObjectAdjustProperties();\r\n\r\n nuObjecEnsureAutoNumberEndsWithNumber(sob_input_count.value);\r\n \r\n if (!nuObjectIdIsValid(nuGetValue(\'sob_all_id\'))) {\r\n nuMessage(nuTranslate(\'Invalid ID\'));\r\n return false;\r\n }\r\n\r\n if ($(\'#sob_all_type\').val() == \'select\') {\r\n $(\'#sob_select_multiple\').addClass(\'nuEdited\');\r\n }\r\n\r\n $(\"#sob_all_event\").prop(\'checked\', nuObjectSubFormRowsCount(\'zzzzsys_event_sf\', \'sev_event\') > 0).trigger(\'change\');\r\n\r\n}\r\n\r\nfunction nuObjectAdjustProperties() {\r\n\r\n let type = nuGetValue(\'sob_all_type\');\r\n let access = nuGetValue(\'sob_all_access\');\r\n let validation = nuGetValue(\'sob_all_validate\');\r\n let inputType = nuGetValue(\'sob_input_type\');\r\n let inputFormat = nuGetValue(\'sob_input_format\');\r\n\r\n if (type !== \'input\') {\r\n if (inputType !== \'\') nuSetValue(\'sob_input_type\', \'\');\r\n if (inputFormat !== \'\') nuSetValue(\'sob_input_format\', \'\');\r\n }\r\n\r\n if (type.containsAny([\'word\', \'html\', \'image\', \'contentbox\', \'contentbox\'])) {\r\n if (validation !== \'0\') nuSetValue(\'sob_all_validate\', \'0\'); // validation --> none\r\n if (access == \'1\') nuSetValue(\'sob_all_access\', \'0\'); // readonly --> editable\r\n }\r\n\r\n if (type === \'word\') {\r\n if (access == \'1\') nuSetValue(\'sob_all_access\', \'0\'); // readonly --> editable\r\n if (validation !== \'0\') nuSetValue(\'sob_all_validate\', \'0\'); // validation --> none\r\n nuSetValue(\'sob_input_type\', \'\');\r\n nuSetValue(\'sob_input_format\', \'\');\r\n }\r\n\r\n if (type === \'display\') {\r\n if (access == \'1\') nuSetValue(\'sob_all_access\', \'0\'); // readonly --> editable\r\n }\r\n\r\n}\r\n\r\nfunction nuObjectRunMethodChanged() {\r\n\r\n var m = nuGetValue(\'sob_run_method\');\r\n nuEnable(\'sob_run_target\', m == \'b\');\r\n\r\n if ($(\'#sob_run_target\').prop(\"selectedIndex\") > 0 && m == \'b\') {\r\n return;\r\n }\r\n\r\n if (m == \'b\' || m == \'i\') {\r\n $(\'#sob_run_target\').prop(\"selectedIndex\", m == \'b\' ? 1: 0).change();\r\n }\r\n\r\n}\r\n\r\nfunction nuOnClone() {\r\n nuHide(\'sob_all_id_create_button\');\r\n}\r\n\r\nfunction nuObjectUpdateIdDatalist() {\r\n var t = nuFORM.tableSchema[nuGetValue(\"sob_all_table\")];\r\n nuAddDatalist(\'sob_all_id\', typeof t !== \"undefined\" ? t.names: []);\r\n}\r\n\r\nfunction nuObjectUpdateLookupDescriptionDatalist() {\r\n let arr = nuFORM.tableSchema[nuGetValue(\"sob_lookup_table\")]?nuFORM.tableSchema[nuGetValue(\"sob_lookup_table\")].names: [];\r\n nuAddDatalist(\'sob_lookup_description\', arr);\r\n}\r\n\r\nfunction nuObjectSetJSON() {\r\n\r\n const data = {\r\n\r\n \"type\": {\r\n\r\n \"version\": \"1.0\",\r\n \"mobile\": {\r\n \"version\": \"1.0\",\r\n \"name\": \"test1\",\r\n \"visible\": true,\r\n \"location\": {\r\n \"top\": sob_all_top.value,\r\n \"left\": sob_all_left.value\r\n },\r\n \"size\": {\r\n \"width\": sob_all_width.value,\r\n \"height\": sob_all_height.value\r\n },\r\n \"class\": [\"nuMobileInput\"]\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n var obj = JSON.stringify(data);\r\n nuSetValue(\'sob_all_json\', obj);\r\n\r\n}\r\n\r\n\r\nfunction nuObjectPreviewIcon(i, s) {\r\n\r\n s = nuEscapeHTML(s);\r\n\r\n let $i = $(\'#\'+i);\r\n\r\n $i.html(\'\');\r\n\r\n if (s.startsWith(\'fas \') || s.startsWith(\'fa \') || s.startsWith(\'far \') || s.startsWith(\'fa-\')) {\r\n $i.append(\'<i class=\"\' + s + \' fa-2x\' + \'\"></i>\');\r\n } else if (s.startsWith(\'<i class=\"fa\')) {\r\n let i = s.indexOf(\'>\', 10);\r\n $i.append(s.nuInsertString(i-1, \' fa-2x\'));\r\n\r\n } else {\r\n $i.append(s);\r\n }\r\n\r\n}\r\n\r\n\r\nfunction nuObjectFileUploadScript() {\r\n\r\n let htmlCode = $(\'#sob_html_code\');\r\n\r\n if (nuGetValue(\'sob_input_file_target\') == \'0\' && ! htmlCode.val().includes(\'Uppy\')) {\r\n\r\n const uppyScript = `\r\n <div id=\"#uppy_div#\"></div>\r\n\r\n <script>\r\n\r\n nuInitUppy();\r\n\r\n function nuInitUppy() {\r\n\r\n const $objId = $(\'#\' + \'#this_object_id#\');\r\n const target = \'#\' + \'#uppy_div#\';\r\n\r\n let uppy = nuUppyCreate();\r\n\r\n uppy.use(Uppy.Dashboard, {\r\n inline: true,\r\n bundle: true,\r\n height: $objId.nuCSSNumber(\'height\'),\r\n width: $objId.nuCSSNumber(\'width\'),\r\n target: target,\r\n showProgressDetails: true,\r\n replaceTargetContent: true,\r\n method: \'post\'\r\n })\r\n .use(Uppy.XHRUpload, {\r\n endpoint: \'core/nuapi.php\'\r\n })\r\n\r\n uppy.on(\'upload\', (file) => {\r\n uppy.setMeta({\r\n procedure: \'NUUPLOADFILE_TEMPLATE\',\r\n session_id: window.nuSESSION\r\n })\r\n });\r\n\r\n uppy.on(\'complete\', (result) => {\r\n\r\n if (window.nuOnFileUploadComplete) {\r\n nuOnFileUploadComplete(\'FS\', $objId.attr(\'id\'), result);\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n </script>\r\n `;\r\n\r\n nuSetValue(\'sob_html_code\', htmlCode.val() + uppyScript.trim());\r\n\r\n if (sob_all_height.value < 30) nuSetValue(\'sob_all_height\', \'250\');\r\n\r\n }\r\n\r\n\r\n\r\n}\r\n\r\n\r\n// Pick Tabs\r\n\r\nfunction nuObjectOpenMenu(event, menu, element) {\r\n event.stopPropagation();\r\n ctxmenu.show(menu, element);\r\n}\r\n\r\n\r\nfunction nuObjectSetTabId(tabTitle) {\r\n\r\n const tab = parent.$(\'.nuTab\').filter(function() {\r\n return $(this).html() == tabTitle;\r\n });\r\n\r\n if (tab.length == 1) {\r\n nuGetLookupId(tab.attr(\'data-nu-tab-id\'), \'sob_all_zzzzsys_tab_id\', true, true);\r\n\r\n }\r\n\r\n}\r\n\r\nfunction nuObjectMenuPickTabsClick(element, event) {\r\n\r\n if (!nuIsIframe()) {\r\n return;\r\n }\r\n\r\n var items = [];\r\n\r\n const item = {\r\n text: nuTranslate(\'Tabs\')\r\n };\r\n\r\n items.push(item);\r\n\r\n window.parentTabs.each(function() {\r\n var item =\r\n {\r\n text: nuContextMenuItemText(this.innerHTML, \"fa-regular fa-square\"),\r\n action: () => nuObjectSetTabId(this.innerHTML)\r\n }\r\n\r\n items.push(item);\r\n });\r\n\r\n nuObjectOpenMenu(event, items, element);\r\n\r\n}\r\n\r\nfunction nuObjectProcedureChanged() {\r\n const hasDisplayProcedure = sob_display_procedure.value === \'\';\r\n nuEnable(\'sob_display_sql\', hasDisplayProcedure);\r\n $(\'#sob_display_sql\').toggleClass(\'display-sql-strikethrough\', !hasDisplayProcedure);\r\n}\r\n\r\n$(\"#sob_display_procedurecode\").on(\"change\", function(event) {\r\n nuObjectProcedureChanged();\r\n});\r\n\r\n\r\n$(\'#sob_all_zzzzsys_tab_idbutton\').on(\'contextmenu\', function(e) {\r\n e.preventDefault();\r\n nuObjectMenuPickTabsClick(this, event);\r\n});\r\n\r\nfunction nuOnMobileViewComplete() { \r\n \r\n const elements = [\r\n { input: \'#sob_input_file_target\', label: \'#label_sob_input_file_target\' },\r\n { input: \'#sob_input_count\', label: \'#label_sob_input_count\' },\r\n { input: \'#sob_input_javascript\', label: \'#label_sob_input_javascript\' },\r\n { input: \'#sob_input_datalist\', label: \'#label_sob_input_datalist\', offsety: 80 }\r\n ];\r\n\r\n const inputAnchorTop = $(\'#sob_input_format\').nuCSSNumber(\'top\');\r\n const inputAnchorTopLabel = $(\'#label_sob_input_format\').nuCSSNumber(\'top\');\r\n\r\n elements.forEach(({ input, label, offsety = 0 }) => {\r\n\r\n $(input).css(\'top\', inputAnchorTop + offsety);\r\n $(label).css(\'top\', inputAnchorTopLabel + offsety);\r\n\r\n });\r\n \r\n}\r\n', ' .display-sql-strikethrough {\r\n text-decoration: line-through;\r\n color: #cdc7c7!important;\r\n }', '1', NULL)

kev1n
nuBuilder Team
Posts: 4292
Joined: Sun Oct 14, 2018 6:43 pm
Has thanked: 71 times
Been thanked: 444 times
Contact:

Re: Add new format doesn't work anymore

Unread post by kev1n »

PS: I updated the SQL above again, just a few minutes ago.
Post Reply