📄 inspectorindex.js
字号:
/* create */function inspectorIndexNew(data) { var tableName=''; if (data && data.type == 'table') tableName=data.name; lGo('newIndexWin'); _inspectorData=data; var form=document.forms['form_indexnew']; if (form) { try{ form['name'].value='new_index'; while (form['table'].options.length > 1) form['table'].remove(1); while (form['allfield'].options.length > 0) form['allfield'].remove(0); while (form['field'].options.length > 0) form['field'].remove(0); for (var i=0; i < _tables.length; i++) { var option=new Option(_tables[i].name, _tables[i].name); form['table'].options.add(option, 1); } if (tableName) { form['table'].value=tableName; inspectorIndexNewTableChange(tableName); } form['unique'].checked=form['unique'].defaultChecked=false; form['direction'][0].checked=false; form['direction'][1].checked=false; form['name'].focus(); form['name'].select(); }catch(e){} }}function inspectorIndexNewSubmit(showSql) { var form=document.forms['form_indexnew']; if (!form) return false; if (!trim(form['name'].value)) { alert('Insert new Index\'s name.'); form['name'].focus(); return; } if (!form['table'].value) { alert('Select table.'); form['table'].focus(); return; } if (form['field'].options.length <= 0) { alert('Select fields to index.'); form['field'].focus(); return; } if (!showSql && !confirm('Create new index?')) return false; var newName=form['name'].value; var table=form['table'].value; var field=[]; var unique=(form['unique'].checked == true)?'UNIQUE ':''; for (var i=0; i < form['field'].options.length; i++) { var node='"'+form['field'].options[i].value+'"'; if (form['field'].options[i].direction == 'DESC') node+=' DESC'; else node+=' ASC'; field.push(node); } var sql='CREATE '+unique+'INDEX "'+newName+'" ON "'+table+'" ('+(field.join(','))+')'; if (showSql) return dbShowSQL(sql); dbExecCommand(sql, inspectorIndexNewResponse); return false;}function inspectorIndexNewResponse(dbRes) { if (dbRes) { inspectorDdlClear(); dbExecCommand('show index', inspectorIndexListDraw); lHide(); }}function inspectorIndexNewTableChange(table) { var form=document.forms['form_indexnew']; if (!form) return; if (!table) return; while (form['allfield'].options.length > 0) form['allfield'].remove(0); while (form['field'].options.length > 0) form['field'].remove(0); dbExecCommand('DESC "'+table+'"', inspectorIndexNewTableChangeResponse);}function inspectorIndexNewTableChangeResponse(dbRes) { var form=document.forms['form_indexnew']; if (!form) return; while (form['allfield'].options.length > 0) form['allfield'].remove(0); if (dbRes.row) { for (var i=0; i < dbRes.row.length; i++) { var option=new Option(dbRes.row[i].data[0], dbRes.row[i].data[0]); form['allfield'].options.add(option, form['allfield'].options.length); } }}function inspectorIndexDirection(field) { if (!field || !field.form) return; var form=field.form; if (field.selectedIndex < 0 || field.options.length <= 0) return; if (field.options[field.selectedIndex].direction == 'DESC') form['direction'][1].checked=true; else form['direction'][0].checked=true;}function inspectorIndexFieldMove(field) { if (!field || !field.form) return; var form=field.form; var targetField=form[(field.name == 'field'?'allfield':'field')]; if (!targetField) return; if (field.selectedIndex < 0 || field.options.length <= 0) return; var option=new Option(field.options[field.selectedIndex].text, field.options[field.selectedIndex].value); targetField.options.add(option, targetField.options.length); field.remove(field.selectedIndex);}function inspectorIndexDirectionChange(field) { if (!field || !field.form || !field.form['field']) return; var form=field.form; if (field.form['field'].selectedIndex < 0 || field.form['field'].options.length <= 0) return; var option=field.form['field'].options[field.form['field'].selectedIndex]; option.direction=field.value;}/* rebuild */function inspectorIndexRebuild(data) { if (data && data.type && data.name) dbExecCommand('reindex "'+data.name+'"', inspectorIndexRebuildResponse);}function inspectorIndexRebuildResponse(dbRes) { alert('Rebuld index is OK.');}/* modify */function inspectorIndexModify(data) { if (!data || data.type != 'index') return; lGo('editIndexWin'); _inspectorData=data; var form=document.forms['form_indexedit']; if (form) { try{ form['name'].value=form['curname'].value=data.name; form['table'].value=data.table; if (data.ddl.match(/^\s*CREATE\s+UNIQUE\s+INDEX/i)) form['unique'].checked=form['unique'].defaultChecked=true; else form['unique'].checked=form['unique'].defaultChecked=false; inspectorIndexModifyField(data.table); form['direction'][0].checked=false; form['direction'][1].checked=false; form['name'].focus(); form['name'].select(); }catch(e){} }}function inspectorIndexModifyField(table) { var form=document.forms['form_indexedit']; if (!form) return; if (!table) return; while (form['allfield'].options.length > 0) form['allfield'].remove(0); while (form['field'].options.length > 0) form['field'].remove(0); dbExecCommand('DESC "'+table+'"', inspectorIndexModifyFieldResponse);}function inspectorIndexModifyFieldResponse(dbRes) { var form=document.forms['form_indexedit']; if (!form || !_inspectorData) return; while (form['allfield'].options.length > 0) form['allfield'].remove(0); while (form['field'].options.length > 0) form['field'].remove(0); if (dbRes.row) { var data=_inspectorData; var match=data.ddl.match(/[(]([^)]+)[)]\s*$/); var selected=[]; var direction=[]; if (match) { var tmp=match[1].split(','); for (var i=0; i < tmp.length; i++) { match=tmp[i].match(/\s+(ASC|DESC|)\s*$/i); if (match) { if (!match[1]) match[1]='ASC'; else match[1]=match[1].toUpperCase(); }else match=[,'ASC']; var field=strip(trim(tmp[i].replace(/\s+(ASC|DESC)\s*$/i, ''))); selected.push(field); direction.push(match[1]); } } for (var i=0; i < dbRes.row.length; i++) { var option=new Option(dbRes.row[i].data[0], dbRes.row[i].data[0]); var key=arraySearch(dbRes.row[i].data[0], selected); if (key >= 0) { option.direction=direction[key]; form['field'].options.add(option, form['field'].options.length); }else form['allfield'].options.add(option, form['allfield'].options.length); } }}function inspectorIndexEditSubmit(showSql) { var form=document.forms['form_indexedit']; if (!form) return false; if (!trim(form['name'].value)) { alert('Insert new Index\'s name.'); form['name'].focus(); return; } if (!form['table'].value) { alert('Select table.'); form['table'].focus(); return; } if (form['field'].options.length <= 0) { alert('Select fields to index.'); form['field'].focus(); return; } if (!showSql && !confirm('Edit index?')) return false; var curName=form['curname'].value; var newName=form['name'].value; var table=form['table'].value; var unique=(form['unique'].checked == true)?'UNIQUE ':''; var field=[]; for (var i=0; i < form['field'].options.length; i++) { var node='"'+form['field'].options[i].value+'"'; if (form['field'].options[i].direction == 'DESC') node+=' DESC'; else node+=' ASC'; field.push(node); } var sql='DROP INDEX "'+curName+'";\nCREATE '+unique+'INDEX "'+newName+'" ON "'+table+'" ('+(field.join(','))+');'; if (showSql) return dbShowSQL(sql); dbExecCommand('BEGIN;'+sql+'COMMIT;', inspectorIndexNewResponse); return false;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -