コード例 #1
0
        public System.Web.WebPages.HelperResult RenderModel(CollectionSettings settings)
        {
#line default
#line hidden
            return(new System.Web.WebPages.HelperResult(__razor_helper_writer => {
#line 159 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"

                var db = ((OziController)ViewContext.Controller).DataModelContext;
                foreach (var item in settings.Fields.GetOf <FieldSettings, CollectionSettings>())
                {
#line default
#line hidden

#line 163 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    WriteTo(__razor_helper_writer, RenderModel(item));


#line default
#line hidden

#line 163 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                }
                var thisModelName = settings.GetFullPropertyName().Replace(".", string.Empty);


#line default
#line hidden
                WriteLiteralTo(__razor_helper_writer, "var ");


#line 166 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                WriteTo(__razor_helper_writer, thisModelName);


#line default
#line hidden
                WriteLiteralTo(__razor_helper_writer, "Model = function(m, index, parentCollection, parent){                           ");

                WriteLiteralTo(__razor_helper_writer, @"
    var self = this;
    self.plugins = [];
    self.renderPlugins = function() {
        $(self.plugins).each(function(index, f){
            f();
        });
        self.plugins = [];
    };
    self.index = ko.observable(index);
    self.ItemId = ko.observable(m.ItemId || 0);
    self.ModelId = ");


#line 177 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                WriteTo(__razor_helper_writer, WebContext.Model != null ? WebContext.Model.Id : 0);


#line default
#line hidden
                WriteLiteralTo(__razor_helper_writer, ";\r\n    self.parent = parent;\r\n    self.propName = \'");


#line 179 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                WriteTo(__razor_helper_writer, settings.Name);


#line default
#line hidden
                WriteLiteralTo(__razor_helper_writer, "\';\r\n    self.parentCollection = parentCollection;\r\n\r\n");


#line 182 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"


#line default
#line hidden

#line 182 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                foreach (var item in settings.Fields.GetNotOf <FieldSettings, CollectionSettings>())
                {
#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, "    ");

                    WriteLiteralTo(__razor_helper_writer, "self.");


#line 183 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    WriteTo(__razor_helper_writer, item.Name);


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, " = ko.observable(m.");


#line 183 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    WriteTo(__razor_helper_writer, item.Name);


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, ");");

                    WriteLiteralTo(__razor_helper_writer, " ");


#line 183 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                }


#line default
#line hidden
                WriteLiteralTo(__razor_helper_writer, "\r\n");


#line 185 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"


#line default
#line hidden

#line 185 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                foreach (var item in settings.Fields.GetOf <FieldSettings, SelectSettings>())
                {
                    var type = TypeHelpers.GetPropertyType(WebContext.Model, item.GetFullPropertyName());
                    var list = ((IListSource)TypeHelpers.GetEntitySet(db, type)).GetList().Cast <object>().Select <object, string>(a => string.Format("{{value: {0}, label: '{1}'}}", TypeHelpers.GetPropertyValue(a, item.OptionValue), TypeHelpers.GetPropertyValue(a, item.OptionTitle)));


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, "        ");

                    WriteLiteralTo(__razor_helper_writer, "self.available");


#line 189 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    WriteTo(__razor_helper_writer, item.Name);


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, " = [");


#line 189 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    WriteTo(__razor_helper_writer, Html.Raw(string.Join(",", list)));


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, "];");

                    WriteLiteralTo(__razor_helper_writer, "\r\n");

                    WriteLiteralTo(__razor_helper_writer, "        ");

                    WriteLiteralTo(__razor_helper_writer, "self.newValue = \'\';");

                    WriteLiteralTo(__razor_helper_writer, "\r\n");

                    WriteLiteralTo(__razor_helper_writer, "        ");

                    WriteLiteralTo(__razor_helper_writer, "$(\"body\").data(\"");


#line 191 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    WriteTo(__razor_helper_writer, item.GetFullPropertyName().Replace(".", "_"));


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, "\", self.available");


#line 191 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    WriteTo(__razor_helper_writer, item.Name);


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, ");");

                    WriteLiteralTo(__razor_helper_writer, "\r\n");

                    WriteLiteralTo(__razor_helper_writer, "        ");

                    WriteLiteralTo(__razor_helper_writer, "self.current");


#line 192 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    WriteTo(__razor_helper_writer, item.Name);


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, " = ko.computed({ \r\n            read: function(){\r\n                var result = $(" +
                                   "self.available");


#line 194 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    WriteTo(__razor_helper_writer, item.Name);


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, ").filter(function(index, el){\r\n                    return el.value == self.");


#line 195 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    WriteTo(__razor_helper_writer, item.Name);


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, "();\r\n                });\r\n                return (result && result.length > 0) ? " +
                                   "result[0].label : self.newValue;\r\n            }, \r\n            write: function(v" +
                                   "alue){\r\n                var result = $(self.available");


#line 200 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    WriteTo(__razor_helper_writer, item.Name);


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, ").filter(function(index, el){\r\n                    return el.value == value;\r\n   " +
                                   "             });\r\n                if (result && result.length > 0) {\r\n          " +
                                   "          self.newValue = \'\';\r\n                    self.");


#line 205 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    WriteTo(__razor_helper_writer, item.Name);


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, "(result[0].value);\r\n                } else {\r\n                    self.newValue =" +
                                   " value;\r\n                    self.");


#line 208 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    WriteTo(__razor_helper_writer, item.Name);


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, "(0);\r\n                }\r\n            },\r\n            owner: self});");

                    WriteLiteralTo(__razor_helper_writer, "\r\n");

                    WriteLiteralTo(__razor_helper_writer, "        ");

                    WriteLiteralTo(__razor_helper_writer, "self.parent.plugins.push(function(){\r\n            makeAutocomplete($(\"#\" + self.g" +
                                   "enerateId() + \"_");


#line 213 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    WriteTo(__razor_helper_writer, item.OptionTitle);


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, "\").get(0));\r\n        });");

                    WriteLiteralTo(__razor_helper_writer, "\r\n");


#line 215 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                }


#line default
#line hidden
                WriteLiteralTo(__razor_helper_writer, "\r\n");


#line 217 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"


#line default
#line hidden

#line 217 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                foreach (var item in settings.Fields.GetOf <FieldSettings, UploadFileSettings>())
                {
#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, "        ");

                    WriteLiteralTo(__razor_helper_writer, "self.parent.plugins.push(function(){\r\n            makeFileUpload(\"#\" + self.gener" +
                                   "ateId() + \"_");


#line 220 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    WriteTo(__razor_helper_writer, item.Name);


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, "\");\r\n        });");

                    WriteLiteralTo(__razor_helper_writer, "\r\n");

                    WriteLiteralTo(__razor_helper_writer, "        ");

                    WriteLiteralTo(__razor_helper_writer, "self.show");


#line 222 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    WriteTo(__razor_helper_writer, item.Name);


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, "img = ko.computed(function(){\r\n            return !!self.ItemId() && !!self.Model" +
                                   "Id && !!self.");


#line 223 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    WriteTo(__razor_helper_writer, item.Name);


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, "();\r\n        }, self);");

                    WriteLiteralTo(__razor_helper_writer, "\r\n");

                    WriteLiteralTo(__razor_helper_writer, "        ");

                    WriteLiteralTo(__razor_helper_writer, "self.show");


#line 225 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    WriteTo(__razor_helper_writer, item.Name);


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, "panel = ko.computed(function(){\r\n            return !!self.ItemId() && !!self.Mod" +
                                   "elId;\r\n        }, self);");

                    WriteLiteralTo(__razor_helper_writer, "\r\n");

                    WriteLiteralTo(__razor_helper_writer, "        ");

                    WriteLiteralTo(__razor_helper_writer, "self.show");


#line 228 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    WriteTo(__razor_helper_writer, item.Name);


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, "text = ko.computed(function(){\r\n            return !self.ItemId() || !self.ModelI" +
                                   "d;\r\n        }, self);");

                    WriteLiteralTo(__razor_helper_writer, "\r\n");


#line 231 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                }


#line default
#line hidden
                WriteLiteralTo(__razor_helper_writer, "\r\n");


#line 233 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"


#line default
#line hidden

#line 233 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                foreach (var item in settings.Fields.GetOf <FieldSettings, CollectionSettings>())
                {
#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, "    ");

                    WriteLiteralTo(__razor_helper_writer, "\r\n            self.");


#line 235 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    WriteTo(__razor_helper_writer, item.Name);


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, " = ko.observableArray([]);\r\n            self.add");


#line 236 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    WriteTo(__razor_helper_writer, item.Name);


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, "Item = function(){\r\n                self.");


#line 237 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    WriteTo(__razor_helper_writer, item.Name);


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, ".push(new ");


#line 237 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    WriteTo(__razor_helper_writer, item.GetFullPropertyName().Replace(".", string.Empty));


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, "Model({}, self.");


#line 237 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    WriteTo(__razor_helper_writer, item.Name);


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, "().length, self.");


#line 237 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    WriteTo(__razor_helper_writer, item.Name);


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, ", self));\r\n            };\r\n         ");

                    WriteLiteralTo(__razor_helper_writer, " \r\n");


#line 240 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                }


#line default
#line hidden
                WriteLiteralTo(__razor_helper_writer, @"        self.removeItem = function(item){
            if(confirm(""Удалить элемент?"")){
                self.parentCollection.remove(self);
                $(self.parentCollection()).each(function(i, e){
                    e.index(i);
                });
            }
        };
        self.generateName = ko.computed(function(){
            var parentName = '';
            var prefix ='';
            if (!!this.parent && !!this.parent.generateName) parentName = this.parent.generateName() + ""."";
            else prefix = 'collection_';
            return prefix + parentName + this.propName + ""["" + this.index() + ""]"";
        }, self);
        self.generateId = ko.computed(function(){
            return self.generateName().replace(/[\[\]\.]/g, ""_"");//.replace(""."", ""_"").replace(""["", ""_"").replace(""]"", ""_"");
        }, self);
    };
    ");

                WriteLiteralTo(__razor_helper_writer, "\r\n");


#line 261 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"


#line default
#line hidden
            }));

#line 261 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
        }
コード例 #2
0
        public System.Web.WebPages.HelperResult RenderInitModelValues(CollectionSettings settings, IEntity model)
        {
#line default
#line hidden
            return(new System.Web.WebPages.HelperResult(__razor_helper_writer => {
#line 127 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"

                // тут генерируем JSON для наших объектов
                var simpleFields = settings.Fields.GetNotOf <FieldSettings, CollectionSettings>().ToList();
                var children = settings.Fields.GetOf <FieldSettings, CollectionSettings>().ToList();
                var values = (IEnumerable)TypeHelpers.GetPropertyValue(model, settings.Name);


#line default
#line hidden
                WriteLiteralTo(__razor_helper_writer, "    ");

                WriteLiteralTo(__razor_helper_writer, "[ \r\n");


#line 133 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                foreach (var item in values)
                {
#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, "        ");

                    WriteLiteralTo(__razor_helper_writer, "{");

                    WriteLiteralTo(__razor_helper_writer, "\r\n");


#line 136 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    foreach (var field in simpleFields)
                    {
#line default
#line hidden

#line 137 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                        WriteTo(__razor_helper_writer, GenerateJsonField(field, item));


#line default
#line hidden

#line 137 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    }
                    foreach (var child in children)
                    {
#line default
#line hidden
                        WriteLiteralTo(__razor_helper_writer, " ");

                        WriteLiteralTo(__razor_helper_writer, " ");


#line 139 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                        WriteTo(__razor_helper_writer, child.Name);


#line default
#line hidden
                        WriteLiteralTo(__razor_helper_writer, ": ");


#line 139 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                        WriteTo(__razor_helper_writer, RenderInitModelValues(child, (IEntity)item));


#line default
#line hidden
                        WriteLiteralTo(__razor_helper_writer, ", ");

                        WriteLiteralTo(__razor_helper_writer, " ");


#line 139 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    }


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, "        ");

                    WriteLiteralTo(__razor_helper_writer, " ItemId: ");


#line 140 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    WriteTo(__razor_helper_writer, ((IEntity)item).Id);


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, ", OziPropertiesPath: \'");


#line 140 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                    WriteTo(__razor_helper_writer, settings.GetFullPropertyName());


#line default
#line hidden
                    WriteLiteralTo(__razor_helper_writer, "\'},");

                    WriteLiteralTo(__razor_helper_writer, "\r\n");


#line 141 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
                }


#line default
#line hidden
                WriteLiteralTo(__razor_helper_writer, "]\r\n");


#line 143 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"


#line default
#line hidden
            }));

#line 143 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_Collection.cshtml"
        }