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.
Yves
Welcome to the nuBuilder Forums!
Register and log in to access exclusive forums and content available only to registered users.
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
-
- 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
You do not have the required permissions to view the files attached to this post.
-
- 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
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)
-
- 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
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. It solves my issue anyway.
Thx
Yves
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. It solves my issue anyway.
Thx
Yves
You do not have the required permissions to view the files attached to this post.
-
- 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
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:
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)
-
- 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
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. Thx,
Yves
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. Thx,
Yves
You do not have the required permissions to view the files attached to this post.
-
- 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
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(/ /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 = \' \';\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)
-
- nuBuilder Team
- Posts: 4292
- Joined: Sun Oct 14, 2018 6:43 pm
- Has thanked: 71 times
- Been thanked: 444 times
- Contact: