cancel
Showing results for 
Search instead for 
Did you mean: 

Ruta en javascript

mrey
Champ in-the-making
Champ in-the-making
Hola a todos.

Estoy haciendo un script en javascript con el que intento que al añadir un documento en un espacio cree un espacio con el año, dentro otro espacio con el mes, no cogiendo el año y el mes actual, si no el que le paso por metadato. el codigo hasta ahora fue así:
var fecha=document.properties["custom:fecha"];
var ano=fecha.getFullYear();
var mes=fecha.getMonth() +1 ;

var textomes = new Array (12);
  textomes[1]="Enero";
  textomes[2]="Febrero";
  textomes[3]="Marzo";
  textomes[4]="Abril";
  textomes[5]="Mayo";
  textomes[6]="Junio";
  textomes[7]="Julio";
  textomes[7]="Agosto";
  textomes[9]="Septiembre";
  textomes[10]="Octubre";
  textomes[11]="Noviembre";
  textomes[12]="Diciembre";


var espacioAno = space.childByNamePath(ano);

if (espacioAno == null && space.hasPermission("CreateChildren"))
{
   // create the folder for the first time
   espacioAno = space.createFolder(ano);
   var espacioMes = space.childByNamePath(textomes[mes]);

   if (espacioMes == null && space.hasPermission("CreateChildren"))
{
   // create the folder for the first time
   espacioMes = space.createFolder(textomes[mes]);
}

}

if (espacioAno != null && espacioAno.hasPermission("CreateChildren"))
{

var move = document.move(espacioAno);
if (move != null)
   {
      move;
    
     if (espacioMes != null && espacioMes.hasPermission("CreateChildren"))
{

var move = document.move(espacioMes);
if (move != null)
   {
      // change the name so we know it's a backup
    
      move;
   }


}

   }


}


Ejecutando este script en una regla, crea un espacio con el año y otro con el mes en el mismo espacio, y guarda el documento en el espacio mes, cuando lo que yo quiero es que cree el mes dentro del año.
Lo hice creando una regla dentro del espacio año, pero al cambiar de año tendría que crear una nueva regla dentro de ese nuevo año, y mi intención es que lo haga automáticamente. Llegué a la conclusion de que al crear el espacio mes tengo que darle una ruta que seria /espacioAño/espacioMes, pero no se si lo hice mal o no es así. Miré en el wiki pero no lo acabo de encontrar, será por que me nivel de inglés no acaba de ser el mejor xD.
Alguna idea? Alguna burrada que escribí en el código?
Graciasss a todos
3 REPLIES 3

mrey
Champ in-the-making
Champ in-the-making
He descubierto que creo bien el espacio padre. Crea el año perfectamente si no existe. el problema es al crear el espacio hijo "mes".

El código donde creo que está el tick del problema es



    * Edit post
    * Delete post
    * Report this post
    * Reply with quote

JavaScript to create a child node

Postby mrey on 29 Jun 2009, 18:25

  
 var ParentSpace = space.childByNamePath("parentSpaceName");

    if (ParentSpace != null && space.hasPermission("CreateChildren"))
    {
       ChildSpace = space.createFolder("ChildName");
    }

Ya que así me crea el espacio mes hijo al mismo nivel que el año. ¿Como tendría que hacer para pasarle la ruta correcta y que creara el espacio hijo "mes" dentro del año??

Gracias

agranjo
Champ in-the-making
Champ in-the-making
Prueba así:
var fecha=document.properties["custom:fecha"];
var ano=fecha.getFullYear();
var mes=fecha.getMonth() +1 ;

var textomes = new Array (12);
  textomes[1]="Enero";
  textomes[2]="Febrero";
  textomes[3]="Marzo";
  textomes[4]="Abril";
  textomes[5]="Mayo";
  textomes[6]="Junio";
  textomes[7]="Julio";
  textomes[7]="Agosto";
  textomes[9]="Septiembre";
  textomes[10]="Octubre";
  textomes[11]="Noviembre";
  textomes[12]="Diciembre";


var espacioAno = space.childByNamePath(ano);

if (espacioAno == null && space.hasPermission("CreateChildren")) {
   // create the folder for the first time
   espacioAno = space.createFolder(ano);
   var espacioMes = espacioAno.childByNamePath(textomes[mes]);

   if (espacioMes == null && space.hasPermission("CreateChildren")) {
      // create the folder for the first time
      espacioMes = espacioAno.createFolder(textomes[mes]);
      if (espacioMes != null && espacioMes.hasPermission("CreateChildren")) {
         var move = document.move(espacioMes);
      }
   }
}

Y comprueba bien en qué espacio estás llamando al createFolder o al move… siempre un createFolder te retorna la carpeta que acabas de crear.

mrey
Champ in-the-making
Champ in-the-making
Gracias por la ayuda. solo tuve que hacerle un pequeño cambio.


var fecha=document.properties["custom:fecha"];
var ano=fecha.getFullYear();
var mes=fecha.getMonth() +1 ;

var textomes = new Array (12);
  textomes[1]="Enero";
  textomes[2]="Febrero";
  textomes[3]="Marzo";
  textomes[4]="Abril";
  textomes[5]="Mayo";
  textomes[6]="Junio";
  textomes[7]="Julio";
  textomes[7]="Agosto";
  textomes[9]="Septiembre";
  textomes[10]="Octubre";
  textomes[11]="Noviembre";
  textomes[12]="Diciembre";


var espacioAno = space.childByNamePath(ano);

if (espacioAno == null && space.hasPermission("CreateChildren")) {
   // create the folder for the first time
   espacioAno = space.createFolder(ano);
   }
   if (espacioAno != null && espacioAno.hasPermission("CreateChildren")) {
   var espacioMes = espacioAno.childByNamePath(textomes[mes]);

   if (espacioMes == null && space.hasPermission("CreateChildren")) {
      // create the folder for the first time
      espacioMes = espacioAno.createFolder(textomes[mes]);
    
      if (espacioMes != null && espacioMes.hasPermission("CreateChildren")) {
         var move = document.move(espacioMes);
      }
   }
}

Por si le sirve el código a alguien lo dejo ahi

Muchas gracias por la ayuda, pero no dudeis que seguiré molestando xD