Пример #1
0
        /*
         * public function filter($context)
         * {
         *      $entityClass = $_REQUEST['class'];
         *      $fieldName = $_REQUEST['field_name'];
         *      $fieldValue = $_REQUEST['field_value'];
         *
         *      $entity = $context->database->createEntity($context, $entityClass);
         *
         * //var_dump($_REQUEST);	   die();
         *
         *      $field = $entity->findField($fieldName);
         *
         *      if (is_null($field))
         *      {
         *              die("Invalid field for filtering");
         *      }
         *      else
         *      {
         *              if (strpos($fieldValue, '*') !== false)
         *              {
         *                      $op = 'like';
         *              }
         *              else
         *              {
         *                      $op = 'eq';
         *              }
         *
         *              $condition = array($fieldName => array($op => $fieldValue));
         *
         *              $context->addFilter($condition);
         *              $this->render($context);
         *      }
         * }
         *
         * public function unfilter($context)
         * {
         * $id = $_REQUEST['id'];
         * //var_dump($_REQUEST);	   die();
         *
         * $context->removeFilters();
         *
         * $this->render($context);
         * }
         */

        public virtual void OnRemove(SynkContext context)
        {
            long id;

            long.TryParse(context.request.GetVariable("entity"), out id);

            var entity = context.database.FetchEntityByID(_entityClass, id);

            if (entity.exists)
            {
                entity.Remove(context);

                FetchPage(context);
                GenerateData(context);

                if (this.entities != null && this.entities.Count <= 0 && this.currentPage > 0)
                {
                    this.currentPage--;
                    GenerateData(context);
                }

                context.PushTemplate("crud/list");
                context.Render();
            }
            else
            {
                context.die("Entity " + id + " not found!");
            }
        }
Пример #2
0
        public virtual void OnSave(SynkContext context)
        {
            long id;

            long.TryParse(context.request.GetVariable("entity"), out id);

            var entity = context.database.FetchEntityByID(_entityClass, id);

            foreach (var field in entity.fields)
            {
                if (context.request.HasVariable(field.name))
                {
                    var val = context.request.GetVariable(field.name);

                    if (field.formType.Equals("date"))
                    {
                        int year, month, day;
                        var temp = val.Split('-');
                        int.TryParse(temp[0], out year);
                        int.TryParse(temp[1], out month);
                        int.TryParse(temp[2], out day);
                        DateTime date = new DateTime(year, month, day);
                        val = date.ToTimestamp().ToString();
                    }

                    entity.SetFieldValue(field.name, val);
                }
            }

            if (entity.Save(context))
            {
                FetchPage(context);
                GenerateData(context);

                context.PushTemplate("crud/list");
                context.Render();
            }
            else
            {
                if (string.IsNullOrEmpty(context.error) && !context.WaitingForConfirmation())
                {
                    context.error = "Entity saving entity";
                }

                context.die();
            }
        }
Пример #3
0
        public override void OnDetail(SynkContext context)
        {
            long id;

            long.TryParse(context.request.GetVariable("entity"), out id);

            var file = context.database.FetchEntityByID <File>(id);

            if (file.exists)
            {
                var fileName = file.GetFieldValue("real_name");
                var bytes    = file.GetBytes(context);
                context.SendDownload(fileName, bytes);
            }
            else
            {
                context.die("File not found, id " + id);
            }
        }