forked from bofh/fetsite
studium form update
This commit is contained in:
@@ -15,6 +15,8 @@
|
|||||||
*= require jquery.fileupload-ui
|
*= require jquery.fileupload-ui
|
||||||
*= require jquery.datetimepicker
|
*= require jquery.datetimepicker
|
||||||
*= require jquery.ui.dialog
|
*= require jquery.ui.dialog
|
||||||
|
*= require jquery.ui.autocomplete
|
||||||
|
*= require jquery.ui.tabs
|
||||||
* require 'bootstrap'
|
* require 'bootstrap'
|
||||||
* require 'neuigkeiten'
|
* require 'neuigkeiten'
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -77,13 +77,13 @@ class LvasController < ApplicationController
|
|||||||
@lva = Lva.find_by_id(params[:id])
|
@lva = Lva.find_by_id(params[:id])
|
||||||
@lvatiss = Lva.new
|
@lvatiss = Lva.new
|
||||||
@lvatiss.lvanr=@lva.lvanr
|
@lvatiss.lvanr=@lva.lvanr
|
||||||
@lvatiss.load_tissdata("-2013W")
|
@lvatiss.load_tissdata
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def load_tiss
|
def load_tiss
|
||||||
@lva = Lva.find_by_id(params[:id])
|
@lva = Lva.find_by_id(params[:id])
|
||||||
@lva.load_tissdata("-2013W")
|
@lva.load_tissdata
|
||||||
if @lva.save
|
if @lva.save
|
||||||
redirect_to @lva , notice: 'Lva von TISS geladen.'
|
redirect_to @lva , notice: 'Lva von TISS geladen.'
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -125,13 +125,13 @@ end
|
|||||||
|
|
||||||
def show_tiss
|
def show_tiss
|
||||||
@lvas=[];
|
@lvas=[];
|
||||||
@semester = @modul.modulgruppen.flatten.map(&:studium).map(&:semester).flatten.uniq
|
@semester = @modul.modulgruppen.flatten.map(&:studium).map(&:semester).uniq
|
||||||
params["lvas"].to_a.each do |l|
|
params["lvas"].to_a.each do |l|
|
||||||
unless l.last["lvanr"].empty?
|
unless l.last["lvanr"].empty?
|
||||||
l=l.last
|
l=l.last
|
||||||
lva=Lva.new
|
lva=Lva.new
|
||||||
lva.lvanr=l["lvanr"]
|
lva.lvanr=l["lvanr"]
|
||||||
lva.load_tissdata("-"+ l["sem"])
|
lva.load_tissdata
|
||||||
lva.modul<<@modul
|
lva.modul<<@modul
|
||||||
@lvas<<lva #
|
@lvas<<lva #
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ class Lva < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
def load_tissdata(semester)
|
def load_tissdata
|
||||||
urlp="https://tiss.tuwien.ac.at/api/course/"+ lvanr.to_s.gsub(".","")+"-"
|
urlp="https://tiss.tuwien.ac.at/api/course/"+ lvanr.to_s.gsub(".","")+"-"
|
||||||
begin
|
begin
|
||||||
url= urlp+Time.now.year.to_s+"W"
|
url= urlp+Time.now.year.to_s+"W"
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
class Modul < ActiveRecord::Base
|
class Modul < ActiveRecord::Base
|
||||||
attr_accessible :desc,:name, :depend, :studium_id, :modulgruppen, :modulgruppe_ids
|
attr_accessible :desc,:name, :depend, :studium_id, :modulgruppen, :modulgruppe_ids, :lva_ids
|
||||||
|
|
||||||
has_and_belongs_to_many :lvas , :uniq=>true
|
has_and_belongs_to_many :lvas , :uniq=>true
|
||||||
has_and_belongs_to_many :modulgruppen
|
has_and_belongs_to_many :modulgruppen
|
||||||
|
|||||||
@@ -113,7 +113,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<% unless @crawlobjects.nil? %>
|
||||||
<div class="row-fluid">
|
<div class="row-fluid">
|
||||||
<div class="span12">
|
<div class="span12">
|
||||||
<% @crawlobjects.each do |co| %>
|
<% @crawlobjects.each do |co| %>
|
||||||
@@ -121,7 +121,7 @@
|
|||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<%= semantic_form_for @modulgruppe do |f| %>
|
<%= semantic_form_for @modulgruppe do |f| %>
|
||||||
<%= f.inputs do %>
|
<%= f.inputs do %>
|
||||||
<div class="span8">
|
|
||||||
|
|
||||||
<div class="row-fluid">
|
<div class="row-fluid">
|
||||||
<%= f.input :name, :wrapper_html=>{:class=>"span12"}%>
|
<%= f.input :name, :wrapper_html=>{:class=>"span12"}%>
|
||||||
@@ -9,6 +9,7 @@
|
|||||||
<%= f.input :studium_id, :as =>:select, :collection => Studium.all, :wrapper_html=>{:class=>"span4"} %>
|
<%= f.input :studium_id, :as =>:select, :collection => Studium.all, :wrapper_html=>{:class=>"span4"} %>
|
||||||
<%= f.input :typ, :collection=>["Pflicht","Vertiefungspflicht","Wahl"], :wrapper_html=>{:class=>"span4"}%>
|
<%= f.input :typ, :collection=>["Pflicht","Vertiefungspflicht","Wahl"], :wrapper_html=>{:class=>"span4"}%>
|
||||||
<%= f.input :phase, :as=>:select, :collection=>1..3, :wrapper_html=>{:class=>"span4"} %>
|
<%= f.input :phase, :as=>:select, :collection=>1..3, :wrapper_html=>{:class=>"span4"} %>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@@ -16,14 +17,46 @@
|
|||||||
<%= f.input :desc %>
|
<%= f.input :desc %>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="row-fluid">
|
||||||
|
<div class="span12">
|
||||||
|
|
||||||
|
|
||||||
|
<input id="modul" class="autocomplete-checkbox" data-checkboxdiv="modulgruppe_moduls_input" data-checkboxname="modulgruppe[modul_ids][]" data-collection="<%= (Modul.all.map{|l| "{\"value\": \""+l.id.to_s + "\", \"label\": " + "\"" +escape_javascript( l.name.gsub(";",",")) + "\"}"}.join("; "))%>"> </input>
|
||||||
|
|
||||||
|
<%= f.input :moduls, :as=>:check_boxes, :collection=>@modulgruppe.moduls %>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$(function(){
|
||||||
|
$( ".autocomplete-checkbox" ).autocomplete({
|
||||||
|
minLength: 0,
|
||||||
|
source: [],
|
||||||
|
focus: function( event, ui ) {
|
||||||
|
$( this ).val( ui.item.label );
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
select: function( event, ui ) {
|
||||||
|
$( this ).val( "" );
|
||||||
|
$( "#"+$(this).data("checkboxdiv")).append($("<label>").append($("<div>").attr("class", "checkbox").append($("<input>").attr("type","checkbox").attr("value", ui.item.value).attr("checked","checked").attr("name",$(this).data("checkboxname"))).append(ui.item.label)));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}).each(function() {
|
||||||
|
$(this).autocomplete("option", "source", $(this).data('collection').split(";").map(function(el){return JSON.parse(el)})
|
||||||
|
);
|
||||||
|
})
|
||||||
|
.data( "ui-autocomplete" )._renderItem = function( ul, item ) {
|
||||||
|
return $( "<li>" )
|
||||||
|
.append( "<a>" + item.label + "</a>" )
|
||||||
|
.appendTo( ul );
|
||||||
|
};
|
||||||
|
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="span4">
|
|
||||||
<%= f.input :moduls, :as=>:check_boxes %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
<% end %>
|
||||||
<%= f.actions do %>
|
<%= f.actions do %>
|
||||||
<%= f.action :submit, :as => :input %>
|
<%= f.action :submit, :as => :input %>
|
||||||
|
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<div class="modulgruppe_phase_<%= modulgruppe.phase %>" >
|
<div class="modulgruppe_phase_<%= modulgruppe.phase %>" >
|
||||||
<h2><%= link_to modulgruppe.name, modulgruppe_path(modulgruppe) %>
|
<h2><%= link_to modulgruppe.name, modulgruppe_path(modulgruppe) %> <%= link_to fa_icon("pencil") , edit_modulgruppe_path(modulgruppe) %></h2>
|
||||||
</h2>
|
|
||||||
|
|
||||||
<%= modulgruppe.desc%><ul class="unstyled">
|
<%= modulgruppe.desc%><ul class="unstyled">
|
||||||
<%= render :partial=>'moduls/kurz', :collection=>modulgruppe.moduls, :as=>:modul%>
|
<%= render :partial=>'moduls/kurz', :collection=>modulgruppe.moduls, :as=>:modul%>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<p id="notice"><%= notice %></p>
|
<p id="notice"><%= notice %></p>
|
||||||
|
|
||||||
<h1>
|
<h1>
|
||||||
<%= @modulgruppe.name %>
|
<%= @modulgruppe.name %><%= link_to fa_icon("pencil") , edit_modulgruppe_path(@modulgruppe) %>
|
||||||
</h1>
|
</h1>
|
||||||
<p>
|
<p>
|
||||||
<!-- <b><%= link_to "Studium: "+@modulgruppe.studium.name, studium_path(@modulgruppe.studium) %></b>-->
|
<!-- <b><%= link_to "Studium: "+@modulgruppe.studium.name, studium_path(@modulgruppe.studium) %></b>-->
|
||||||
|
|||||||
@@ -6,24 +6,37 @@
|
|||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<div class="row-fluid">
|
<div class="row-fluid">
|
||||||
<div class="span12">
|
<div class="span12">
|
||||||
<%= f.input :name ,:hint=>true%>
|
<%= f.input :name , :as=>:hidden %>
|
||||||
|
<div id="toolBar" style="z-index:100"></div>
|
||||||
|
<h1 class="editable_simple" data-target="#modul_name"><%= @modul.name %> </h1>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row-fluid" >
|
<div class="row-fluid" >
|
||||||
<div class="span12">
|
<div class="span12">
|
||||||
<%= f.input :desc, :as=>:tinymce_text %>
|
<div id="tabs">
|
||||||
|
<ul><li><a href="#tab-desc">Beschreibung</a></li><li><a href="#tab-depend">Voraussetzung</a></li></ul>
|
||||||
|
<div id="tab-desc">
|
||||||
|
<div class="editable" data-target="#modul_desc">
|
||||||
|
<%= raw(@modul.desc) %>
|
||||||
</div>
|
</div>
|
||||||
|
<%= f.input :desc, :as=>:hidden %>
|
||||||
</div>
|
</div>
|
||||||
<div class="row-fluid">
|
<div id="tab-depend">
|
||||||
<div class="span12">
|
|
||||||
<%= f.input :depend %>
|
<%= f.input :depend %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="span3">
|
<div class="span3">
|
||||||
<%= f.input :modulgruppen, :as => :check_boxes, :member_label=>:long_name, :collection => Modulgruppe.all %>
|
|
||||||
|
<input id="lva" class="autocomplete-checkbox" data-checkboxdiv="modul_lvas_input" data-checkboxname="modul[lva_ids][]" data-collection="<%= (Lva.all.map{|l| "{\"value\": \""+l.id.to_s + "\", \"label\": " + "\"" +escape_javascript( l.full_name) + "\"}"}.join("; "))%>"> </input>
|
||||||
|
<%= f.input :lvas, :as => :check_boxes, :member_label=>:full_name, :collection => @modul.lvas %>
|
||||||
|
<input id="modul" class="autocomplete-checkbox" data-checkboxdiv="modul_modulgruppen_input" data-checkboxname="modul[modulgruppe_ids][]" data-collection="<%= (Modulgruppe.all.map{|l| "{\"value\": \""+l.id.to_s + "\", \"label\": " + "\"" +escape_javascript( l.long_name) + "\"}"}.join("; "))%>"> </input>
|
||||||
|
<%= f.input :modulgruppen, :as => :check_boxes, :member_label=>:long_name, :collection => @modul.modulgruppen %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -34,5 +47,34 @@
|
|||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$(function(){
|
||||||
|
$( ".autocomplete-checkbox" ).autocomplete({
|
||||||
|
minLength: 0,
|
||||||
|
source: [],
|
||||||
|
focus: function( event, ui ) {
|
||||||
|
$( this ).val( ui.item.label );
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
select: function( event, ui ) {
|
||||||
|
$( this ).val( "" );
|
||||||
|
$( "#"+$(this).data("checkboxdiv")).append($("<label>").append($("<div>").attr("class", "checkbox").append($("<input>").attr("type","checkbox").attr("value", ui.item.value).attr("checked","checked").attr("name",$(this).data("checkboxname"))).append(ui.item.label)));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}).each(function() { // Goes through `.autocomplete` elements and sets source
|
||||||
|
$(this).autocomplete("option", "source", $(this).data('collection').split(";").map(function(el){return JSON.parse(el)}));
|
||||||
|
})
|
||||||
|
.data( "ui-autocomplete" )._renderItem = function( ul, item ) {
|
||||||
|
return $( "<li>" )
|
||||||
|
.append( "<a>" + item.label + "</a>" )
|
||||||
|
.appendTo( ul );
|
||||||
|
};
|
||||||
|
$("#tabs").tabs();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
</div>
|
</div>
|
||||||
|
<%= tinymce :inline_simple %>
|
||||||
|
<%= tinymce :inline_div %>
|
||||||
<%= tinymce %>
|
<%= tinymce %>
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<li>
|
<li>
|
||||||
<div class="contentbox">
|
<div class="contentbox">
|
||||||
<p>
|
<p>
|
||||||
<b><%= link_to "Modul "+ modul.name.to_s , modul_path(modul) %> </b>
|
<b><%= link_to "Modul "+ modul.name.to_s , modul_path(modul) %> <%= link_to fa_icon("pencil") , edit_modul_path(modul) %> </b>
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<% modul.lvas.each do |lva| %>
|
<% modul.lvas.each do |lva| %>
|
||||||
|
|||||||
@@ -16,6 +16,11 @@
|
|||||||
<p>
|
<p>
|
||||||
<%= raw(modul.desc) %>
|
<%= raw(modul.desc) %>
|
||||||
</p>
|
</p>
|
||||||
|
<h2><%=I18n.t("modul.depend")%></h2>
|
||||||
|
<p>
|
||||||
|
<%= raw(modul.depend) %>
|
||||||
|
</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="span4">
|
<div class="span4">
|
||||||
<div class="lva-sidebar">
|
<div class="lva-sidebar">
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
<%= semantic_fields_for "lvas[#{i}]" do |f| %>
|
<%= semantic_fields_for "lvas[#{i}]" do |f| %>
|
||||||
<%= f.input :lvanr %>
|
<%= f.input :lvanr %>
|
||||||
<%= f.input :sem , :input_html => { "style"=>"width:7em" },:as=>:select, :collection=>["2012S", "2012W","2013S","2013W","2014S","2014W","2015S","2015W"] %>
|
<% f.input :sem , :input_html => { "style"=>"width:7em" },:as=>:select, :collection=>["2012S", "2012W","2013S","2013W","2014S","2014W","2015S","2015W"] %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -7,37 +7,62 @@
|
|||||||
<div class="row-fluid">
|
<div class="row-fluid">
|
||||||
<%= f.input :name,:append=>"NAME", :wrapper_html=>{:class=>"span6"}%>
|
<%= f.input :name,:append=>"NAME", :wrapper_html=>{:class=>"span6"}%>
|
||||||
|
|
||||||
<%= f.input :abkuerzung, :wrapper_html=>{:class=>"span1"}%>
|
|
||||||
<%= f.input :zahl , :wrapper_html=>{:class=>"span2"}%>
|
|
||||||
|
|
||||||
<%= f.input :typ, :as=>:select, :include_blank=>false, :collection=>["Bachelor","Master"], :wrapper_html=>{:class=>"span2"}%>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="row-fluid">
|
<div class="row-fluid">
|
||||||
<%= f.input :desc, :as=>:tinymce_text , :wrapper_html=>{:class=>"span12"}%>
|
<div class="span12"><p>
|
||||||
</div>
|
<div id="toolBar"></div></p>
|
||||||
<div class="row-fluid">
|
<div id="tabs">
|
||||||
<%= f.input :qualifikation, :as=>:tinymce_text , :wrapper_html=>{:class=>"span12"}%>
|
<ul>
|
||||||
</div>
|
<li><a href="#tab-data">Daten</a></li>
|
||||||
<div class="row-fluid">
|
<li><a href="#tab-desc">Beschreibung</a></li>
|
||||||
<%= f.input :struktur, :as=>:tinymce_text , :wrapper_html=>{:class=>"span12"}%>
|
<li><a href="#tab-qual">Qualifikation</a></li>
|
||||||
</div>
|
<li><a href="#tab-struk">Struktur</a></li>
|
||||||
<div class="row-fluid">
|
<li><a href="#tab-job">JobMöglichkeiten</a></li>
|
||||||
<%= f.input :jobmoeglichkeiten, :as=>:tinymce_text , :wrapper_html=>{:class=>"span12"}%>
|
</ul>
|
||||||
</div>
|
<div id="tab-data">
|
||||||
<div class="row-fluid">
|
<%= f.input :abkuerzung %>
|
||||||
<div class="span12">
|
<%= f.input :zahl %>
|
||||||
|
<%= f.input :typ, :as=>:select, :include_blank=>false, :collection=>["Bachelor","Master"] %>
|
||||||
<label>Bild</label>
|
<label>Bild</label>
|
||||||
<%= image_tag(@studium.picture.thumb.url) unless @studium.picture.nil? %>
|
<%= image_tag(@studium.picture.thumb.url) unless @studium.picture.nil? %>
|
||||||
<%= f.file_field :picture %>
|
<%= f.file_field :picture %>
|
||||||
<%= f.hidden_field :picture_cache %>
|
<%= f.hidden_field :picture_cache %>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div id="tab-desc">
|
||||||
|
<div class="editable" data-target="#studium_desc">
|
||||||
|
<%= raw(@studium.desc) %>
|
||||||
|
</div>
|
||||||
|
<%= f.input :desc, :as=>:hidden %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="tab-qual">
|
||||||
|
<div class="editable" data-target="#studium_qualifikation">
|
||||||
|
<%= raw(@studium.qualifikation) %>
|
||||||
|
</div>
|
||||||
|
<%= f.input :qualifikation, :as=>:hidden %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="tab-struk">
|
||||||
|
<div class="editable" data-target="#studium_struktur">
|
||||||
|
<%= raw(@studium.struktur) %>
|
||||||
|
</div>
|
||||||
|
<%= f.input :struktur, :as=>:hidden %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="tab-job">
|
||||||
|
<div class="editable" data-target="#studium_jobmoeglichkeiten">
|
||||||
|
<%= raw(@studium.jobmoeglichkeiten) %>
|
||||||
|
</div>
|
||||||
|
<%= f.input :jobmoeglichkeiten, :as=>:hidden %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<script>$("#tabs").tabs()</script>
|
||||||
<%= tinymce %>
|
<%= tinymce %>
|
||||||
|
<%= tinymce :inline_div %>
|
||||||
<%= f.actions do %>
|
<%= f.actions do %>
|
||||||
<%= f.action :submit, :as => :input %>
|
<%= f.action :submit, :as => :input %>
|
||||||
<%= link_to 'Back', studien_path, :data=>{:locale=>I18n.locale}, class: :btn%>
|
<%= link_to 'Back', studien_path, :data=>{:locale=>I18n.locale}, class: :btn%>
|
||||||
|
|||||||
@@ -6,6 +6,9 @@
|
|||||||
<%= render_attachments_for(@studium) %>
|
<%= render_attachments_for(@studium) %>
|
||||||
|
|
||||||
<%= raw(@studium.desc) %>
|
<%= raw(@studium.desc) %>
|
||||||
|
<%= raw(@studium.struktur) %>
|
||||||
|
<%= raw(@studium.jobmoeglichkeiten) %>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -31,3 +31,5 @@ en:
|
|||||||
bspe: "Examples"
|
bspe: "Examples"
|
||||||
home:
|
home:
|
||||||
newexamples: "Newest Examples"
|
newexamples: "Newest Examples"
|
||||||
|
modul:
|
||||||
|
depend: "Voraussetzungen"
|
||||||
@@ -40,6 +40,9 @@ inline_simple:
|
|||||||
toolbar:
|
toolbar:
|
||||||
- undo redo
|
- undo redo
|
||||||
menubar: false
|
menubar: false
|
||||||
|
setup: function(ed) {
|
||||||
|
ed.on('NodeChange',function(){$($("#"+ed.id).attr("data-target")).val(this.getContent())})
|
||||||
|
}
|
||||||
inline_div:
|
inline_div:
|
||||||
selector: "div.editable"
|
selector: "div.editable"
|
||||||
inline: true
|
inline: true
|
||||||
|
|||||||
Reference in New Issue
Block a user