kms 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/kms/application.js +4 -0
- data/app/assets/javascripts/kms/application/controllers/pages_controller.coffee.erb +3 -1
- data/app/assets/javascripts/kms/application/controllers/snippets_controller.coffee.erb +2 -1
- data/app/assets/javascripts/kms/application/controllers/templates_controller.coffee.erb +2 -1
- data/app/assets/javascripts/kms/application/services/errors_service.coffee +1 -4
- data/app/assets/stylesheets/kms/application.css +1 -0
- data/app/assets/stylesheets/kms/custom.css.scss +3 -0
- data/app/controllers/kms/assets_controller.rb +3 -3
- data/app/controllers/kms/pages_controller.rb +2 -2
- data/app/controllers/kms/settings_controller.rb +1 -1
- data/app/controllers/kms/snippets_controller.rb +2 -2
- data/app/controllers/kms/templates_controller.rb +5 -5
- data/app/controllers/kms/users_controller.rb +2 -2
- data/app/views/layouts/kms/kms.html.erb +0 -1
- data/config/locales/devise.zh-CN.yml +59 -0
- data/config/locales/zh-CN.yml +231 -0
- data/lib/kms/version.rb +1 -1
- data/spec/controllers/kms/templates_controller_spec.rb +26 -0
- data/spec/internal/config/database.yml +7 -0
- data/spec/internal/log/test.log +131623 -0
- data/spec/internal/public/uploads/kms/asset/file/1/avatar.jpg +0 -0
- data/spec/internal/public/uploads/kms/asset/file/2/avatar.jpg +0 -0
- data/spec/internal/public/uploads/kms/asset/file/2/style.css +1 -0
- data/spec/internal/public/uploads/kms/asset/file/3/style.css +1 -0
- data/spec/internal/public/uploads/kms/asset/file/4/avatar.jpg +0 -0
- data/spec/internal/public/uploads/kms/asset/file/4/style.css +1 -0
- data/spec/internal/public/uploads/kms/asset/file/5/style.css +1 -0
- data/spec/internal/public/uploads/kms/asset/file/6/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500976987-41025-0002-0883/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500977082-41195-0002-6495/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500977109-41364-0002-4518/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500977152-41405-0002-2345/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500977327-41694-0002-5448/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500977376-41732-0002-7916/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500977392-41759-0002-7593/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500977410-42259-0002-7527/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500977429-42306-0002-5937/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500977437-42324-0002-5880/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500983228-53594-0002-4559/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500983284-53632-0002-6590/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500983360-53784-0002-7289/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500983469-54321-0002-0386/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1500983469-54321-0004-5691/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500983511-54352-0002-5720/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1500983511-54352-0004-1399/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500983610-54507-0002-4280/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1500983610-54507-0004-9758/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500984466-57012-0002-4146/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1500984466-57012-0004-5895/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500984509-57158-0002-9657/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1500984509-57158-0004-5003/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500984616-57697-0002-7201/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1500984616-57697-0004-6255/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500985257-58947-0002-3629/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1500985257-58947-0004-5338/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500985407-58947-0006-5929/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500985473-59264-0002-0397/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1500985473-59264-0004-6493/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500985475-59264-0007-8674/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500985538-59468-0002-9206/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1500985538-59468-0004-2586/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500985538-59468-0007-6200/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500988358-65877-0002-4528/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1500988358-65877-0004-5904/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500988358-65877-0007-7320/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500988407-65916-0002-3138/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1500988407-65916-0004-5400/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500988407-65916-0007-1655/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500988421-65950-0002-9415/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1500988421-65950-0004-7130/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500988421-65950-0007-9886/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500988435-65981-0002-3228/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1500988435-65981-0004-3682/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500988435-65981-0007-1582/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500988475-66122-0002-9516/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1500988475-66122-0004-5634/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500988530-66122-0007-2272/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500988554-66315-0002-6262/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1500988554-66315-0004-6099/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500988554-66315-0007-1632/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500991751-73722-0002-9937/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1500991751-73722-0004-8034/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1500991751-73722-0007-7763/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1501233238-34385-0002-3210/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1501233238-34385-0004-5881/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1501233238-34385-0007-6280/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1508749566-27986-0002-2760/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1508749567-27986-0004-6631/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1508749567-27986-0007-5688/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1508749660-28185-0002-3255/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1508749660-28185-0004-3845/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1508749660-28185-0007-5866/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1508749674-28217-0002-4090/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1508749675-28217-0004-8839/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1508749675-28217-0007-2008/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1508749687-28352-0002-3233/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1508749687-28352-0004-9432/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1508749687-28352-0007-1314/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1509440450-18161-0002-7535/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1509440450-18161-0004-3378/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1509440450-18161-0007-1253/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1509440662-18637-0002-2796/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1509440662-18637-0004-5488/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1509440662-18637-0007-1149/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1509440905-19171-0002-1570/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1509440905-19171-0004-9067/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1509440905-19171-0007-1234/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1509442552-23601-0002-0420/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1509442552-23601-0004-3628/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1509442552-23601-0007-7909/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1509445639-31288-0002-5614/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1509445639-31288-0004-5098/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1509445639-31288-0007-4238/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440007-18238-0002-4241/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1511440007-18238-0004-2485/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440007-18238-0007-1399/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440298-19007-0002-2235/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1511440298-19007-0004-4653/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440298-19007-0006-2170/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440298-19007-0009-2199/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440315-19038-0002-5207/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1511440315-19038-0004-8181/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440315-19038-0006-6102/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1511440315-19038-0008-6730/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440315-19038-0010-4426/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440315-19038-0013-4618/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440346-19182-0002-3434/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1511440346-19182-0004-7525/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440375-19182-0006-9609/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1511440375-19182-0008-1622/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440376-19182-0010-5905/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440376-19182-0013-7924/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440392-19224-0002-8819/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1511440392-19224-0004-8863/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440392-19224-0006-0138/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440392-19224-0007-8534/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440392-19224-0008-6110/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440392-19224-0009-5540/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440392-19224-0012-3148/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440452-19263-0002-7025/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1511440452-19263-0004-7209/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440452-19263-0006-2686/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440452-19263-0007-5736/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440452-19263-0008-3182/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440452-19263-0009-7924/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440452-19263-0012-7410/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440472-19413-0002-2228/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1511440472-19413-0004-6315/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440472-19413-0006-8298/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440472-19413-0007-1759/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440472-19413-0008-4788/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440472-19413-0009-2475/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1511440472-19413-0012-2049/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516625891-88818-0002-5617/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1516625891-88818-0004-6958/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516625891-88818-0006-4976/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516625891-88818-0007-0084/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516625891-88818-0008-2213/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516625891-88818-0009-4527/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516625891-88818-0012-6446/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516625961-88870-0002-7381/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1516625961-88870-0004-9681/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516625961-88870-0006-2372/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516625961-88870-0007-2660/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516625961-88870-0008-0215/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516625961-88870-0009-2368/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516625961-88870-0012-1625/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626030-88922-0002-3654/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1516626030-88922-0004-3696/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626030-88922-0006-8048/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626030-88922-0007-3237/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626030-88922-0008-4239/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626030-88922-0009-0391/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626030-88922-0012-0366/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626064-88952-0002-1658/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1516626064-88952-0004-5145/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626064-88952-0006-0849/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626064-88952-0007-0001/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626064-88952-0008-9566/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626064-88952-0009-8240/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626064-88952-0012-5917/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626195-89027-0002-5287/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1516626195-89027-0004-2701/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626195-89027-0006-2672/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626195-89027-0007-3635/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626195-89027-0008-4691/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626195-89027-0009-8448/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626195-89027-0012-8799/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626242-89065-0002-1305/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1516626242-89065-0004-0022/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626242-89065-0006-1914/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626242-89065-0007-8767/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626242-89065-0008-3418/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626242-89065-0009-6464/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626242-89065-0012-5590/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626311-89110-0002-9888/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1516626311-89110-0004-7197/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626311-89110-0006-4036/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626311-89110-0007-6223/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626311-89110-0008-7130/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626311-89110-0009-7880/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626311-89110-0012-0959/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626373-89158-0002-5538/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1516626373-89158-0004-7211/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626373-89158-0006-9913/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626373-89158-0007-2846/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626373-89158-0008-5451/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626373-89158-0009-9255/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626373-89158-0012-9145/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626397-89193-0002-0900/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1516626397-89193-0004-9986/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626397-89193-0006-0413/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626397-89193-0007-5256/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626397-89193-0008-0633/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626397-89193-0009-1029/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626397-89193-0012-8766/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626545-89276-0002-2227/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1516626545-89276-0004-7785/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626545-89276-0006-9774/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626545-89276-0007-7906/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626545-89276-0008-0580/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626545-89276-0009-3651/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626545-89276-0012-0405/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626743-89366-0002-5276/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1516626743-89366-0004-1518/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626743-89366-0006-9759/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626743-89366-0007-6634/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626743-89366-0008-6153/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626743-89366-0009-4213/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516626743-89366-0012-7697/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516627266-89771-0002-3236/avatar.jpg +0 -0
- data/spec/internal/public/uploads/tmp/1516627266-89771-0004-8050/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516627266-89771-0006-7143/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516627266-89771-0007-9588/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516627266-89771-0008-5511/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516627266-89771-0009-0275/style.css +1 -0
- data/spec/internal/public/uploads/tmp/1516627266-89771-0012-3746/style.css +1 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/v3.0/1XyAFYlYI0pK7WAgjR4PgXV6BgU6huJSviWmHetdCRs.cache +1 -0
- data/vendor/assets/bower_components/bootstrap/Gemfile.lock +43 -0
- data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/ckeditor.js +1 -1
- data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/lang/zh-cn.js +5 -0
- data/vendor/assets/javascripts/emmet-codemirror-plugin.js +4 -0
- data/vendor/assets/javascripts/emmet-codemirror-plugin.js.map +1 -0
- data/vendor/assets/javascripts/liquor.js +382 -0
- data/vendor/assets/stylesheets/liquor.css +79 -0
- metadata +478 -32
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f2370e151595baa4924adf65adfc616110adc26e
|
4
|
+
data.tar.gz: 7e8c4a99719a17acb9ebeed0824832cb20a77732
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 63162083b2430c2ce41cb2fa607f52508b681d916c8a82b23d0ec8843606177d447d4eacdccca1fd2d1ebe5457e18b9cb2ccc075fe28a4fa8d00553493af86da
|
7
|
+
data.tar.gz: 2d5efb96c5d68856a88fef16f53a49c6ccbe8d6d13e4ef36a86d88ade3d4e6dfaf6b27ac75ae214d4fc977c5a5f8f5371d165f4ee42a360eb26884cfe98382b6
|
@@ -22,6 +22,10 @@
|
|
22
22
|
//= require "codemirror/addon/edit/closebrackets"
|
23
23
|
//= require "codemirror/addon/display/fullscreen"
|
24
24
|
//= require "codemirror/addon/selection/active-line"
|
25
|
+
//= require "codemirror/addon/mode/overlay"
|
26
|
+
//= require "codemirror/addon/mode/multiplex"
|
27
|
+
//= require "emmet-codemirror-plugin"
|
28
|
+
//= require "liquor"
|
25
29
|
//= require "ng-ckeditor/libs/ckeditor/ckeditor"
|
26
30
|
//= require "angular/angular.js"
|
27
31
|
//= require "angular-i18n/angular-locale_ru-ru.js"
|
@@ -2,9 +2,10 @@ PagesController = ($scope, $state, $cookieStore, Restangular, $stateParams, Aler
|
|
2
2
|
$scope.editorOptions =
|
3
3
|
filebrowserUploadUrl: '/kms/assets/ckeditor'
|
4
4
|
entities: false
|
5
|
+
language: '<%= I18n.locale.to_s %>'
|
5
6
|
$scope.codeMirrorOptions =
|
6
7
|
lineNumbers: true
|
7
|
-
mode:'
|
8
|
+
mode: 'htmlmixedliquor'
|
8
9
|
autoCloseTags: true
|
9
10
|
matchBrackets: true
|
10
11
|
autoCloseBrackets: true
|
@@ -16,6 +17,7 @@ PagesController = ($scope, $state, $cookieStore, Restangular, $stateParams, Aler
|
|
16
17
|
cm.setOption("fullScreen", !cm.getOption("fullScreen"))
|
17
18
|
"Esc": (cm)->
|
18
19
|
if cm.getOption("fullScreen") then cm.setOption("fullScreen", false)
|
20
|
+
"Tab": 'emmetExpandAbbreviation'
|
19
21
|
|
20
22
|
$scope.$watch 'page.title', (newValue, oldValue) ->
|
21
23
|
if newValue? and $scope.page.slug != 'index' and !$scope.page.id
|
@@ -1,7 +1,7 @@
|
|
1
1
|
SnippetsController = ($scope, $state, Restangular, $stateParams, Alertify, ErrorsService, hotkeys) ->
|
2
2
|
$scope.editorOptions =
|
3
3
|
lineNumbers: true
|
4
|
-
mode:'
|
4
|
+
mode: 'htmlmixedliquor'
|
5
5
|
autoCloseTags: true
|
6
6
|
matchBrackets: true
|
7
7
|
autoCloseBrackets: true
|
@@ -13,6 +13,7 @@ SnippetsController = ($scope, $state, Restangular, $stateParams, Alertify, Error
|
|
13
13
|
cm.setOption("fullScreen", !cm.getOption("fullScreen"))
|
14
14
|
"Esc": (cm)->
|
15
15
|
if cm.getOption("fullScreen") then cm.setOption("fullScreen", false)
|
16
|
+
"Tab": 'emmetExpandAbbreviation'
|
16
17
|
|
17
18
|
$scope.store = Restangular.all('snippets')
|
18
19
|
$scope.store.getList().then (snippets)->
|
@@ -1,7 +1,7 @@
|
|
1
1
|
TemplatesController = ($scope, $state, $cookieStore, Restangular, $stateParams, Alertify, ErrorsService, hotkeys) ->
|
2
2
|
$scope.editorOptions =
|
3
3
|
lineNumbers: true
|
4
|
-
mode:'
|
4
|
+
mode: 'htmlmixedliquor'
|
5
5
|
autoCloseTags: true
|
6
6
|
matchBrackets: true
|
7
7
|
autoCloseBrackets: true
|
@@ -13,6 +13,7 @@ TemplatesController = ($scope, $state, $cookieStore, Restangular, $stateParams,
|
|
13
13
|
cm.setOption("fullScreen", !cm.getOption("fullScreen"))
|
14
14
|
"Esc": (cm)->
|
15
15
|
if cm.getOption("fullScreen") then cm.setOption("fullScreen", false)
|
16
|
+
"Tab": 'emmetExpandAbbreviation'
|
16
17
|
|
17
18
|
$scope.store = Restangular.all('templates')
|
18
19
|
$scope.store.getList().then (templates)->
|
@@ -15,6 +15,7 @@
|
|
15
15
|
*= require angular-ui-tree/dist/angular-ui-tree.min
|
16
16
|
*= require codemirror/lib/codemirror
|
17
17
|
*= require codemirror/addon/display/fullscreen
|
18
|
+
*= require liquor
|
18
19
|
*= require angular-ui-select/dist/select
|
19
20
|
*= require angular-toggle-switch/angular-toggle-switch
|
20
21
|
*= require angular-toggle-switch/angular-toggle-switch-bootstrap
|
@@ -12,9 +12,9 @@ module Kms
|
|
12
12
|
@asset = Asset.new(asset_params)
|
13
13
|
if @asset.save
|
14
14
|
# special json for ng-flow
|
15
|
-
render json: {success: true, files: [@asset]}.to_json
|
15
|
+
render json: { success: true, files: [@asset] }.to_json
|
16
16
|
else
|
17
|
-
render json: {errors: @asset.errors}.to_json, status: :unprocessable_entity
|
17
|
+
render json: { errors: @asset.errors.full_messages }.to_json, status: :unprocessable_entity
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
@@ -36,7 +36,7 @@ module Kms
|
|
36
36
|
if @asset.update(asset_params)
|
37
37
|
render json: @asset
|
38
38
|
else
|
39
|
-
render json: {errors: @asset.errors}.to_json, status: :unprocessable_entity
|
39
|
+
render json: { errors: @asset.errors.full_messages }.to_json, status: :unprocessable_entity
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
@@ -12,7 +12,7 @@ module Kms
|
|
12
12
|
if @page.save
|
13
13
|
head :no_content
|
14
14
|
else
|
15
|
-
render json: {errors: @page.errors}.to_json, status: :unprocessable_entity
|
15
|
+
render json: { errors: @page.errors.full_messages }.to_json, status: :unprocessable_entity
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
@@ -21,7 +21,7 @@ module Kms
|
|
21
21
|
if @page.update(page_params)
|
22
22
|
head :no_content
|
23
23
|
else
|
24
|
-
render json: {errors: @page.errors}.to_json, status: :unprocessable_entity
|
24
|
+
render json: { errors: @page.errors.full_messages }.to_json, status: :unprocessable_entity
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
@@ -11,7 +11,7 @@ module Kms
|
|
11
11
|
if @settings.update(settings_params)
|
12
12
|
render json: @settings
|
13
13
|
else
|
14
|
-
render json: @settings.to_json
|
14
|
+
render json: { errors: @settings.errors.full_messages }.to_json, status: :unprocessable_entity
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
@@ -12,7 +12,7 @@ module Kms
|
|
12
12
|
if @snippet.save
|
13
13
|
head :no_content
|
14
14
|
else
|
15
|
-
render json: {errors: @snippet.errors}.to_json, status: :unprocessable_entity
|
15
|
+
render json: { errors: @snippet.errors.full_messages }.to_json, status: :unprocessable_entity
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
@@ -21,7 +21,7 @@ module Kms
|
|
21
21
|
if @snippet.update(snippet_params)
|
22
22
|
head :no_content
|
23
23
|
else
|
24
|
-
render json: {errors: @snippet.errors}.to_json, status: :unprocessable_entity
|
24
|
+
render json: { errors: @snippet.errors.full_messages }.to_json, status: :unprocessable_entity
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
@@ -11,28 +11,28 @@ module Kms
|
|
11
11
|
if @template.save
|
12
12
|
head :no_content
|
13
13
|
else
|
14
|
-
render json: {errors: @template.errors}.to_json, status: :unprocessable_entity
|
14
|
+
render json: { errors: @template.errors.full_messages }.to_json, status: :unprocessable_entity
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
18
|
def update
|
19
19
|
@template = Template.find(params[:id])
|
20
20
|
if @template.update(template_params)
|
21
|
-
|
21
|
+
head :no_content
|
22
22
|
else
|
23
|
-
render json: @template.to_json
|
23
|
+
render json: { errors: @template.errors.full_messages }.to_json, status: :unprocessable_entity
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
27
|
def show
|
28
28
|
@template = Template.find(params[:id])
|
29
|
-
render json: @template
|
29
|
+
render json: @template
|
30
30
|
end
|
31
31
|
|
32
32
|
def destroy
|
33
33
|
@template = Template.find(params[:id])
|
34
34
|
@template.destroy
|
35
|
-
|
35
|
+
head :no_content
|
36
36
|
end
|
37
37
|
|
38
38
|
protected
|
@@ -14,7 +14,7 @@ module Kms
|
|
14
14
|
if @user.save
|
15
15
|
head :no_content
|
16
16
|
else
|
17
|
-
render json: {errors: @user.errors}.to_json, status: :unprocessable_entity
|
17
|
+
render json: { errors: @user.errors.full_messages }.to_json, status: :unprocessable_entity
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
@@ -23,7 +23,7 @@ module Kms
|
|
23
23
|
if @user.update(user_params)
|
24
24
|
head :no_content
|
25
25
|
else
|
26
|
-
render json: {errors: @user.errors}.to_json, status: :unprocessable_entity
|
26
|
+
render json: { errors: @user.errors.full_messages }.to_json, status: :unprocessable_entity
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# Additional translations at https://github.com/plataformatec/devise/wiki/I18n
|
2
|
+
|
3
|
+
zh-CN:
|
4
|
+
devise:
|
5
|
+
confirmations:
|
6
|
+
confirmed: "你的电子邮件地址以被成功确认。"
|
7
|
+
send_instructions: "你在几分钟后会收到一封电子邮件告诉你如何确认你的电子邮件地址。"
|
8
|
+
send_paranoid_instructions: "如果我们的数据库中保存有你的电子邮件地址,你会在几分钟内收到一封邮件告诉你如何确认的电子邮件。"
|
9
|
+
failure:
|
10
|
+
already_authenticated: "你已经登录。"
|
11
|
+
inactive: "你的帐户还未激活。"
|
12
|
+
invalid: "非法的 %{authentication_keys} 或密码。"
|
13
|
+
locked: "你的帐号已被锁定。"
|
14
|
+
last_attempt: "你还有最后一次尝试机会,如果再次失败你的帐号将被锁定。"
|
15
|
+
not_found_in_database: "非法的 %{authentication_keys} 或密码。"
|
16
|
+
timeout: "你的登录超时,请重新登录。"
|
17
|
+
unauthenticated: "你需要登录或注册才能继续操作。"
|
18
|
+
unconfirmed: "你需要确认你的电子邮件地址才能继续。"
|
19
|
+
mailer:
|
20
|
+
confirmation_instructions:
|
21
|
+
subject: "Pivorak: 帐户确认指南"
|
22
|
+
reset_password_instructions:
|
23
|
+
subject: "Pivorak: 重置密码指南"
|
24
|
+
unlock_instructions:
|
25
|
+
subject: "Pivorak: 解锁指南"
|
26
|
+
omniauth_callbacks:
|
27
|
+
failure: "由于%{reason},无法从%{kind} 认证。"
|
28
|
+
success: "成功从 %{kind} 认证帐户。"
|
29
|
+
passwords:
|
30
|
+
no_token: "如果没有密码重置邮件无法访问这个页面。如果你是从密码重置邮件访问过来的,请确认输入的网址完整。"
|
31
|
+
send_instructions: "在几分钟内你会收到一封密码重置邮件。"
|
32
|
+
send_paranoid_instructions: "如果我们的数据库中保存有你的电子邮件地址,你会在几分钟内收到一封如何恢复密码的邮件。"
|
33
|
+
updated: "你的密码已被成功更改,你现在已经登录。"
|
34
|
+
updated_not_active: "你的密码已被成功更改。"
|
35
|
+
registrations:
|
36
|
+
destroyed: "再见!你的帐户已被成功取消。希望能再次见到你。"
|
37
|
+
signed_up: "欢迎!你已经成功注册。"
|
38
|
+
signed_up_but_inactive: "你已经成功注册。但是由于你的帐户未激活,你仍无法登录。"
|
39
|
+
signed_up_but_locked: "你已经成功注册。但是由于你的帐户被锁定,你仍无法登录。"
|
40
|
+
signed_up_but_unconfirmed: "我们已向你的邮箱发送了一封确认邮件。请单击邮件中的链接激活你的帐户。"
|
41
|
+
update_needs_confirmation: "你已经成功更新帐户,但我们需要验证你的电子邮件地址。请检查你的邮件并确认你的子邮件地址。"
|
42
|
+
updated: "你的帐户已被成功更新。"
|
43
|
+
sessions:
|
44
|
+
signed_in: "成功登录。"
|
45
|
+
signed_out: "成功注销。"
|
46
|
+
unlocks:
|
47
|
+
send_instructions: "在几分钟内你会收到一封如何解锁帐户的邮件。"
|
48
|
+
send_paranoid_instructions: "如果你的帐户存在,在几分钟内你会收到一封如何解锁帐户的邮件。"
|
49
|
+
unlocked: "你的帐户已被成功解锁,请重新登录。"
|
50
|
+
errors:
|
51
|
+
messages:
|
52
|
+
already_confirmed: "已确认,请尝试登录"
|
53
|
+
confirmation_period_expired: "需要在 %{period} 内确认,请重新注册"
|
54
|
+
expired: "已过期,请重新注册"
|
55
|
+
not_found: "未找到"
|
56
|
+
not_locked: "未被锁定"
|
57
|
+
not_saved:
|
58
|
+
one: "出现一个错误导致 %{resource} 不能被保存:"
|
59
|
+
other: "出现 %{count} 个错误导致 %{resource} 不能被保存:"
|
@@ -0,0 +1,231 @@
|
|
1
|
+
zh-CN:
|
2
|
+
login: "登录"
|
3
|
+
sign_up: "注册"
|
4
|
+
sign_out: "注销"
|
5
|
+
forgot_your_password: "忘记你的密码?"
|
6
|
+
remember_me: "记住我"
|
7
|
+
content_management: "内容管理"
|
8
|
+
add_template: "添加模板"
|
9
|
+
create_first_template: "创建第一个模板"
|
10
|
+
new_template: "新建模板"
|
11
|
+
edit_template: "编辑模板"
|
12
|
+
update_template: "更新模板"
|
13
|
+
template_successfully_created: "成功创建模板"
|
14
|
+
template_successfully_updated: "成功更新模板"
|
15
|
+
add_page: "添加页面"
|
16
|
+
create_first_page: "创建一个页面"
|
17
|
+
new_page: "新页面"
|
18
|
+
edit_page: "编辑页面"
|
19
|
+
update_page: "更新页面"
|
20
|
+
page_successfully_created: "成功创建页面"
|
21
|
+
page_successfully_updated: "成功更新页面"
|
22
|
+
update_page_and_continue: "更新页面并继续"
|
23
|
+
update_template_and_continue: "更新模板并继续"
|
24
|
+
update_asset_and_continue: "更新资源并继续"
|
25
|
+
update_snippet_and_continue: "更新片段并继续"
|
26
|
+
add_asset: "添加资源"
|
27
|
+
new_asset: "新资源"
|
28
|
+
edit_asset: "编辑资源"
|
29
|
+
update_asset: "更新资源"
|
30
|
+
asset_successfully_updated: "成功更新资源"
|
31
|
+
upload_assets: "上传资源"
|
32
|
+
add_user: "添加用户"
|
33
|
+
new_user: "新用户"
|
34
|
+
edit_user: "编辑用户"
|
35
|
+
update_user: "更新用户"
|
36
|
+
toggle_fullscreen_mode_instruction: "当光标在编辑器时按下F11键切换到全屏模式。按下ESC键退出全屏编辑。"
|
37
|
+
add_snippet: "添加片段"
|
38
|
+
create_first_snippet: "创建第一个片段"
|
39
|
+
new_snippet: "新片段"
|
40
|
+
edit_snippet: "比较片段"
|
41
|
+
update_snippet: "更新片段"
|
42
|
+
snippet_successfully_created: "成功创建片段"
|
43
|
+
snippet_successfully_updated: "成功更新片段"
|
44
|
+
documentation: "文档"
|
45
|
+
need_help: "需要帮助?"
|
46
|
+
settings: "设置"
|
47
|
+
update_settings: "更新设置"
|
48
|
+
no_settings: "未选定设置"
|
49
|
+
yes_word: "是"
|
50
|
+
no_word: "否"
|
51
|
+
or: "或"
|
52
|
+
are_you_sure: "你确定?"
|
53
|
+
images: "图片"
|
54
|
+
stylesheets: "样式表"
|
55
|
+
javascripts: "Javascript"
|
56
|
+
fonts: "字体"
|
57
|
+
other_assets: "其他"
|
58
|
+
templates_description: "模板就是你的通用HTML代码放置的地方"
|
59
|
+
pages_description: "页面表现了你网站的组织结构并且他们的内容嵌入在模板中"
|
60
|
+
no_templates_yet: "貌似你目前没有模板"
|
61
|
+
snippets_description: "片段是你可以包含在模板或页面中的一小段HTML代码"
|
62
|
+
assets_description: "在这里上传样式表,javascripts, 图片或者其他文件(可以选择多个文件)"
|
63
|
+
assets_drop_description: "或者拖拽文件"
|
64
|
+
roles_description: "管理员可以管理任何内容。内容管理员只能在\"内容管理\"部分访问 \"页面\" 和 \"资源\" (但可以访问其他部分)。第二项区别就是管理员可以在HTML编辑器中查看页面,而内容管理员在所见即所得编辑器中查看"
|
65
|
+
or_hit: "或按下 "
|
66
|
+
while_your_cursor_in_input: " 当你的光标在输入状态"
|
67
|
+
roles:
|
68
|
+
admin: "管理员"
|
69
|
+
content_manager: "内容管理员"
|
70
|
+
liquor_help:
|
71
|
+
header: "Liquor帮助"
|
72
|
+
tags_title: "标签"
|
73
|
+
filters_title: "过滤器"
|
74
|
+
variables_title: "变量"
|
75
|
+
scopes_title: "范围"
|
76
|
+
endpoints_title: "接入点"
|
77
|
+
property: "属性"
|
78
|
+
parameter: "参数"
|
79
|
+
description: "描述"
|
80
|
+
specification: "详细Liquor 描述"
|
81
|
+
tags:
|
82
|
+
declare:
|
83
|
+
main_description: "标签声明可以用于变量声明和表单中的初始值:"
|
84
|
+
additional_description: "declare和assign标签的区别 - 使用declare你能在不同的作用域内创建同名变量。"
|
85
|
+
assign:
|
86
|
+
main_description: "标签赋值可以在变量声明时使用并且它的Tag初始值会在这个表单中被设置:"
|
87
|
+
if:
|
88
|
+
main_description: "if 标签是一个标准的条件表达式,它有如下的形式:"
|
89
|
+
unless:
|
90
|
+
main_description: 'unless 标签在条件表达式的值为假或空的时候执行它的执行体:'
|
91
|
+
for:
|
92
|
+
main_description: "for 标签是一个标准的循环表达式,它有如下的形式:"
|
93
|
+
capture:
|
94
|
+
main_description: "capture 标签运行代码并把结果保存到变量中。如果变量中已经有值,capture 会改变它:"
|
95
|
+
content_for:
|
96
|
+
main_description: "content_for 标签运行代码并把结果保存:"
|
97
|
+
yield:
|
98
|
+
main_description: "yield 标签有三种形式。如果没有任何参数,它会把内容插入到内部模板。如果包含句柄的字符串和 {% content_for %}进行了设置,yield会返回该字串。如果没有包含句柄的字符串,yield返回if_none执行结果,如果没有这样的语句,则返回空字符串:"
|
99
|
+
include:
|
100
|
+
main_description: 'include 标签包含片段内容到模板里。唯一的参数就是Snippet ID,在创建片段的时候需要使用。'
|
101
|
+
scopes:
|
102
|
+
find_by:
|
103
|
+
main_description: 'find_by 能让你在一个集合中按照条件查找一个元素'
|
104
|
+
find_all_by:
|
105
|
+
main_description: 'find_all_by 能够找到所有符合条件的集合元素'
|
106
|
+
except:
|
107
|
+
main_description: 'except 返回除了参数中提供元素以外的所有集合元素'
|
108
|
+
find_except_by:
|
109
|
+
main_description: 'find_except_by 找到所有不匹配查找条件的集合元素'
|
110
|
+
limit:
|
111
|
+
main_description: 'limit 方法集合SQL中的limit一样,用来限定集合中元素的数量'
|
112
|
+
offset:
|
113
|
+
main_description: 'offset 方法和SQL中的类似方法相同,用来按照偏移量查找记录'
|
114
|
+
first:
|
115
|
+
main_description: '返回集合中的首元素'
|
116
|
+
last:
|
117
|
+
main_description: '返回集合中的末元素'
|
118
|
+
by_index:
|
119
|
+
main_description: '按索引返回元素'
|
120
|
+
pluck:
|
121
|
+
main_description: '返回集合中元素的某个域值(非整个对象)'
|
122
|
+
variables:
|
123
|
+
var_loop:
|
124
|
+
main_description: '变量提供一种访问当前循环状态的方式。只能在for循环中使用。var_loop - 通用名,用来在你需要组合循环变量名和_loop时访问循环变量。例如:'
|
125
|
+
properties:
|
126
|
+
length: "循环计数 (集合大小)"
|
127
|
+
index: "当前循环索引 - 元素索引"
|
128
|
+
page:
|
129
|
+
main_description: '变量 "page" 可以在任何模板中被访问并作为当前页面的引用:'
|
130
|
+
properties:
|
131
|
+
slug: '"别名"域的值'
|
132
|
+
fullpath: '页面的全路径'
|
133
|
+
title: '"标题"域的值'
|
134
|
+
published: '"已发表" 域的值'
|
135
|
+
hidden: '"隐藏 (从导航)"域的值'
|
136
|
+
templatable: ' "作为模板使用"域的值'
|
137
|
+
children: '返回 "子" 集合 - 在"父页面"域中将这个页面作为父页面的所有页面。'
|
138
|
+
parent: '父页面引用'
|
139
|
+
index:
|
140
|
+
main_description: '"index"变量可以在根页面的模板和引用中访问(使用"index"别名)。 对象属性和"页面"变量一样。'
|
141
|
+
request:
|
142
|
+
main_description: '"request"变量给出访问当前请求一些属性的方法:'
|
143
|
+
properties:
|
144
|
+
path: '返回要求的相对路径'
|
145
|
+
url: '返回请求地址'
|
146
|
+
host: '返回主机名 - 域名或IP地址'
|
147
|
+
base_url: '返回请求根地址 - 协议 + 域名或IP,例如: "http://example.com"'
|
148
|
+
referer: '返回初始化现在请求的页面地址'
|
149
|
+
form_authenticity_token: '返回现在请求的认证令牌 - 用于保护表单免受 CSRF 攻击'
|
150
|
+
param: "返回地址参数。例如: request.param('page')"
|
151
|
+
item:
|
152
|
+
main_description: '"item"变量让你能够在"templatable"页面那个访问对应的对象。"Templatable" - 包含有激活"作为对象模板使用"域的页面。"item"属性依赖于具体对象。'
|
153
|
+
search:
|
154
|
+
main_description: "'search'变量让你能够访问搜索结果。支持请求中包含'query'参数,例如:/some_path?query=text。Object 'search'对象 - 搜索结果数组 (SearchItem 对象)。SearchItem 的属性显示如下。"
|
155
|
+
search_item:
|
156
|
+
main_description: 'search_item是搜索结果元素 ("search"集合元素)。'
|
157
|
+
properties:
|
158
|
+
title: '页面标题'
|
159
|
+
content: '搜索内容'
|
160
|
+
link: '到页面的链接,包含查询'
|
161
|
+
filters:
|
162
|
+
asset_path:
|
163
|
+
main_description: '"asset_path"过滤器能让你在"资源"模块通过文件名获取文件相对路径:'
|
164
|
+
asset_tag:
|
165
|
+
main_description: '"asset_tag"过滤器能让你包含上传到"区段"的javascript 和 css 文件:'
|
166
|
+
resize:
|
167
|
+
main_description: '这个功能/过滤器帮助动态改变图片尺寸。要想使用这个过滤器,你需要使用绝对图片地址并提供"format"参数。返回的也是地址。要想得到绝对地址(在"Assets"区段的任何资源只有相对地址),你需要使用"request.base_url":'
|
168
|
+
add_watermark:
|
169
|
+
main_description: '它允许你给图片添加水印。你需要图片地址和三个参数:"image" - 水印图片, "dissolve" - 透明度和 "position" - 位置。返回值也是地址:'
|
170
|
+
ends_with:
|
171
|
+
main_description: '允许检查字符串是否允许以特定模式结尾:'
|
172
|
+
currency:
|
173
|
+
main_description: '设定货币格式。接受的格式:precision, delimiter, separator, format, unit:'
|
174
|
+
activerecord:
|
175
|
+
errors:
|
176
|
+
models:
|
177
|
+
kms/page:
|
178
|
+
attributes:
|
179
|
+
template:
|
180
|
+
required: "不能为空"
|
181
|
+
models:
|
182
|
+
kms/template:
|
183
|
+
one: "模板"
|
184
|
+
few: "模板"
|
185
|
+
many: "模板"
|
186
|
+
other: "模板"
|
187
|
+
kms/page:
|
188
|
+
one: "页面"
|
189
|
+
few: "页面"
|
190
|
+
many: "页面"
|
191
|
+
other: "页面"
|
192
|
+
kms/asset:
|
193
|
+
one: "资源"
|
194
|
+
few: "资源"
|
195
|
+
many: "资源"
|
196
|
+
other: "资源"
|
197
|
+
kms/user:
|
198
|
+
one: "用户"
|
199
|
+
few: "用户"
|
200
|
+
many: "用户"
|
201
|
+
other: "用户"
|
202
|
+
kms/snippet:
|
203
|
+
one: "片段"
|
204
|
+
few: "片段"
|
205
|
+
many: "片段"
|
206
|
+
other: "片段"
|
207
|
+
attributes:
|
208
|
+
kms/template:
|
209
|
+
name: "名字"
|
210
|
+
content: "内容"
|
211
|
+
kms/page:
|
212
|
+
title: "标题"
|
213
|
+
content: "内容"
|
214
|
+
slug: "别名"
|
215
|
+
published: "已发表"
|
216
|
+
template: "模板"
|
217
|
+
parent: "父页面"
|
218
|
+
templatable: "作为对象模板使用"
|
219
|
+
templatable_type: "对象"
|
220
|
+
hidden: '隐藏 (从导航中)'
|
221
|
+
kms/asset:
|
222
|
+
file: "文件"
|
223
|
+
kms/user:
|
224
|
+
email: "电子邮件"
|
225
|
+
password: "密码"
|
226
|
+
password_confirmation: "密码确认"
|
227
|
+
role: "角色"
|
228
|
+
kms/snippet:
|
229
|
+
name: "姓名"
|
230
|
+
slug: "别名/ID"
|
231
|
+
content: "内容"
|