Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамичная форма в одном DIV 
:(
    Опции темы
Mal Hack
Дата 25.7.2005, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Попробуйю объяснить что я хочу.
Есть таблица, в ней энное (не статическое) количество строк.
В одном из столбцов на каждой строчке есть ссылки. Edit, Delete, Download, Rename и т.п.
Я хочу, вместо эьтих ссылок сделать одну "Properties", при клике на которую ниже этой записи показывался был слой, с несколькими формами.
Но, я не хочу генерировать для каждой записи свой див и просто скрывать/показывать, т.к. это лишний трафик.
Я хочу сделать один слой, который при клике показывать под нужной записью, при этом изменять определенный input поле (при клике на ссылку "Properties").

Как я хочу визуально: http://isohunt.com/torrents.php?ihq=Visual...NET&ext=&op=and
Тут вместо ссылки - вся строка. Такой вариант меня не устраивает.

Возможноли такое теоретически, и в каком направлении - копать.
PM ICQ   Вверх
Sardar
Дата 26.7.2005, 02:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Во первых пользователей без JS тоже нужно уважать, потому стоит положить кнопки в столбик таблицы. Затем можно поскле загрузки страницы заменить кнопки на одну и построить для каждого слоя своё подменю. Такой подход потребует минимум кода, трафик естественно почти не увеличиваеться.

Можно генерить/получать одно подменю, которе затем показывать на всех строках. Тогда потребуетсья отдельно вести "текущую строку", та над которой открыли подменю.

Что нужно знать: стиль visibility="hidden|visible"; высчитывать координаты строк, либо извращаться по особому с position: relative у ячеек таблицы. Пробегись глазами по темам на форуме.

Задача максимум на 20 минут, начни сам, не получиться, напишу smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Mal Hack
Дата 26.7.2005, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Цитата(Sardar @ 26.7.2005, 03:29)
либо извращаться по особому с position: relative у ячеек таблицы.

Вот об этом чуть подробнее smile)
Т.е. как мне показать слой, при этом сместив строки вниз?
PM ICQ   Вверх
Sardar
Дата 26.7.2005, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Сместить строки вниз можешь добавляя/удаляя пустую строку в таблицу, другое дело неужели это действительно нужно? По опыту знаю, прыгающая таблица вызывает только раздражение, накладывай слой поверх.

position: relative ставит элемент на "релативную" позицию, читай в CSS1. От элемента на релативной(как и на абсолютной) позиции отсчитываються координаты вложенных элементов. Поэтому тебе достаточно задать left/top(right/bottom) что один раз и координаты высчитывать не нужно.

Пример как это на деле: http://forum.vingrad.ru/index.php?showtopi...ndpost&p=466656
В том же топе обсуждение.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Mal Hack
Дата 26.7.2005, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Цитата(Sardar @ 26.7.2005, 20:59)
По опыту знаю, прыгающая таблица вызывает только раздражение,

Окей. Спасибо, вразумил глупого господина Хака smile

Более менее разобрался, писать буду завтра.
О успехах сообщу smile
PM ICQ   Вверх
Mal Hack
Дата 29.7.2005, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Вроде сделал. но есть одн важный момент.
В DIV надо вписать название файла, с которым работаем. Как это сделать я не понимаю.

1. JavaScript код.
Код
 function ShowFileProperties( filename , ur , uw , ue , gr , gw , ge , or , ow , oe )
  {
   document.getElementById( 'file_action' ).value = '';
   document.getElementById( 'file_name' ).value = filename;
   document.getElementById( 'file_name_new' ).value = filename;
   document.getElementById( 'file_prop' ).style.visibility = 'visible';
   
   
   if( ur == 1 )
    {  document.getElementById( 'file_ur' ).checked = true;  }
   else 
    {  document.getElementById( 'file_ur' ).checked = false;  }
   
   if( gr == 1 )
    {  document.getElementById( 'file_gr' ).checked = true;  }
   else 
    {  document.getElementById( 'file_gr' ).checked = false;  }
   
   if( or == 1 )
    {  document.getElementById( 'file_or' ).checked = true;  }
   else 
    {  document.getElementById( 'file_or' ).checked = false;  }
   
   if( uw == 1 )
    {  document.getElementById( 'file_uw' ).checked = true;  }
   else 
    {  document.getElementById( 'file_uw' ).checked = false;  }
   
   if( gw == 1 )
    {  document.getElementById( 'file_gw' ).checked = true;  }
   else 
    {  document.getElementById( 'file_gw' ).checked = false;  }
   
   if( ow == 1 )
    {  document.getElementById( 'file_ow' ).checked = true;  }
   else 
    {  document.getElementById( 'file_ow' ).checked = false;  }
   
   if( ue == 1 )
    {  document.getElementById( 'file_ue' ).checked = true;  }
   else 
    {  document.getElementById( 'file_ue' ).checked = false;  }
   
   if( ge == 1 )
    {  document.getElementById( 'file_ge' ).checked = true;  }
   else 
    {  document.getElementById( 'file_ge' ).checked = false;  }
   
   if( oe == 1 )
    {  document.getElementById( 'file_oe' ).checked = true;  }
   else 
    {  document.getElementById( 'file_oe' ).checked = false;  }
  }
  
 function HideFileProperties( filename )
  {
   document.getElementById( 'file_prop' ).style.visibility = 'hidden';
  }
  
 function FileDelete( text )
  {
   if( window.confirm( text + ' ' + document.getElementById( 'file_name' ).value + '?' ) )
    {  
     document.getElementById( 'file_delete' ).value = 'yes';
     ChangeFileAction( 'file_delete' );  
    }
  }
  
 function ChangeFileAction( action ) 
  {
   document.getElementById( 'file_action' ).value = action;
   document.getElementById( 'file_prop_form' ).submit();
  }
  
 function GetFileName()
  {
   return document.getElementById( 'file_name' ).value;
  } 
  

2. CSS для DIV
Код
 DIV#file_prop
  {
   z-index: 1000;
   visibility: hidden;
   position: absolute;
   left: 100px;
   background-color: #FFFFFF;
   padding:10px;
   border: 1px solid #000000;
  }

Код странички, уже сгенерированной.
Код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
 <title>Folder script</title>
 <meta http-equiv='Cache-Control' content='no-cache'>
 <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
<style> 
 DIV#file_prop
  {
   z-index: 1000;
   visibility: hidden;
   position: absolute;
   left: 100px;
   background-color: #FFFFFF;
   padding:10px;
   border: 1px solid #000000;
  }

</style> 
<script language='JavaScript' src='/js/JS.FileManager.js'></script>
</head>
<body>    <div id='file_prop'>

     <form id='file_prop_form' action='' method='POST'>
     <input type='hidden' name='dir' value='/usr'>
     <input id='file_name' type='hidden' name='file' value=''>
     <input id='file_action' type='hidden' name='action' value=''>
     <input id='file_delete' type='hidden' name='file_delete' value='no'>
     
     Введите новоей имя для файла: &nbsp;&nbsp;<input id='file_name_new' type='text' name='file_new_name' value=''><input type='button' value='Переименовать' OnClick='javascript:ChangeFileAction( "file_rename" );'><br /><br />
     Для удаления файла нажмите на кнопку: &nbsp;&nbsp;<input type='button' value='Удалить' OnClick='javascript:FileDelete( "Вы действительно хотите удалить этот файл" );'><br /><br />
     Изменить права доступа: : <b></b><br />

     User: <input id='file_ur' type='checkbox' name='file_chmod[ur]'> READ <input id='file_uw' type='checkbox' name='file_chmod[uw]'> WRITE <input id='file_ue' type='checkbox' name='file_chmod[ue]'> EXECUTE<br />
     Group: <input id='file_gr' type='checkbox' name='file_chmod[gr]'> READ <input id='file_gw' type='checkbox' name='file_chmod[gw]'> WRITE <input id='file_ge' type='checkbox' name='file_chmod[ge]'> EXECUTE<br />

     Others: <input id='file_or' type='checkbox' name='file_chmod[or]'> READ <input id='file_ow' type='checkbox' name='file_chmod[ow]'> WRITE <input id='file_oe' type='checkbox' name='file_chmod[oe]'> EXECUTE<br />
     <input type='button' value='Изменить' OnClick='javascript:ChangeFileAction( "file_chmod" );'><br /><br />
     <a href='#' OnClick='javascript:HideFileProperties();'>Скрыть</a>
     </form>
    </div>    <a href='?dir=&action=dir_view'>Up</a><br><br>    <table>    <tr>

     <td><a href='?dir=/usr/apache-2.0.53&action=dir_view'>/apache-2.0.53</a></td>
     <td>drwxrwxrwx</td>
    </tr>     <tr>
     <td><a href='?dir=/usr/mysql-4.0.23&action=dir_view'>/mysql-4.0.23</a></td>
     <td>drwxrwxrwx</td>
    </tr>     <tr>

     <td><a href='?dir=/usr/php-4.3.10&action=dir_view'>/php-4.3.10</a></td>
     <td>drwxrwxrwx</td>
    </tr>     </table>    <table>    <tr>
     <td>hosts</td>
     <td>-rw-rw-rw-</td>

     <td>536 b</td>
     <td><a href='?dir=/usr&amp;file=hosts&action=file_edit'>[Edit]</a></td>
     <td><a href='?dir=/usr&amp;file=hosts&action=file_download'>[Download]</a></td>
     <td><a href='#' OnClick='javascript:ShowFileProperties("hosts" , 1,1,0,1,1,0,1,1,0);'>[Properties]</a></td>
    </tr>     <tr>
     <td>putty.exe</td>

     <td>-r-xr-xr-x</td>
     <td>364 Kb</td>
     <td><a href='?dir=/usr&amp;file=putty.exe&action=file_edit'>[Edit]</a></td>
     <td><a href='?dir=/usr&amp;file=putty.exe&action=file_download'>[Download]</a></td>
     <td><a href='#' OnClick='javascript:ShowFileProperties("putty.exe" , 1,0,1,1,0,1,1,0,1);'>[Properties]</a></td>
    </tr>     </table>    <br />    <form action='' method='POST'>    
    <input type='hidden' name='action' value='dir_new'>

    <input type='hidden' name='dir' value='/usr'>
    Создать директорию&nbsp;&nbsp;<input type='text' name='dir_name' value=''>&nbsp;&nbsp;
    с правами&nbsp;&nbsp;<input type='text' name='dir_perm' value='0755'>&nbsp;&nbsp;
    <input type='submit' name='go' value='Создать'>
    </form>    <br />    <form action='' method='POST'>    
    <input type='hidden' name='action' value='file_new'>
    <input type='hidden' name='dir' value='/usr'>

    Создать файл&nbsp;&nbsp;<input type='text' name='file_name' value=''>&nbsp;&nbsp;
    <input type='submit' name='go' value='Создать'>
    </form></body>
</html>

PM ICQ   Вверх
Sardar
Дата 30.7.2005, 00:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Из аси доставать ничего не буду, одним словом вёрстка нужна лучше smile

Вот вариант чуть улучшенного кода:
Код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
 <title>Folder script</title>
 <meta http-equiv='Cache-Control' content='no-cache'>
 <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>

<style type="text/css"> 
 DIV#file_prop {
   z-index: 1000;
   visibility: hidden;
   position: absolute;
   left: 100px;
   background-color: #FFFFFF;
   padding:10px;
   border: 1px solid #000000;
   width: 600px;
   padding: 10px;
   -moz-user-select: none;
  }
#win_title {
  cursor: default;
  background-color: #0a485c;
  color:#eff2f9;
  font-family: tahoma, verdana;
  font-size: 14px;
  font-weight: bold;
  text-align: center;
  margin: -10px -10px 5px -10px;    
}

a.button {
  cursor: pointer;
  padding: 2px;
  border: solid 1px #555;
  font-family: tahoma, verdana;
  font-size: 14px;
  text-decoration: none;
}
a.button:hover {
  background-color: #dfdbf5;
}

#chkholder dl {
  margin: 5px;
}
</style>
<script type="text/javascript">
<!--
function ShowFileProperties( filename , ur , uw , ue , gr , gw , ge , or , ow , oe ) {
   var f=document.getElementById("file_prop_form");
   f.elements.action.value = '';
   f.elements.file.value = filename;
   f.elements.file_new_name.value = filename;
   document.getElementById("file_prop").style.visibility = 'visible';
   
   var chks=document.getElementById("chkholder").getElementsByTagName("INPUT");
   for(var i=1; i<arguments.length; i++) chks[i-1].checked=Boolean(arguments[i]);
}

function HideFileProperties(filename) {
   document.getElementById( 'file_prop' ).style.visibility = 'hidden';
}

function FileDelete(text) {
  if(window.confirm(text.replace("[:@item@:]", GetFileName()))) {  
     document.getElementById('file_delete').value = 'yes';
     ChangeFileAction('file_delete');  
  }
}
  
function ChangeFileAction( action ) {
   document.getElementById('file_action').value = action;
   document.getElementById( 'file_prop_form' ).submit();
}
  
function GetFileName() {
   return document.getElementById('file_name').value;
}

function mdown(e, o) {
  o.dragging=true;
  o.offX=(window.event? window.event.offsetX: e.layerX)+3;
  o.offY=(window.event? window.event.offsetY: e.layerY)+3;
  var evt=window.event? window.event: e;
  if(evt.stopPropagation) evt.stopPropagation();
  evt.cancelBubble=true;
}
function mup(e, o) {
  o.dragging=false;
  var evt=window.event? window.event: e;
  if(evt.stopPropagation) evt.stopPropagation();
  evt.cancelBubble=true;
}
function mmove(e, o) {
  if(!o.dragging) return false;  
  var evt=window.event? window.event: e;
  var x=0, y=0, ofp=o.offsetParent;
  while(ofp!=null) {
    x+=ofp.offsetLeft;
    y+=ofp.offsetTop;
    ofp=ofp.offsetParent;
  }
  o.style.left=(document.body.scrollLeft+evt.clientX-o.offX-x)+"px";
  o.style.top=(document.body.scrollTop+evt.clientY-o.offY-y)+"px";
  if(evt.stopPropagation) evt.stopPropagation();
  evt.cancelBubble=true;
  return true;
}
//-->
</script>
</head>
<body>
<div id='file_prop' onselectstart="return false;">
  <div id="win_title" onmousedown="mdown(event, this.parentNode); this.style.cursor='move';" onmouseup="mup(event, this.parentNode); this.style.cursor='default'" onmousemove="mmove(event, this.parentNode)">.:: File properties ::.</div>
  <form id='file_prop_form' action='' method='POST'>
     <input type='hidden' name='dir' value='/usr'>
     <input type='hidden' name='file' value='' id='file_name'>
     <input type='hidden' name='action' value='' id='file_action'>
     <input type='hidden' name='file_delete' value='no' id='file_delete'>     
     Введите новоей имя для файла: &nbsp;&nbsp;<input type='text' name='file_new_name' value=''><input type='button' value='Переименовать' onclick='ChangeFileAction("file_rename");'><br /><br />
     Для удаления файла нажмите на кнопку: &nbsp;&nbsp;<input type='button' value='Удалить' onclick='FileDelete( "Вы действительно хотите удалить этот файл [:@item@:] ?" );'><br /><br />
     <fieldset id="chkholder"><legend>Изменить права доступа</legend>
     <dl>      
      <dt>User:</dt><dd>
        <label><input type='checkbox' name='file_chmod[ur]'> READ </label>
        <label><input type='checkbox' name='file_chmod[uw]'> WRITE </label>
        <label><input type='checkbox' name='file_chmod[ue]'> EXECUTE </label>
      </dd>
      <dt>Group:</dt><dd>
        <label><input type='checkbox' name='file_chmod[gr]'> READ</label>
        <label><input type='checkbox' name='file_chmod[gw]'> WRITE</label>
        <label><input type='checkbox' name='file_chmod[ge]'> EXECUTE</label>
      </dd>
      <dt>Others:</dt><dd>
        <label><input type='checkbox' name='file_chmod[or]'> READ </label>
        <label><input type='checkbox' name='file_chmod[ow]'> WRITE </label>
        <label><input type='checkbox' name='file_chmod[oe]'> EXECUTE</label>
      </dd>
     </dl>
     </fieldset>
     <input type='button' value='Изменить' onclick='ChangeFileAction("file_chmod");'>
     <a href="javascript: void(0);" class="button" style="float: right" onclick='HideFileProperties();'>Скрыть</a>
  </form>
</div>
    
<a href='?dir=&action=dir_view'>Up</a><br><br>    <table>    <tr>
     <td><a href='?dir=/usr/apache-2.0.53&action=dir_view'>/apache-2.0.53</a></td>
     <td>drwxrwxrwx</td>
    </tr>     <tr>
     <td><a href='?dir=/usr/mysql-4.0.23&action=dir_view'>/mysql-4.0.23</a></td>
     <td>drwxrwxrwx</td>
    </tr>     <tr>
     <td><a href='?dir=/usr/php-4.3.10&action=dir_view'>/php-4.3.10</a></td>
     <td>drwxrwxrwx</td>
    </tr>     </table>    <table>    <tr>
     <td>hosts</td>
     <td>-rw-rw-rw-</td>
     <td>536 b</td>
     <td><a href='?dir=/usr&amp;file=hosts&action=file_edit'>[Edit]</a></td>
     <td><a href='?dir=/usr&amp;file=hosts&action=file_download'>[Download]</a></td>
     <td><a href='#' OnClick='javascript:ShowFileProperties("hosts" , 1,1,0,1,1,0,1,1,0);'>[Properties]</a></td>
    </tr>     <tr>
     <td>putty.exe</td>
     <td>-r-xr-xr-x</td>
     <td>364 Kb</td>
     <td><a href='?dir=/usr&amp;file=putty.exe&action=file_edit'>[Edit]</a></td>
     <td><a href='?dir=/usr&amp;file=putty.exe&action=file_download'>[Download]</a></td>
     <td><a href='#' OnClick='javascript:ShowFileProperties("putty.exe" , 1,0,1,1,0,1,1,0,1);'>[Properties]</a></td>
    </tr>     </table>    <br />    <form action='' method='POST'>    
    <input type='hidden' name='action' value='dir_new'>
    <input type='hidden' name='dir' value='/usr'>
    Создать директорию&nbsp;&nbsp;<input type='text' name='dir_name' value=''>&nbsp;&nbsp;
    с правами&nbsp;&nbsp;<input type='text' name='dir_perm' value='0755'>&nbsp;&nbsp;
    <input type='submit' name='go' value='Создать'>
    </form>    <br />    <form action='' method='POST'>    
    <input type='hidden' name='action' value='file_new'>
    <input type='hidden' name='dir' value='/usr'>
    Создать файл&nbsp;&nbsp;<input type='text' name='file_name' value=''>&nbsp;&nbsp;
    <input type='submit' name='go' value='Создать'>
    </form></body>
</html>


Стили и скрипты выкинь по одтельным файлам.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Mal Hack
Дата 30.7.2005, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Сардар, огромное спасибо !!
Правда, есть еще пара моментов.
1.
Цитата(Mal @ 29.7.2005, 23:59)
В DIV надо вписать название файла, с которым работаем. Как это сделать я не понимаю.

2. При клике на Properties можно сделать так, чтобы при большом списке файлов, когда есть вертикальная прокрутка слой появлялся не в начале старницы, а с отступом от края верха. Т.е. еслли я кникаю на ссылку в самом низу списка, я слоя не вижу и мне надо возвращаться в самый верх. scroll(0,0) конечно хорошо, но не совсем.
3. Передвижение рбаотает только в Лисе?
PM ICQ   Вверх
Sardar
Дата 30.7.2005, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



1, 2> готово
3> перетаскивание окошка должно работать везде.

Код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
<style type="text/css"> 
 DIV#file_prop {
   z-index: 1000;
   visibility: hidden;
   position: absolute;
   left: 100px;
   background-color: #FFFFFF;
   padding:10px;
   border: 1px solid #000000;
   width: 600px;
   padding: 10px;
   -moz-user-select: none;
  }
#win_title {
  cursor: default;
  background-color: #0a485c;
  color:#eff2f9;
  font-family: tahoma, verdana;
  font-size: 14px;
  font-weight: bold;
  text-align: center;
  margin: -10px -10px 5px -10px;    
}

a.button {
  cursor: pointer;
  padding: 2px;
  border: solid 1px #555;
  font-family: tahoma, verdana;
  font-size: 14px;
  text-decoration: none;
}
a.button:hover {
  background-color: #dfdbf5;
}

#chkholder dl {
  margin: 5px;
}
#f_name {
  font-family: arial, sans-serif;
  font-size: 14px;
  border-bottom: 1px solid #ccc;
}
</style>
<script type="text/javascript">
<!--
function ShowFileProperties(butt, filename , ur , uw , ue , gr , gw , ge , or , ow , oe ) {
   var f=document.getElementById("file_prop_form");
   f.elements.action.value = '';
   f.elements.file.value = filename;
   f.elements.file_new_name.value = filename;
   document.getElementById("f_name").innerHTML=filename.replace(/</g,'&lt;').replace(/>/g,'&gt;');
   
   var pl=document.getElementById("file_prop");
   pl.style.visibility = 'visible';
   var pos=getPosition(butt);
   var scr=getPageScroll();
   var size=getFrameBox();
   var y=pos.y-pl.offsetHeight/2;
   var x=pos.x-pl.offsetWidth/2;
   y=y<scr.top? scr.top: ((y+pl.offsetHeight)>(scr.top+size.height))? (scr.top+size.height-pl.offsetHeight): y;
   x=x<scr.left? scr.left: ((x+pl.offsetWidth)>(scr.left+size.width))? (scr.left+size.width-pl.offsetWidth): x;
   pl.style.top=y+"px";
   pl.style.left=x+"px";
   
   var chks=document.getElementById("chkholder").getElementsByTagName("INPUT");
   for(var i=2; i<arguments.length; i++) chks[i-2].checked=Boolean(arguments[i]);
}

function HideFileProperties(filename) {
   document.getElementById( 'file_prop' ).style.visibility = 'hidden';
}

function FileDelete(text) {
  if(window.confirm(text.replace("[:@item@:]", GetFileName()))) {  
     document.getElementById('file_delete').value = 'yes';
     ChangeFileAction('file_delete');  
  }
}
  
function ChangeFileAction( action ) {
   document.getElementById('file_action').value = action;
   document.getElementById( 'file_prop_form' ).submit();
}
  
function GetFileName() {
   return document.getElementById('file_name').value;
}

function mdown(e, o) {
  o.dragging=true;
  o.offX=(window.event? window.event.offsetX: e.layerX)+3;
  o.offY=(window.event? window.event.offsetY: e.layerY)+3;
  var evt=window.event? window.event: e;
  if(evt.stopPropagation) evt.stopPropagation();
  evt.cancelBubble=true;
}
function mup(e, o) {
  o.dragging=false;
  var evt=window.event? window.event: e;
  if(evt.stopPropagation) evt.stopPropagation();
  evt.cancelBubble=true;
}
function mmove(e, o) {
  if(!o.dragging) return false;  
  var evt=window.event? window.event: e;
  var scrl=getPageScroll();
  o.style.left=(scrl.left+evt.clientX-o.offX)+"px";
  o.style.top=(scrl.top+evt.clientY-o.offY)+"px";
  if(evt.stopPropagation) evt.stopPropagation();
  evt.cancelBubble=true;
  return true;
}
function getPosition(obj) {
  var x=0, y=0;
  while(obj) {
    x+=obj.offsetLeft;
    y+=obj.offsetTop;
    obj=obj.offsetParent;
  }
  return {x: x, y:y};
}

function getFrameBox() {
 //thanks to www.quirksmode.org for that perfect solution!
  var x,y;
  if (self.innerHeight) // all except Explorer
  {
    x = self.innerWidth;
    y = self.innerHeight;
  } else if (document.documentElement && document.documentElement.clientHeight)
   // Explorer 6 Strict Mode
  {
    x = document.documentElement.clientWidth;
    y = document.documentElement.clientHeight;
  } else if (document.body) // other Explorers
  {
    x = document.body.clientWidth;
    y = document.body.clientHeight;
  }
  return {width:x, height: y};
}

function getPageScroll(){
  //thanks to www.quirksmode.org for that perfect solution!
 var x,y;
 if (self.pageYOffset) // all except Explorer
 {
    x = self.pageXOffset;
    y = self.pageYOffset;
 } else if (document.documentElement && document.documentElement.scrollTop)
    // Explorer 6 Strict
 {
    x = document.documentElement.scrollLeft;
    y = document.documentElement.scrollTop;
 } else if (document.body) // all other Explorers
 {
    x = document.body.scrollLeft;
    y = document.body.scrollTop;
 }
  return {top: y, left: x};
}
//-->
</script>
</head>
<body>
<div id='file_prop' onselectstart="return false;">
  <div id="win_title" onmousedown="mdown(event, this.parentNode); this.style.cursor='move';" onmouseup="mup(event, this.parentNode); this.style.cursor='default'" onmousemove="mmove(event, this.parentNode)">.:: File properties ::.</div>
  <div id="f_name"></div>
  <form id='file_prop_form' action='' method='POST'>
     <input type='hidden' name='dir' value='/usr'>
     <input type='hidden' name='file' value='' id='file_name'>
     <input type='hidden' name='action' value='' id='file_action'>
     <input type='hidden' name='file_delete' value='no' id='file_delete'>     
     Введите новоей имя для файла: &nbsp;&nbsp;<input type='text' name='file_new_name' value=''><input type='button' value='Переименовать' onclick='ChangeFileAction("file_rename");'><br /><br />
     Для удаления файла нажмите на кнопку: &nbsp;&nbsp;<input type='button' value='Удалить' onclick='FileDelete( "Вы действительно хотите удалить этот файл [:@item@:] ?" );'><br /><br />
     <fieldset id="chkholder"><legend>Изменить права доступа</legend>
     <dl>      
      <dt>User:</dt><dd>
        <label><input type='checkbox' name='file_chmod[ur]'> READ </label>
        <label><input type='checkbox' name='file_chmod[uw]'> WRITE </label>
        <label><input type='checkbox' name='file_chmod[ue]'> EXECUTE </label>
      </dd>
      <dt>Group:</dt><dd>
        <label><input type='checkbox' name='file_chmod[gr]'> READ</label>
        <label><input type='checkbox' name='file_chmod[gw]'> WRITE</label>
        <label><input type='checkbox' name='file_chmod[ge]'> EXECUTE</label>
      </dd>
      <dt>Others:</dt><dd>
        <label><input type='checkbox' name='file_chmod[or]'> READ </label>
        <label><input type='checkbox' name='file_chmod[ow]'> WRITE </label>
        <label><input type='checkbox' name='file_chmod[oe]'> EXECUTE</label>
      </dd>
     </dl>
     </fieldset>
     <input type='button' value='Изменить' onclick='ChangeFileAction("file_chmod");'>
     <a href="javascript: void(0);" class="button" style="float: right" onclick='HideFileProperties();'>Скрыть</a>
  </form>
</div>

<a href='?dir=&action=dir_view'>Up</a><br><br>    <table>    <tr>
     <td><a href='?dir=/usr/apache-2.0.53&action=dir_view'>/apache-2.0.53</a></td>
     <td>drwxrwxrwx</td>
    </tr>     <tr>
     <td><a href='?dir=/usr/mysql-4.0.23&action=dir_view'>/mysql-4.0.23</a></td>
     <td>drwxrwxrwx</td>
    </tr>     <tr>
     <td><a href='?dir=/usr/php-4.3.10&action=dir_view'>/php-4.3.10</a></td>
     <td>drwxrwxrwx</td>
    </tr>     </table>    <table>    <tr>
     <td>hosts</td>
     <td>-rw-rw-rw-</td>
     <td>536 b</td>
     <td><a href='?dir=/usr&amp;file=hosts&action=file_edit'>[Edit]</a></td>
     <td><a href='?dir=/usr&amp;file=hosts&action=file_download'>[Download]</a></td>
     <td><a href='javascript: void(0);' onclick='javascript:ShowFileProperties(this, "hosts" , 1,1,0,1,1,0,1,1,0);'>[Properties]</a></td>
    </tr>     <tr>
     <td>putty.exe</td>
     <td>-r-xr-xr-x</td>
     <td>364 Kb</td>
     <td><a href='?dir=/usr&amp;file=putty.exe&action=file_edit'>[Edit]</a></td>
     <td><a href='?dir=/usr&amp;file=putty.exe&action=file_download'>[Download]</a></td>
     <td><a href='javascript: void(0);' onclick='javascript:ShowFileProperties(this, "putty.exe" , 1,0,1,1,0,1,1,0,1);'>[Properties]</a></td>
    </tr>     </table>    <br />    <form action='' method='POST'>    
    <input type='hidden' name='action' value='dir_new'>
    <input type='hidden' name='dir' value='/usr'>
    Создать директорию&nbsp;&nbsp;<input type='text' name='dir_name' value=''>&nbsp;&nbsp;
    с правами&nbsp;&nbsp;<input type='text' name='dir_perm' value='0755'>&nbsp;&nbsp;
    <input type='submit' name='go' value='Создать'>
    </form>    <br />    <form action='' method='POST'>    
    <input type='hidden' name='action' value='file_new'>
    <input type='hidden' name='dir' value='/usr'>
    Создать файл&nbsp;&nbsp;<input type='text' name='file_name' value=''>&nbsp;&nbsp;
    <input type='submit' name='go' value='Создать'>
    </form></body>
</html>



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Mal Hack
Дата 30.7.2005, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: нет
Всего: 261



Sardar огромное тебе спасибо, за то, что потратил столько времени !!!
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1207 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.