Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/HuasoFoundries/phpPgAdmin6.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'assets/js/ac_insert_row.js')
-rw-r--r--assets/js/ac_insert_row.js370
1 files changed, 185 insertions, 185 deletions
diff --git a/assets/js/ac_insert_row.js b/assets/js/ac_insert_row.js
index d6eff8fd..23abb75c 100644
--- a/assets/js/ac_insert_row.js
+++ b/assets/js/ac_insert_row.js
@@ -1,224 +1,224 @@
+/** globals jQuery */
var fkl_hasnext = false;
var fkl_hasprev = false;
+jQuery.ppa = jQuery.ppa || {
+ root: $('#root'),
+};
/* hide the value list */
function hideAc() {
- jQuery.ppa.o = 0;
- with(jQuery.ppa) {
- fklist.hide();
- fkbg.hide();
- }
+ jQuery.ppa.o = 0;
+ let { fklist, fkbg } = jQuery.ppa || {};
+ fklist.hide();
+ fkbg.hide();
}
+/* open/update the value list */
+function autocomplete(event) {
+ /* if pressing enter, fire a click on the selected line */
+ if (event.keyCode == 13) {
+ if (jQuery.ppa.i > 0) {
+ jQuery.ppa.fklist.find('tr').eq(jQuery.ppa.i).click();
+ }
+ return false;
+ } else if (event.keyCode == 38 || event.keyCode == 40) {
+ /* ignoring 38:up and 40:down */
+ return false;
+ } else if (
+ /* ignoring 9:tab, 37:left, 39:right, 16:shift, ctrl: 17, alt:18, 20:lockmaj */
+ event.keyCode == 9 ||
+ event.keyCode == 37 ||
+ event.keyCode == 39 ||
+ event.keyCode == 16 ||
+ event.keyCode == 17 ||
+ event.keyCode == 18 ||
+ event.keyCode == 20
+ ) {
+ return true;
+ } else if (event.keyCode == 27) {
+ /* esc */
+ hideAc();
+ } else {
+ /* request the list of possible values asynchronously */
+ /* if we refresh because of a value update,
+ * we reset back to offset 0 so we catch values
+ * if list is smaller than 11 values */
+ if (event.type == 'keyup') {
+ jQuery.ppa.o = 0;
+ }
+ openlist(this);
+ }
+ return true;
+}
/* enable/disable auto-complete feature */
function triggerAc(ac) {
- if (ac) {
- jQuery.ppa.attrs
- .bind('keyup.ac_action', autocomplete)
- .bind('focus.ac_action', autocomplete)
- .bind('keypress.ac_action', move)
- .addClass('ac_field');
- } else {
- jQuery.ppa.attrs
- .removeClass('ac_field')
- .unbind('.ac_action');
- }
+ if (ac) {
+ jQuery.ppa.attrs
+ .bind('keyup.ac_action', autocomplete)
+ .bind('focus.ac_action', autocomplete)
+ .bind('keypress.ac_action', move)
+ .addClass('ac_field');
+ } else {
+ jQuery.ppa.attrs.removeClass('ac_field').unbind('.ac_action');
+ }
}
/* select the given index value and highlight it */
function selectVal(index) {
- if (index == jQuery.ppa.i)
- return;
-
- // we catch the header as well so it takes th index 0
- var trs = jQuery.ppa.fklist.find('tr');
-
- // change colors for unselected
- if (jQuery.ppa.i > 0)
- trs.eq(jQuery.ppa.i).find('*').css({
- 'background-color': '#fff',
- 'color': ''
- });
-
- // change colors for newly selected
- trs.eq(index).find('*').css({
- 'background-color': '#3d80df',
- 'color': '#fff'
+ if (index == jQuery.ppa.i) {
+ return;
+ }
+
+ // we catch the header as well so it takes th index 0
+ var trs = jQuery.ppa.fklist.find('tr');
+
+ // change colors for unselected
+ if (jQuery.ppa.i > 0) {
+ trs.eq(jQuery.ppa.i).find('*').css({
+ 'background-color': '#fff',
+ color: '',
});
+ }
+
+ // change colors for newly selected
+ trs.eq(index).find('*').css({
+ 'background-color': '#3d80df',
+ color: '#fff',
+ });
- jQuery.ppa.i = index;
+ jQuery.ppa.i = index;
}
function openlist(e) {
- var elt = jQuery(e);
- var attnum = elt.attr('id').match(/\d+/)[0];
- /* FIXME we only support the first FK constraint of the field */
- var conid = attrs['attr_' + attnum][0];
-
- var constr = constrs["constr_" + conid];
-
- // get the changed attribute position in the arrays
- for (i = 0;
- (constr.pattnums[i] != attnum); i++);
-
- var datas = {
- fattpos: i,
- fvalue: e.value,
- database: database,
- 'keys[]': constr.pattnums,
- 'keynames[]': constr.pattnames,
- 'fkeynames[]': constr.fattnames,
- f_table: constr.f_table,
- f_schema: constr.f_schema,
- offset: jQuery.ppa.o
- };
-
- jQuery.ajax({
- url: subfolder + '/src/views/acinsert.php?server=' + server,
- type: 'post',
- data: datas,
- dataType: 'html',
- cache: false,
- contentType: 'application/x-www-form-urlencoded',
- success: function (ret) {
- jQuery.ppa.i = 0;
- jQuery.ppa.fkbg.show();
- with(jQuery.ppa.fklist) {
- html(ret);
- appendTo('#row_att_' + attnum);
- css('width', elt.css('width'));
- show();
- jQuery.ppa.numrow = find('tr').length;
- }
- }
- });
+ var elt = jQuery(e);
+ var attnum = elt.attr('id').match(/\d+/)[0];
+ /* FIXME we only support the first FK constraint of the field */
+ var conid = attrs['attr_' + attnum][0];
+
+ var constr = constrs['constr_' + conid];
+
+ // get the changed attribute position in the arrays
+ for (i = 0; constr.pattnums[i] != attnum; i++) {}
+
+ var datas = {
+ fattpos: i,
+ fvalue: e.value,
+ database: database,
+ 'keys[]': constr.pattnums,
+ 'keynames[]': constr.pattnames,
+ 'fkeynames[]': constr.fattnames,
+ f_table: constr.f_table,
+ f_schema: constr.f_schema,
+ offset: jQuery.ppa.o,
+ };
+
+ jQuery.ajax({
+ url: subfolder + '/src/views/acinsert.php?server=' + server,
+ type: 'post',
+ data: datas,
+ dataType: 'html',
+ cache: false,
+ contentType: 'application/x-www-form-urlencoded',
+ success: function (ret) {
+ jQuery.ppa.i = 0;
+ jQuery.ppa.fkbg.show();
+
+ jQuery.ppa.fklist
+ .html(ret)
+ .appendTo('#row_att_' + attnum)
+ .css('width', elt.css('width'))
+ .show();
+ jQuery.ppa.numrow = jQuery.ppa.fklist.find('tr').length;
+ },
+ });
}
-
/* move the cursor down or up,
* load available next/prev values if going out of bound */
function move(event) {
- /* selecting next value down.
- * if the list is closed, it will open next */
- if (event.keyCode == 40) {
- if (jQuery.ppa.fklist[0].style.display == 'block') {
- if ((jQuery.ppa.i + 1) < jQuery.ppa.numrow) {
- selectVal(jQuery.ppa.i + 1);
- } else if (fkl_hasnext == true) {
- jQuery.ppa.o += 11;
- openlist(this);
- }
- } else {
- openlist(this);
- }
+ /* selecting next value down.
+ * if the list is closed, it will open next */
+ if (event.keyCode == 40) {
+ if (jQuery.ppa.fklist[0].style.display == 'block') {
+ if (jQuery.ppa.i + 1 < jQuery.ppa.numrow) {
+ selectVal(jQuery.ppa.i + 1);
+ } else if (fkl_hasnext == true) {
+ jQuery.ppa.o += 11;
+ openlist(this);
+ }
+ } else {
+ openlist(this);
}
+ } else if (event.keyCode == 38) {
/* selecting prev value up */
- else if (event.keyCode == 38) {
- if ((jQuery.ppa.i - 1) > 0) {
- selectVal(jQuery.ppa.i - 1);
- } else if ((fkl_hasprev == true) && (jQuery.ppa.i == 1)) {
- jQuery.ppa.o -= 11;
- openlist(this);
- } else {
- selectVal(jQuery.ppa.numrow - 1);
- }
- }
-}
-
-/* open/update the value list */
-function autocomplete(event) {
-
- /* if pressing enter, fire a click on the selected line */
- if (event.keyCode == 13) {
- if (jQuery.ppa.i > 0) {
- jQuery.ppa.fklist.find('tr').eq(jQuery.ppa.i).click();
- }
- return false;
- }
- /* ignoring 38:up and 40:down */
- else if (event.keyCode == 38 || event.keyCode == 40) {
- return false;
- }
- /* ignoring 9:tab, 37:left, 39:right, 16:shift, ctrl: 17, alt:18, 20:lockmaj */
- else if (event.keyCode == 9 || event.keyCode == 37 || event.keyCode == 39 || event.keyCode == 16 || event.keyCode == 17 || event.keyCode == 18 || event.keyCode == 20) {
- return true;
- }
- /* esc */
- else if (event.keyCode == 27) {
- hideAc();
- }
- /* request the list of possible values asynchronously */
- else {
- /* if we refresh because of a value update,
- * we reset back to offset 0 so we catch values
- * if list is smaller than 11 values */
- if (event.type == 'keyup')
- jQuery.ppa.o = 0;
- openlist(this);
+ if (jQuery.ppa.i - 1 > 0) {
+ selectVal(jQuery.ppa.i - 1);
+ } else if (fkl_hasprev == true && jQuery.ppa.i == 1) {
+ jQuery.ppa.o -= 11;
+ openlist(this);
+ } else {
+ selectVal(jQuery.ppa.numrow - 1);
}
-
- return true;
+ }
}
/* bind actions on values lines: hover for style change, click for select */
jQuery('tr.acline').on('mouseover', function () {
- selectVal(jQuery('table.ac_values tr').index(this));
+ selectVal(jQuery('table.ac_values tr').index(this));
});
jQuery('tr.acline').on('click', function () {
- var a = jQuery(this).find('td > a.fkval');
+ var a = jQuery(this).find('td > a.fkval');
- for (i = 0; i < a.length; i++) {
- jQuery('input[name="values[' + a[i].name + ']"]').val(jQuery(a[i]).text());
- }
- hideAc();
+ for (i = 0; i < a.length; i++) {
+ jQuery('input[name="values[' + a[i].name + ']"]').val(jQuery(a[i]).text());
+ }
+ hideAc();
});
-
jQuery(document).ready(function () {
- /* register some global value in the ppa namespace */
- jQuery.ppa = {
- fklist: jQuery('#fklist'),
- attrs: jQuery('input[id^=attr_]'), // select fields with FK
- fkbg: jQuery('#fkbg'),
- i: 0, // selected value indice
- o: 0 // offset when navigating prev/next
- };
-
- jQuery.ppa.fklist.on('click', '#fkprev', function () {
- jQuery.ppa.o -= 11;
- /* get the field that is the previous html elt from the #fklist
- * and trigger its focus to refresh the list AND actualy
- * focus back on the field */
- jQuery('#fklist').prev().focus();
- });
-
-
- jQuery.ppa.fklist.on('click', '#fknext', function () {
- jQuery.ppa.o += 11;
- /* get the field that is the previous html elt from the #fklist
- * and trigger its focus to refresh the list AND actualy
- * focus back on the field*/
- jQuery('#fklist').prev().focus();
- });
-
- /* close the list when clicking outside of it */
- jQuery.ppa.fkbg.click(function (e) {
- hideAc();
- });
+ /* register some global value in the ppa namespace */
+ jQuery.ppa = {
+ fklist: jQuery('#fklist'),
+ attrs: jQuery('input[id^=attr_]'), // select fields with FK
+ fkbg: jQuery('#fkbg'),
+ i: 0, // selected value indice
+ o: 0, // offset when navigating prev/next
+ };
+
+ jQuery.ppa.fklist.on('click', '#fkprev', function () {
+ jQuery.ppa.o -= 11;
+ /* get the field that is the previous html elt from the #fklist
+ * and trigger its focus to refresh the list AND actualy
+ * focus back on the field */
+ jQuery('#fklist').prev().focus();
+ });
+
+ jQuery.ppa.fklist.on('click', '#fknext', function () {
+ jQuery.ppa.o += 11;
+ /* get the field that is the previous html elt from the #fklist
+ * and trigger its focus to refresh the list AND actualy
+ * focus back on the field*/
+ jQuery('#fklist').prev().focus();
+ });
+
+ /* close the list when clicking outside of it */
+ jQuery.ppa.fkbg.click(function (e) {
+ hideAc();
+ });
- /* do not submit the form when selecting a value by pressing enter */
- jQuery.ppa.attrs
- .keydown(function (e) {
- if (e.keyCode == 13 && jQuery.ppa.fklist[0].style.display == 'block')
- return false;
- });
-
- /* enable/disable auto-complete according to the checkbox */
- triggerAc(
- jQuery('#no_ac').click(function () {
- triggerAc(this.checked);
- })[0].checked
- );
-}); \ No newline at end of file
+ /* do not submit the form when selecting a value by pressing enter */
+ jQuery.ppa.attrs.keydown(function (e) {
+ if (e.keyCode == 13 && jQuery.ppa.fklist[0].style.display == 'block') {
+ return false;
+ }
+ });
+
+ /* enable/disable auto-complete according to the checkbox */
+ triggerAc(
+ jQuery('#no_ac').click(function () {
+ triggerAc(this.checked);
+ })[0].checked
+ );
+});